diff options
| author | Victor Mignot <victor@vmignot.fr> | 2026-02-18 08:16:09 +0100 |
|---|---|---|
| committer | Victor Mignot <victor@vmignot.fr> | 2026-03-04 17:25:12 +0100 |
| commit | 82938d522273eefd51b136f037810fa6b963a096 (patch) | |
| tree | 2204b4f5c50ac63326bf8b8ec48fdf490e98838a /src | |
| download | futiles-82938d522273eefd51b136f037810fa6b963a096.tar.gz | |
Implement `true` and `false`
Diffstat (limited to 'src')
| -rw-r--r-- | src/false.c | 6 | ||||
| -rw-r--r-- | src/main.c | 49 | ||||
| -rw-r--r-- | src/true.c | 5 |
3 files changed, 60 insertions, 0 deletions
diff --git a/src/false.c b/src/false.c new file mode 100644 index 0000000..2601ae2 --- /dev/null +++ b/src/false.c @@ -0,0 +1,6 @@ +int false_main(int argc, char *argv[]) { + (void) argc; + (void) argv; + + return 1; +} diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..1c2ae2e --- /dev/null +++ b/src/main.c @@ -0,0 +1,49 @@ +#include <libgen.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +typedef int util_main(int, char **); + +extern util_main true_main; +extern util_main false_main; + +typedef struct futiles_util futiles_util_t; +struct futiles_util { + const char *name; + util_main *main; +}; + +int display_utils(int, char **); +const futiles_util_t utils[] = { + { .name = "futiles", .main = display_utils }, + { .name = "true", .main = true_main }, + { .name = "false", .main = false_main } +}; +#define UTILS_NB (sizeof(utils) / sizeof(futiles_util_t)) + +int display_utils(int argc, char *argv[]) { + (void) argc; + (void) argv; + + printf("Available utils: "); + for (size_t i = 1; i < UTILS_NB; i++) { + printf("%s ", utils[i].name); + } + printf("\n"); + + return EXIT_SUCCESS; +} + +int main(int argc, char *argv[]) { + (void) argc; + + char *called_basename = basename(argv[0]); + + for (size_t i = 0; i < UTILS_NB; i++) { + if (strcmp(called_basename, utils[i].name) == 0) { + return utils[i].main(argc, argv); + } + } + return EXIT_FAILURE; +} diff --git a/src/true.c b/src/true.c new file mode 100644 index 0000000..d7d4dfb --- /dev/null +++ b/src/true.c @@ -0,0 +1,5 @@ +int true_main(int argc, char *argv[]) { + (void) argc; + (void) argv; + return 0; +} |
