Simplifying the lastsel handling a bit. - ttabbed - Simple tabbing application for X11.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 030eda81cc622ad0c3efe2ab1f1a657ee82e45cb
 (DIR) parent 4ed0a2da67f742cfb75f85fc02f703e21a0206d6
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sun, 26 Jan 2014 20:05:40 +0100
       
       Simplifying the lastsel handling a bit.
       
       Some checks and comments were removed to simplify the function.
       
       Diffstat:
         tabbed.c                            |      27 +++++++++------------------
       
       1 file changed, 9 insertions(+), 18 deletions(-)
       ---
 (DIR) diff --git a/tabbed.c b/tabbed.c
       @@ -1059,9 +1059,10 @@ unmanage(int c) {
                        return;
                }
        
       -        if(!nclients) {
       +        if(!nclients)
                        return;
       -        } else if(c == 0) {
       +
       +        if(c == 0) {
                        /* First client. */
                        nclients--;
                        free(clients[0]);
       @@ -1080,35 +1081,25 @@ unmanage(int c) {
                }
        
                if(nclients <= 0) {
       -                sel = -1;
       -                lastsel = -1;
       +                lastsel = sel = -1;
        
       -                if (closelastclient) {
       +                if(closelastclient) {
                                running = False;
       -                } else if (fillagain && running) {
       +                } else if(fillagain && running) {
                                spawn(NULL);
                        }
                } else {
       -                if(c && lastsel >= nclients) {
       +                if(lastsel >= nclients) {
                                lastsel = nclients - 1;
                        } else if(lastsel > c) {
                                lastsel--;
                        }
        
                        if(c == sel) {
       -                        /* Note that focus() will never set lastsel == sel,
       -                         * so if here lastsel == sel, it was decreased by above if() clause
       -                         * and was actually (sel + 1) before.
       -                         */
       -                        if(lastsel > 0) {
       -                                focus(lastsel);
       -                        } else {
       -                                focus(0);
       -                                lastsel = 1;
       -                        }
       +                        focus(lastsel);
                        } else {
                                if(sel > c)
       -                                sel -= 1;
       +                                sel--;
                                if(sel >= nclients)
                                        sel = nclients - 1;