Simplify client_next/prev

This commit is contained in:
Martin Duquesnoy 2011-09-20 23:10:08 +02:00
parent 0477c5a8d6
commit 84a9519cbf

View File

@ -92,24 +92,20 @@ client_configure(struct client *c)
struct client*
client_next(struct client *c)
{
struct client *next;
struct client *next = SLIST_NEXT(c, tnext);
if(!(next = SLIST_NEXT(c, tnext)))
next = SLIST_FIRST(&c->tag->clients);
return next;
return (next ? next : SLIST_FIRST(&c->tag->clients));
}
struct client*
client_prev(struct client *c)
{
struct client *cc;
struct client *nc, *cc = SLIST_FIRST(&c->tag->clients);
while((nc = SLIST_NEXT(cc, tnext)) && nc != c)
cc = nc;
SLIST_FOREACH(cc, &c->tag->clients, tnext)
if(SLIST_NEXT(cc, tnext) == c || !SLIST_NEXT(cc, tnext))
return cc;
return SLIST_FIRST(&c->tag->clients);
}
struct client*