X-Git-Url: https://git.armaanb.net/?p=mmenu.git;a=blobdiff_plain;f=mmenu.c;h=d14f4a318b4608f2c13e28c205833ba130033bfa;hp=8691b45feabe662331bcc7de474ac174499f3477;hb=cfe6868b9e273efbe1cf9c783c00d72d48d0bff9;hpb=bb708b3691abc66edeb976ca3279481e11177450 diff --git a/mmenu.c b/mmenu.c index 8691b45..d14f4a3 100644 --- a/mmenu.c +++ b/mmenu.c @@ -1,6 +1,8 @@ #include #include #include +#include +#include #include #include @@ -153,11 +155,41 @@ ArgvToXmStringTable (int argc, char **argv) return new; } +char * +strLower(char *inp) +{ + char *tmp = calloc(strlen(inp), sizeof(char)); + strcpy(tmp, inp); + for (int i = 0; tmp[i]; i++){ + tmp[i] = tolower(tmp[i]); + } + return tmp; +} + int main(int argc, char *argv[]) { - if (argc > 1) { - printf("Usage: %s\n", argv[0]); + // Parse CLI arguments + bool showUsage = false; + if (argc == 2) { + showUsage = true; + char *arg = strLower(argv[1]); + + for (int i = 0; i < 5; i++) { + char *day = strLower(days[i]); + + if (strcmp(day, arg) == 0) { + showUsage = false; + break; + } + + free(day); + } + free(arg); + } + + if (argc > 2 || showUsage) { + printf("Usage: %s [optional: day of the week]\n", argv[0]); exit(3); } @@ -178,7 +210,7 @@ main(int argc, char *argv[]) // Create text widget to display menu n = 0; - char *nl = getmenu(""); + char *nl = getmenu((argv[1]) ? argv[1] : ""); XtSetArg(args[n], XmNvalue, nl); n++; XtSetArg(args[n], XmNeditable, False); n++; XtSetArg(args[n], XmNcolumns, 80); n++;