Wrap next/prev.

This commit is contained in:
Nicholas Marriott
2007-09-20 08:21:59 +00:00
parent b1782e1b3d
commit 9c0b51cd5d
2 changed files with 19 additions and 6 deletions

View File

@ -1,4 +1,4 @@
/* $Id: session.c,v 1.7 2007-08-27 20:36:52 nicm Exp $ */
/* $Id: session.c,v 1.8 2007-09-20 08:21:59 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -155,13 +155,19 @@ int
session_next(struct session *s)
{
struct window *w;
u_int n;
if (s->window == NULL)
return (-1);
w = window_next(&s->windows, s->window);
if (w == NULL)
return (-1);
if (w == NULL) {
n = 0;
while ((w = ARRAY_ITEM(&s->windows, n)) == NULL)
n++;
if (w == s->window)
return (1);
}
s->window = w;
return (0);
}
@ -176,8 +182,11 @@ session_previous(struct session *s)
return (-1);
w = window_previous(&s->windows, s->window);
if (w == NULL)
return (-1);
if (w == NULL) {
w = ARRAY_LAST(&s->windows);
if (w == s->window)
return (1);
}
s->window = w;
return (0);
}