From 74b0ae43c1eb2b0a263a3d7d09d0f92d4ce98ca5 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 1 Feb 2024 05:17:32 -0500 Subject: Enforce "only one mode argument" rule. --- xdeadzone.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'xdeadzone.c') diff --git a/xdeadzone.c b/xdeadzone.c index 5b89c94..b05a2ac 100644 --- a/xdeadzone.c +++ b/xdeadzone.c @@ -58,6 +58,11 @@ void errmsg(const char *msg) { usage(1); } +void check_mode(int mode) { + if(mode != M_UNSET) + errmsg("multiple modes given, only one of -abs -ne -nw -se -sw is allowed"); +} + int streq(const char *s1, const char *s2) { return !strcmp(s1, s2); } @@ -93,14 +98,19 @@ int main(int argc, char **argv) { } else if(streq(a, "-i")) { visible = 0; } else if(streq(a, "-abs")) { + check_mode(mode); mode = M_ABS; } else if(streq(a, "-ne")) { + check_mode(mode); mode = M_NE; } else if(streq(a, "-nw")) { + check_mode(mode); mode = M_NW; } else if(streq(a, "-se")) { + check_mode(mode); mode = M_SE; } else if(streq(a, "-sw")) { + check_mode(mode); mode = M_SW; } else if(a[0] == '-') { fprintf(stderr, "%s: invalid option: %s (try --help)\n", exe_name, a); -- cgit v1.2.3