diff options
| author | Tristan Riehs <tristan.riehs@inria.fr> | 2026-04-26 12:22:52 +0200 |
|---|---|---|
| committer | Tristan Riehs <tristan.riehs@inria.fr> | 2026-04-26 12:30:07 +0200 |
| commit | c89eb42d58321d3e1325a684ef50a05ee3f99cfa (patch) | |
| tree | 811a2f7ad41618fa975dbe7d2212377edd599a4a /src/input.c | |
| parent | 2991c0b3560781344488680625954aa3ef0893c6 (diff) | |
Add a "input" module
Diffstat (limited to 'src/input.c')
| -rw-r--r-- | src/input.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/input.c b/src/input.c new file mode 100644 index 0000000..9ac68be --- /dev/null +++ b/src/input.c @@ -0,0 +1,33 @@ +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "input.h" + +int prompt_yes_no(void) +{ + puts(" [Y/n]"); + fflush(stdout); + size_t line_size = 3; + char *line = malloc(line_size); + int attempts = 0; + do { + getline(&line, &line_size, stdin); + char input = line[0]; + if (input == '\n'/*no input*/ || input == 'y' || input == 'Y') + return 1; + else if (input == 'n' || input == 'N') + return 0; + attempts++; + } + while(attempts < 3); + return 0; +} + +void remove_ending_newline(char *str) +{ + int idx = strlen(str) - 1; + assert(str[idx] == '\n'); + str[idx] = '\0'; +} |
