9 static int csr_argi
= 1;
10 static int csr_argj
= 1;
11 static int csr_argc
= 0;
12 static int csr_consume_next
= 0;
13 static char **csr_argv
;
15 // Will return 0 if exhausted
16 int csr_argp( int argc
, char *argv
[] )
21 static int delta_i
= 0;
22 static int delta_j
= 0;
24 if( csr_argj
!= 1 && !csr_argv
[ csr_argi
][ csr_argj
] )
30 if( csr_consume_next
)
36 if( csr_argi
>= argc
)
39 if( (delta_i
== csr_argi
) && (delta_j
== csr_argj
) )
41 char *cur
= &csr_argv
[ csr_argi
][ csr_argj
];
45 log_error( "Unknown opt '-%c'\n", *cur
);
49 log_error( "Unknown opt '--%s'\n", cur
+ 1 );
61 // Example: see if -c is set
64 char *carg
= csr_argv
[ csr_argi
];
71 if( carg
[ csr_argj
] == c
)
82 // Example: get -c *value*
83 char *csr_opt_arg( char c
)
87 if( csr_argi
< csr_argc
-1 )
89 if( csr_argv
[ csr_argi
+ 1 ][0] != '-' )
92 return csr_argv
[ csr_argi
+ 1 ];
96 log_error( "Option '%c' requires argument!\n", c
);
103 // Example see if --big is set
104 int csr_long_opt( char *name
)
106 char *carg
= csr_argv
[ csr_argi
];
112 if( !strcmp( name
, carg
+2 ) )
114 csr_consume_next
= 1;
123 // Example: get --big=value
124 char *csr_long_opt_arg( char *name
)
126 char *carg
= csr_argv
[ csr_argi
];
132 int k
= 2; int set
= 0;
135 if( carg
[ k
] == '=' )
144 if( !strncmp( name
, carg
+2, k
-2 ) )
146 csr_consume_next
= 1;
155 log_error( "Long option '%s' requires argument\n", name
);
166 char *carg
= csr_argv
[ csr_argi
];
170 csr_consume_next
= 1;