tsync arg.h - spoon - dwm status utility (2f30 fork)
 (HTM) git clone git://src.adamsgaard.dk/spoon
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit 079812990cc3a3fec187a947c78194814d30dddf
 (DIR) parent a005e90a52b080c468aa168e085ed229acf5fe17
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Tue, 20 Mar 2018 19:42:50 +0100
       
       sync arg.h
       
       - don't modify argv, use a counter: on some platforms (OpenBSD) this
         changes the exposed argv in tools using the kvm_* interface, such
         as ps and pgrep.
       - remove some unused macros.
       
       Diffstat:
         M arg.h                               |      37 +++++++++----------------------
       
       1 file changed, 11 insertions(+), 26 deletions(-)
       ---
 (DIR) diff --git a/arg.h b/arg.h
       t@@ -21,45 +21,30 @@ extern char *argv0;
                                                argc--;\
                                                break;\
                                        }\
       -                                for (brk_ = 0, argv[0]++, argv_ = argv;\
       -                                                argv[0][0] && !brk_;\
       -                                                argv[0]++) {\
       +                                int i_;\
       +                                for (i_ = 1, brk_ = 0, argv_ = argv;\
       +                                                argv[0][i_] && !brk_;\
       +                                                i_++) {\
                                                if (argv_ != argv)\
                                                        break;\
       -                                        argc_ = argv[0][0];\
       +                                        argc_ = argv[0][i_];\
                                                switch (argc_)
        
       -/* Handles obsolete -NUM syntax */
       -#define ARGNUM                                case '0':\
       -                                        case '1':\
       -                                        case '2':\
       -                                        case '3':\
       -                                        case '4':\
       -                                        case '5':\
       -                                        case '6':\
       -                                        case '7':\
       -                                        case '8':\
       -                                        case '9'
       -
        #define ARGEND                        }\
                                }
        
        #define ARGC()                argc_
        
       -#define ARGNUMF()        (brk_ = 1, estrtonum(argv[0], 0, INT_MAX))
       -
       -#define EARGF(x)        ((argv[0][1] == '\0' && argv[1] == NULL)?\
       +#define EARGF(x)        ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\
                                        ((x), abort(), (char *)0) :\
       -                                (brk_ = 1, (argv[0][1] != '\0')?\
       -                                        (&argv[0][1]) :\
       +                                (brk_ = 1, (argv[0][i_+1] != '\0')?\
       +                                        (&argv[0][i_+1]) :\
                                                (argc--, argv++, argv[0])))
        
       -#define ARGF()                ((argv[0][1] == '\0' && argv[1] == NULL)?\
       +#define ARGF()                ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\
                                        (char *)0 :\
       -                                (brk_ = 1, (argv[0][1] != '\0')?\
       -                                        (&argv[0][1]) :\
       +                                (brk_ = 1, (argv[0][i_+1] != '\0')?\
       +                                        (&argv[0][i_+1]) :\
                                                (argc--, argv++, argv[0])))
        
       -#define LNGARG()        &argv[0][0]
       -
        #endif