int a : 1;
} Option_T;
-void opts_parse(int argc, char** argv);
-void opts_parsespec(char* spec, Option_T* opt);
-void opts_printhelp(void);
-
-//void Options_Parse(int argc, char** argv);
-//void Options_ParseSpec(char* spec, Option_T* opt);
-//void Options_PrintHelp(void);
+void Options_Parse(int argc, char** argv);
+void Options_PrintHelp(void);
/*
Standard Library Helpers
#include <liba.h>
-static void handle_option(int s, char* l, char* arg)
+static void HandleOption(int s, char* l, char* arg)
{
if (s == 'h')
{
- opts_printhelp();
+ Options_PrintHelp();
exit(1);
}
else
}
}
-static Option_T* lookup_opt(char* flag)
+static Option_T* LookupOption(char* flag)
{
Option_T* opt = NULL;
return opt;
}
-static inline void parse_longopt(int* currp, char** argv)
+static inline void ParseLongOption(int* currp, char** argv)
{
/* get the option and the arg if there is one */
char* flag = argv[*currp] + 2;
arg = split+1;
}
- Option_T* od = lookup_opt(flag);
+ Option_T* od = LookupOption(flag);
if (!od)
{
fatal("unknown option: '%s'", flag);
}
}
printf("handled option: '--%s=%s'\n", flag, arg);
- handle_option(od->s, od->l, arg);
+ HandleOption(od->s, od->l, arg);
}
/* now repair the split if we made one */
*currp += 1;
}
-static inline void parse_shortopt(int* currp, char** argv)
+static inline void ParseShortOption(int* currp, char** argv)
{
char* argstr = argv[*currp]+1;
char flag[] = "\0\0";
{
/* get the flag and the possible argument */
flag[0] = *argstr;
- Option_T* od = lookup_opt(flag);
+ Option_T* od = LookupOption(flag);
if (!od)
{
fatal("unknown option: '%s'", flag);
if (*arg != '\0')
{
arg += (*arg == '=' ? 1 : 0);
- handle_option(od->s, od->l, arg);
+ HandleOption(od->s, od->l, arg);
break;
}
else if (!*arg)
{
fatal("expected argument for option: '%s'", flag);
}
- handle_option(od->s, od->l, arg);
+ HandleOption(od->s, od->l, arg);
*currp += 1;
break;
}
}
else
{
- handle_option(od->s, od->l, NULL);
+ HandleOption(od->s, od->l, NULL);
}
}
*currp += 1;
}
-void opts_parse(int argc, char** argv)
+void Options_Parse(int argc, char** argv)
{
/* Record the program name */
ARGV0 = argv[0];
{
if (argv[i][0] == '-' && argv[i][1] == '-')
{
- parse_longopt(&i, argv);
+ ParseLongOption(&i, argv);
}
else if (argv[i][0] == '-')
{
- parse_shortopt(&i, argv);
+ ParseShortOption(&i, argv);
}
else
{
}
}
-void opts_printhelp(void)
+void Options_PrintHelp(void)
{
/* calculate padding */
size_t padding = 0;