aboutsummaryrefslogtreecommitdiff
path: root/args.c
diff options
context:
space:
mode:
Diffstat (limited to 'args.c')
-rw-r--r--args.c71
1 files changed, 38 insertions, 33 deletions
diff --git a/args.c b/args.c
index 157bf07..d74916d 100644
--- a/args.c
+++ b/args.c
@@ -6,7 +6,7 @@
#include "args.h"
#include "array.h"
-void parse_args(client_state* state, int argc, char* argv[]) {
+bool parse_args(client_state* state, int argc, char* argv[]) {
static struct option long_opts[] = {
{"lines", required_argument, 0, 'l'},
{"center", no_argument, 0, 'c'},
@@ -17,6 +17,7 @@ void parse_args(client_state* state, int argc, char* argv[]) {
{"orderless", no_argument, 0, 'o'},
{"insensitive", no_argument, 0, 'i'},
{"starting-text", required_argument, 0, 's'},
+ {"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};
@@ -24,38 +25,42 @@ void parse_args(client_state* state, int argc, char* argv[]) {
int long_index = 0;
while ((opt = getopt_long(argc, argv, "l:p:s:coievP", long_opts, &long_index)) != -1) {
switch (opt) {
- case 'l':
- state->lines = MIN(atoi(optarg), array_size(state->items));
- break;
- case 'p':
- state->prompt = optarg;
- break;
- case 'c':
- state->center = true;
- break;
- case 'e':
- state->exact_match = true;
- break;
- case 'v':
- state->verbose = true;
- break;
- case 'P':
- state->password = true;
- break;
- case 'o':
- state->orderless = true;
- break;
- case 'i':
- state->strstr2 = strcasestr;
- break;
- case 's':
- array_insert_many(state->input_buffer, 0, optarg, strlen(optarg));
- state->cursor_index = strlen(optarg);
- break;
- default:
- fprintf(stderr, "Usage: NOT WHAT YOU TYPED\n");
- fprintf(stderr, "%c\n", opt);
- break;
+ case 'l':
+ state->lines = MIN(atoi(optarg), array_size(state->items));
+ break;
+ case 'p':
+ state->prompt = optarg;
+ break;
+ case 'c':
+ state->center = true;
+ break;
+ case 'e':
+ state->exact_match = true;
+ break;
+ case 'v':
+ state->verbose++;
+ break;
+ case 'P':
+ state->password = true;
+ break;
+ case 'o':
+ state->orderless = true;
+ break;
+ case 'i':
+ state->strstr2 = strcasestr;
+ break;
+ case 's':
+ array_insert_many(state->input_buffer, 0, optarg, strlen(optarg));
+ state->cursor_index = strlen(optarg);
+ break;
+ case 'h':
+ fprintf(stderr, "WIP\n");
+ return false;
+ break;
+ default:
+ fprintf(stderr, "Usage: NOT WHAT YOU TYPED\n");
+ return false;
}
}
+ return true;
}