diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-02-25 10:56:23 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-02-25 10:56:23 -0500 |
commit | 3ab13be7591161e5dd8ea0fd2830820a5c8d4fee (patch) | |
tree | 3095aeefd0b7d47b914225d8345e1c7e3eccf64e /src/user_input.c | |
parent | 7b2ab0211cc7dd4d32984c652e49a6dd2180498b (diff) | |
download | spmc-3ab13be7591161e5dd8ea0fd2830820a5c8d4fee.tar.gz |
Initial commit of user_input.[c,h]
Diffstat (limited to 'src/user_input.c')
-rw-r--r-- | src/user_input.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/user_input.c b/src/user_input.c new file mode 100644 index 0000000..061fb2e --- /dev/null +++ b/src/user_input.c @@ -0,0 +1,46 @@ +#include "spm.h" + +/** + * Basic case-insensitive interactive choice function + * @param answer + * @param answer_default + * @return + */ +int spm_user_yesno(int answer, int empty_input_is_yes) { + int result = 0; + answer = tolower(answer); + + if (answer == 'y') { + result = 1; + } else if (answer == 'n') { + result = 0; + } else { + if (empty_input_is_yes) { + result = 1; + } else { + result = -1; + } + } + + return result; +} + +void spm_user_yesno_test() { + int choice; + int status; + while ((choice = getchar())) { + status = spm_user_yesno(choice, 1); + if (status == -1) { + puts("Please answer Y or N"); + continue; + } + else if (status == 0) { + puts("You answered no"); + break; + } + else if (status == 1) { + puts("You answered yes"); + break; + } + } +} |