carg_parser.h (lzlib-1.12.tar.lz) | : | carg_parser.h (lzlib-1.13.tar.lz) | ||
---|---|---|---|---|
/* Arg_parser - POSIX/GNU command line argument parser. (C version) | /* Arg_parser - POSIX/GNU command line argument parser. (C version) | |||
Copyright (C) 2006-2021 Antonio Diaz Diaz. | Copyright (C) 2006-2022 Antonio Diaz Diaz. | |||
This library is free software. Redistribution and use in source and | This library is free software. Redistribution and use in source and | |||
binary forms, with or without modification, are permitted provided | binary forms, with or without modification, are permitted provided | |||
that the following conditions are met: | that the following conditions are met: | |||
1. Redistributions of source code must retain the above copyright | 1. Redistributions of source code must retain the above copyright | |||
notice, this list of conditions, and the following disclaimer. | notice, this list of conditions, and the following disclaimer. | |||
2. Redistributions in binary form must reproduce the above copyright | 2. Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions, and the following disclaimer in the | notice, this list of conditions, and the following disclaimer in the | |||
skipping to change at line 27 | skipping to change at line 27 | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||
*/ | */ | |||
/* Arg_parser reads the arguments in 'argv' and creates a number of | /* Arg_parser reads the arguments in 'argv' and creates a number of | |||
option codes, option arguments, and non-option arguments. | option codes, option arguments, and non-option arguments. | |||
In case of error, 'ap_error' returns a non-null pointer to an error | In case of error, 'ap_error' returns a non-null pointer to an error | |||
message. | message. | |||
'options' is an array of 'struct ap_Option' terminated by an element | 'options' is an array of 'struct ap_Option' terminated by an element | |||
containing a code which is zero. A null name means a short-only | containing a code which is zero. A null long_name means a short-only | |||
option. A code value outside the unsigned char range means a | option. A code value outside the unsigned char range means a long-only | |||
long-only option. | option. | |||
Arg_parser normally makes it appear as if all the option arguments | Arg_parser normally makes it appear as if all the option arguments | |||
were specified before all the non-option arguments for the purposes | were specified before all the non-option arguments for the purposes | |||
of parsing, even if the user of your program intermixed option and | of parsing, even if the user of your program intermixed option and | |||
non-option arguments. If you want the arguments in the exact order | non-option arguments. If you want the arguments in the exact order | |||
the user typed them, call 'ap_init' with 'in_order' = true. | the user typed them, call 'ap_init' with 'in_order' = true. | |||
The argument '--' terminates all options; any following arguments are | The argument '--' terminates all options; any following arguments are | |||
treated as non-option arguments, even if they begin with a hyphen. | treated as non-option arguments, even if they begin with a hyphen. | |||
skipping to change at line 53 | skipping to change at line 53 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
enum ap_Has_arg { ap_no, ap_yes, ap_maybe }; | enum ap_Has_arg { ap_no, ap_yes, ap_maybe }; | |||
struct ap_Option | struct ap_Option | |||
{ | { | |||
int code; /* Short option letter or code ( code != 0 ) */ | int code; /* Short option letter or code ( code != 0 ) */ | |||
const char * name; /* Long option name (maybe null) */ | const char * long_name; /* Long option name (maybe null) */ | |||
enum ap_Has_arg has_arg; | enum ap_Has_arg has_arg; | |||
}; | }; | |||
struct ap_Record | struct ap_Record | |||
{ | { | |||
int code; | int code; | |||
char * parsed_name; | ||||
char * argument; | char * argument; | |||
}; | }; | |||
struct Arg_parser | struct Arg_parser | |||
{ | { | |||
struct ap_Record * data; | struct ap_Record * data; | |||
char * error; | char * error; | |||
int data_size; | int data_size; | |||
int error_size; | int error_size; | |||
}; | }; | |||
skipping to change at line 86 | skipping to change at line 87 | |||
const char * ap_error( const struct Arg_parser * const ap ); | const char * ap_error( const struct Arg_parser * const ap ); | |||
/* The number of arguments parsed. May be different from argc. */ | /* The number of arguments parsed. May be different from argc. */ | |||
int ap_arguments( const struct Arg_parser * const ap ); | int ap_arguments( const struct Arg_parser * const ap ); | |||
/* If ap_code( i ) is 0, ap_argument( i ) is a non-option. | /* If ap_code( i ) is 0, ap_argument( i ) is a non-option. | |||
Else ap_argument( i ) is the option's argument (or empty). */ | Else ap_argument( i ) is the option's argument (or empty). */ | |||
int ap_code( const struct Arg_parser * const ap, const int i ); | int ap_code( const struct Arg_parser * const ap, const int i ); | |||
/* Full name of the option parsed (short or long). */ | ||||
const char * ap_parsed_name( const struct Arg_parser * const ap, const int i ); | ||||
const char * ap_argument( const struct Arg_parser * const ap, const int i ); | const char * ap_argument( const struct Arg_parser * const ap, const int i ); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
5 lines changed or deleted | 9 lines changed or added |