From 565ee8a08e7c65b65b0c8147f3c6a23b350e2b6c Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 19 Jun 2013 17:34:18 +0200 Subject: beginning of c version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/argparser.c | 681 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 677 insertions(+), 4 deletions(-) diff --git a/src/argparser.c b/src/argparser.c index a3020d6..b72639f 100644 --- a/src/argparser.c +++ b/src/argparser.c @@ -20,19 +20,692 @@ #include +#define true 1 +#define false 0 +#define null 0 + +#define ARGUMENTLESS 0 +#define ARGUMENTED 1 +#define VARIADIC 2 + + +static void sort(char** list, long count); +static long cmp(char* a, char* b); + + +/** + * Whether the Linux VT is being used + */ long args_linuxvt; + +/** + * The name of the executed command + */ char* args_program; + +/** + * Whether to free the member of `args_program` + */ +long args_program_dispose; + +/** + * Short, single-line, description of the program + */ char* args_dscription; + +/** + * Formated, multi-line, usage text, `null` if none + */ char* args_usage; + +/** + * Long, multi-line, description of the program, `null` if none + */ char* args_longdscription; +/** + * The error output stream + */ +FILE* args_out; + +/** + * The passed arguments + */ +char** args_arguments; -extern void args_init(char* dscription, char* usage, char* longdscription, char* program, long usestderr) +/** + * The number of passed arguments + */ +long args_arguments_count; + +/** + * The number of unrecognised arguments + */ +long args_unrecognised_count; + +/** + * The concatination of `files` with blankspaces as delimiters, `null` if no files + */ +char* args_message; + +/** + * The arguments passed that is not tied to an option + */ +char** args_files; + +/** + * The number of elements in `args_files` + */ +long args_files_count; + +// Options, in order +// ArrayList