-int
-strido(const char *text, const char *pattern) {
- for(; *text && *pattern; text++)
- if (*text == *pattern)
- pattern++;
- return !*pattern;
-}
-
-unsigned int
-textnw(const char *text, unsigned int len) {
- XRectangle r;
-
- if(dc.font.set) {
- XmbTextExtents(dc.font.set, text, len, NULL, &r);
- return r.width;
- }
- return XTextWidth(dc.font.xfont, text, len);
-}
-
-unsigned int
-textw(const char *text) {
- return textnw(text, strlen(text)) + dc.font.height;
-}
-
-int
-main(int argc, char *argv[]) {
- Bool bottom = False;
- unsigned int i;
-
- /* command line args */
- for(i = 1; i < argc; i++)
- if(!strcmp(argv[i], "-b")) {
- bottom = True;
- }
- else if(!strcmp(argv[i], "-fn")) {
- if(++i < argc) font = argv[i];
- }
- else if(!strcmp(argv[i], "-nb")) {
- if(++i < argc) normbg = argv[i];
- }
- else if(!strcmp(argv[i], "-nf")) {
- if(++i < argc) normfg = argv[i];
- }
- else if(!strcmp(argv[i], "-p")) {
- if(++i < argc) prompt = argv[i];
- }
- else if(!strcmp(argv[i], "-sb")) {
- if(++i < argc) selbg = argv[i];
- }
- else if(!strcmp(argv[i], "-sf")) {
- if(++i < argc) selfg = argv[i];
- }
- else if(!strcmp(argv[i], "-v"))
- eprint("dmenu-"VERSION", © 2006-2007 Anselm R. Garbe, Sander van Dijk\n");
- else
- eprint("usage: dmenu [-b] [-fn <font>] [-nb <color>] [-nf <color>]\n"
- " [-p <prompt>] [-sb <color>] [-sf <color>] [-v]\n");
- setlocale(LC_CTYPE, "");
- dpy = XOpenDisplay(0);
- if(!dpy)
- eprint("dmenu: cannot open display\n");
- screen = DefaultScreen(dpy);
- root = RootWindow(dpy, screen);
-
- if(isatty(STDIN_FILENO)) {
- readstdin();
- running = grabkeyboard();
- }
- else { /* prevent keypress loss */
- running = grabkeyboard();
- readstdin();
- }
-
- setup(bottom);
- drawmenu();
- XSync(dpy, False);
- run();
- cleanup();
- XCloseDisplay(dpy);
- return ret;