arg.h: Refactor ARGF_() - farbfeld - suckless image format with conversion tools
 (HTM) git clone git://git.suckless.org/farbfeld
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 959b70ab5a7f7801f7047b9d513671cd95500488
 (DIR) parent 26c092599447284fe85e11d322daf034ca96eeb3
 (HTM) Author: Laslo Hunhold <dev@frign.de>
       Date:   Fri,  4 Aug 2017 16:11:12 +0200
       
       arg.h: Refactor ARGF_()
       
       Diffstat:
         M arg.h                               |      20 ++++++++------------
       
       1 file changed, 8 insertions(+), 12 deletions(-)
       ---
 (DIR) diff --git a/arg.h b/arg.h
       @@ -24,15 +24,15 @@ extern char *argv0;
        /* int main(int argc, char *argv[]) */
        #define ARGBEGIN for (argv0 = *argv, *argv ? (argc--, argv++) : ((void *)0);      \
                              *argv && (*argv)[0] == '-' && (*argv)[1]; argc--, argv++) { \
       -                         int i, argused;                                           \
       +                         int _i, _argused;                                         \
                                 if ((*argv)[1] == '-' && !(*argv)[2]) {                   \
                                         argc--, argv++;                                   \
                                         break;                                            \
                                 }                                                         \
       -                         for (i = 1, argused = 0; (*argv)[i]; i++) {               \
       -                                 switch((*argv)[i])
       -#define ARGEND                   if (argused) {                                    \
       -                                         if ((*argv)[i + 1]) {                     \
       +                         for (_i = 1, _argused = 0; (*argv)[_i]; _i++) {           \
       +                                 switch((*argv)[_i])
       +#define ARGEND                   if (_argused) {                                   \
       +                                         if ((*argv)[_i + 1]) {                    \
                                                         break;                            \
                                                 } else {                                  \
                                                         argc--, argv++;                   \
       @@ -41,13 +41,9 @@ extern char *argv0;
                                         }                                                 \
                                 }                                                         \
                         }
       -#define ARGC()   (*argv)[i]
       -#define ARGF_(x) ((!(*argv)[i + 1] && !*(argv + 1)) ?    \
       -                         (x) :                            \
       -                         (argused = 1, ((*argv)[i + 1]) ? \
       -                                 (&(*argv)[i + 1]) :      \
       -                                 (*(argv + 1))            \
       -                         )                                \
       +#define ARGC()   (*argv)[_i]
       +#define ARGF_(x) (((*argv)[_i + 1]) ? (_argused = 1, &((*argv)[_i + 1])) :     \
       +                  (*(argv + 1))     ? (_argused = 1, *(argv + 1))        : (x) \
                         )
        #define EARGF(x) ARGF_(((x), exit(1), (char *)0))
        #define ARGF()   ARGF_((char *)0)