mirror of
https://github.com/tmate-io/tmate.git
synced 2025-08-13 07:27:20 +02:00
Wrap next/prev.
This commit is contained in:
19
session.c
19
session.c
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user