fix some issues with argument handling

This commit is contained in:
speedie 2023-03-18 01:18:11 +01:00
parent 3cb79ea2ce
commit 3f0d90454d

View file

@ -131,24 +131,18 @@ readargs(int argc, char *argv[])
} else if (!strcmp(argv[i], "-nip") || (!strcmp(argv[i], "--no-indent"))) { // don't indent to prompt width
indentitems = 0;
} else if (i + 1 == argc) {
int arg = i;
int pr = 1;
// any of the arguments we checked first
if (strcmp(argv[i-1], "-xrdb")
|| strcmp(argv[i-1], "-nxrdb")
|| strcmp(argv[i-1], "--xrdb")
|| strcmp(argv[i-1], "--no-xrdb")
|| strcmp(argv[i-1], "-lcfg")
|| strcmp(argv[i-1], "-ncfg")
|| strcmp(argv[i-1], "--load-config")
|| strcmp(argv[i-1], "--no-load-config")
)
pr = 0;
if (arg != 1 && pr)
fprintf(stderr, "spmenu: The '%s' option requires an argument.\n", argv[i-1]);
else if (pr)
if ((!strcmp(argv[i], "-xrdb")
|| !strcmp(argv[i], "-nxrdb")
|| !strcmp(argv[i], "--xrdb")
|| !strcmp(argv[i], "--no-xrdb")
|| !strcmp(argv[i], "-lcfg")
|| !strcmp(argv[i], "-ncfg")
|| !strcmp(argv[i], "--load-config")
|| !strcmp(argv[i], "--no-load-config")
))
continue;
else
fprintf(stderr, "spmenu: Invalid argument: '%s'\n", argv[i]);
// dmenu compatibility arguments
@ -312,7 +306,18 @@ readargs(int argc, char *argv[])
else if (!strcmp(argv[i], "-sgr14") || (!strcmp(argv[i], "--sgr14"))) textcolors[14] = argv[++i]; // sgr color 14
else if (!strcmp(argv[i], "-sgr15") || (!strcmp(argv[i], "--sgr15"))) textcolors[15] = argv[++i]; // sgr color 15
else
fprintf(stderr, "spmenu: Invalid argument: '%s'\n", argv[i]);
if ((!strcmp(argv[i], "-xrdb")
|| !strcmp(argv[i], "-nxrdb")
|| !strcmp(argv[i], "--xrdb")
|| !strcmp(argv[i], "--no-xrdb")
|| !strcmp(argv[i], "-lcfg")
|| !strcmp(argv[i], "-ncfg")
|| !strcmp(argv[i], "--load-config")
|| !strcmp(argv[i], "--no-load-config")
))
continue;
else
fprintf(stderr, "spmenu: Invalid argument: '%s'\n", argv[i]);
if (casesensitive) {
fstrncmp = strncmp;