aboutsummaryrefslogtreecommitdiffstats
path: root/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'client.c')
-rw-r--r--client.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/client.c b/client.c
index 0f53d38..add109e 100644
--- a/client.c
+++ b/client.c
@@ -4,7 +4,7 @@
* Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org>
* All rights reserved.
*
- * $Id: client.c,v 1.4 2007/05/29 22:38:44 jasper Exp $
+ * $Id: client.c,v 1.5 2007/06/05 19:03:20 jasper Exp $
*/
#include "headers.h"
@@ -604,14 +604,23 @@ match:
*/
struct client_ctx *
-client_cyclenext(struct client_ctx *cc, int reverse)
+client_cyclenext(int reverse)
{
- struct screen_ctx *sc = CCTOSC(cc);
+ struct screen_ctx *sc;
+ struct client_ctx *cc;
struct client_ctx *(*iter)(struct client_ctx *) =
reverse ? &client_mruprev : &client_mrunext;
/* TODO: maybe this should just be a CIRCLEQ. */
+ if (!(cc = _curcc)) {
+ if (TAILQ_EMPTY(&Clientq))
+ return(NULL);
+ cc = TAILQ_FIRST(&Clientq);
+ }
+
+ sc = CCTOSC(cc);
+
/* if altheld; then reset the iterator to the beginning */
if (!sc->altpersist || sc->cycle_client == NULL)
sc->cycle_client = TAILQ_FIRST(&sc->mruq);