diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 32 |
1 files changed, 31 insertions, 1 deletions
@@ -1,5 +1,35 @@ #include <stdio.h> +#include <string.h> + +#define X(name) int entry_ ## name (int argc, char **argv); +PROGNAMES_XLIST +#undef X + +static char* basename(char *path) { + size_t len = strlen(path); + for (size_t i = len - 1; i != 0; i--) { + if (path[i] == '/') return path + (i + 1); + } + return path; +} int main(int argc, char **argv) { - fprintf(stderr, "Drukkedoos moet nog geïmplementeerd worden\n"); + const char *prognamearg = basename(argv[0]); + + if (strcmp(prognamearg, "drukkedoos") == 0) { + argv++; + argc--; + if (argc == 0) { + fprintf(stderr, "Gebruik: drukkedoos <commando>\n"); + return 1; + } + prognamearg = basename(argv[0]); + } + +#define X(name) if (strcmp(argv[0], #name) == 0) return entry_ ## name (argc, argv); +PROGNAMES_XLIST +#undef X + + fprintf(stderr, "Onbekend hulpmiddel: '%s'\n", prognamearg); + return 1; } |