diff options
| author | johannes <johannes.herman@gmail.com> | 2024-03-03 16:55:50 +0100 |
|---|---|---|
| committer | johannes <johannes.herman@gmail.com> | 2024-03-03 16:55:50 +0100 |
| commit | 150790c84f1773cfc82b13953d7894cd25474a83 (patch) | |
| tree | e48ea734979e4e0111a4c26172887e4afeb232b2 /src/args.c | |
| parent | 9a14ce4b99dea312fe508153d6d8ccc56c27c69a (diff) | |
added freeargs
Diffstat (limited to 'src/args.c')
| -rw-r--r-- | src/args.c | 29 |
1 files changed, 27 insertions, 2 deletions
@@ -157,14 +157,35 @@ int parseargs(int argc, char *args[]) } else { - argerr = 2; - errflag = NULL; + if (a[0] != '-') + { + argerr = 2; + errflag = NULL; + } + else + { + argerr = 3; + errflag = args[i]; + } return 0; } } return 1; } +void freeargs() +{ + for (int i = 0; i < ARGC; i++) + { + if (ARGS[i].opts) + free(ARGS[i].opts); + } + if (ARGS) + free(ARGS); + if (PARGS) + free(PARGS); +} + void runargs() { for (int i = 0; i < ARGC; i++) @@ -197,6 +218,7 @@ arg *getopt(char *flag, int pos) } return NULL; } + void printhelp() { char inctype[ARGTYPELEN] = {0, 0, 0}; @@ -264,6 +286,9 @@ void paerror(char *str) case 2: errstr = "Too many positional arguments"; break; + case 3: + errstr = "Unknown flag"; + break; default: errstr = "Unknown error"; break; |
