mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 04:37:34 +00:00
LibC: Borrow a slightly more functional getopt()
We were already borrowing a getopt() from the BSD family until the day we write our own. This patch borrows a slightly more modern one so we also get getopt_long(). Fixes #190. See also #91 for the desire to eventually NIH our own getopt()..
This commit is contained in:
parent
6ab498edf7
commit
56e0e6be56
2 changed files with 611 additions and 85 deletions
|
@ -2,12 +2,35 @@
|
|||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#define no_argument 0
|
||||
#define required_argument 1
|
||||
#define optional_argument 2
|
||||
|
||||
struct option {
|
||||
const char *name;
|
||||
int has_arg;
|
||||
int* flag;
|
||||
int val;
|
||||
};
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
int getopt(int argc, char* const argv[], const char* optstring);
|
||||
extern char* optarg;
|
||||
int getopt_long(int, char* const*, const char*, const struct option*, int*);
|
||||
int getopt_long_only(int, char* const*, const char*, const struct option*, int*);
|
||||
|
||||
#ifndef _GETOPT_DECLARED
|
||||
#define _GETOPT_DECLARED
|
||||
int getopt(int, char * const [], const char *);
|
||||
extern char *optarg;
|
||||
extern int optind;
|
||||
extern int opterr;
|
||||
extern int optopt;
|
||||
#endif
|
||||
|
||||
#ifndef _OPTRESET_DECLARED
|
||||
#define _OPTRESET_DECLARED
|
||||
extern int optreset;
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue