-int
-main(int argc, char *argv[]) {
- Bool fast = False;
- int i;
-
- for(i = 1; i < argc; i++)
- /* these options take no arguments */
- if(!strcmp(argv[i], "-v")) { /* prints version information */
- puts("dmenu-"VERSION", © 2006-2015 dmenu engineers, see LICENSE for details");
- exit(0);
- }
- else if(!strcmp(argv[i], "-b")) /* appears at the bottom of the screen */
- topbar = False;
- else if(!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */
- fast = True;
- else if(!strcmp(argv[i], "-i")) { /* case-insensitive item matching */
- fstrncmp = strncasecmp;
- fstrstr = cistrstr;
- }
- else if(i+1 == argc)
- usage();
- /* these options take one argument */
- else if(!strcmp(argv[i], "-l")) /* number of lines in vertical list */
- lines = atoi(argv[++i]);
- else if(!strcmp(argv[i], "-m"))
- mon = atoi(argv[++i]);
- else if(!strcmp(argv[i], "-p")) /* adds prompt to left of input field */
- prompt = argv[++i];
- else if(!strcmp(argv[i], "-fn")) /* font or font set */
- fonts[0] = argv[++i];
- else if(!strcmp(argv[i], "-nb")) /* normal background color */
- normbgcolor = argv[++i];
- else if(!strcmp(argv[i], "-nf")) /* normal foreground color */
- normfgcolor = argv[++i];
- else if(!strcmp(argv[i], "-sb")) /* selected background color */
- selbgcolor = argv[++i];
- else if(!strcmp(argv[i], "-sf")) /* selected foreground color */
- selfgcolor = argv[++i];
- else
- usage();
-
- if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
- fputs("warning: no locale support\n", stderr);
- if(!(dpy = XOpenDisplay(NULL)))
- die("dwm: cannot open display\n");
- screen = DefaultScreen(dpy);
- root = RootWindow(dpy, screen);
- sw = DisplayWidth(dpy, screen);
- sh = DisplayHeight(dpy, screen);
- drw = drw_create(dpy, screen, root, sw, sh);
- drw_load_fonts(drw, fonts, LENGTH(fonts));
- if(!drw->fontcount)
- die("No fonts could be loaded.\n");
- drw_setscheme(drw, &scheme[SchemeNorm]);
-
- if(fast) {
- grabkeyboard();
- readstdin();
- }
- else {
- readstdin();
- grabkeyboard();
- }
- setup();
- run();
-
- return 1; /* unreachable */
-}
-
-void
-appenditem(Item *item, Item **list, Item **last) {
- if(*last)