+ if (XrmGetResource(xdb, "dmenu.font", "*", &type, &xval))
+ fonts[0] = strdup(xval.addr);
+ else
+ fonts[0] = strdup(fonts[0]);
+ if (XrmGetResource(xdb, "dmenu.background", "*", &type, &xval))
+ colors[SchemeNorm][ColBg] = strdup(xval.addr);
+ else
+ colors[SchemeNorm][ColBg] = strdup(colors[SchemeNorm][ColBg]);
+ if (XrmGetResource(xdb, "dmenu.foreground", "*", &type, &xval))
+ colors[SchemeNorm][ColFg] = strdup(xval.addr);
+ else
+ colors[SchemeNorm][ColFg] = strdup(colors[SchemeNorm][ColFg]);
+ if (XrmGetResource(xdb, "dmenu.selbackground", "*", &type, &xval))
+ colors[SchemeSel][ColBg] = strdup(xval.addr);
+ else
+ colors[SchemeSel][ColBg] = strdup(colors[SchemeSel][ColBg]);
+ if (XrmGetResource(xdb, "dmenu.selforeground", "*", &type, &xval))
+ colors[SchemeSel][ColFg] = strdup(xval.addr);
+ else
+ colors[SchemeSel][ColFg] = strdup(colors[SchemeSel][ColFg]);
+
+ XrmDestroyDatabase(xdb);
+ }
+}
+
+int
+main(int argc, char *argv[])
+{
+ XWindowAttributes wa;
+ int i, fast = 0;
+
+ for (i = 1; i < argc; i++)
+ /* these options take no arguments */
+ if (!strcmp(argv[i], "-v")) { /* prints version information */
+ puts("dmenu-"VERSION);
+ exit(0);
+ } else if (!strcmp(argv[i], "-b")) /* appears at the bottom of the screen */
+ topbar = 0;
+ else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */
+ fast = 1;
+ else if (!strcmp(argv[i], "-c")) /* centers dmenu on screen */
+ centered = 1;
+ else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */