aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-04-12 14:18:03 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-04-12 14:18:03 -0400
commit60cc8f5b3d84f25ddc2718c7bbbf89c454784024 (patch)
tree0a831fca62d52cb85ff5259327924803dc7e2340
parent37a0ca997d4e6fa7d798c2947f4e310d33149e6f (diff)
Bugfix for -q and -p flags
-rw-r--r--ask.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/ask.c b/ask.c
index fcde6fd..b7df3ce 100644
--- a/ask.c
+++ b/ask.c
@@ -188,7 +188,7 @@ static char *get_input(FILE *in, FILE *out, const char *prompt, const char *init
}
int start = 0, backtrack = 0;
- while (1) {
+ for (;;) {
case_sensitive = 0;
for (const char *p = buf; *p; ++p)
case_sensitive |= ('A' <= *p && *p <= 'Z');
@@ -391,12 +391,17 @@ int main(int argc, char *argv[])
case '0': delim = '\0'; break;
case 'y': yes = 1; quickpick = 1; break;
case 'n': no = 1; quickpick = 1; break;
+ case 'p':
+ if (a + 1 >= argc) goto help_flag;
+ prompt = argv[++a];
+ break;
+ case 'q':
+ if (a + 1 >= argc) goto help_flag;
+ query = argv[++a];
+ break;
+ default: goto help_flag;
}
}
- } else if (strcmp(argv[a], "-p") == 0) {
- prompt = argv[++a];
- } else if (strcmp(argv[a], "-q") == 0) {
- query = argv[++a];
} else if (strncmp(argv[a], "--read0", strlen("--read0")) == 0) {
delim = '\0';
} else if (strncmp(argv[a], "--prompt=", strlen("--prompt=")) == 0) {