static char text[BUFSIZ];
static size_t cursor = 0;
+static const char *font = NULL;
static const char *prompt = NULL;
static const char *normbgcolor = "#cccccc";
static const char *normfgcolor = "#000000";
else
n = mw - (promptw + inputw + textw(dc, "<") + textw(dc, ">"));
- for(i = 0, next = curr; i <= n && next; next = next->right)
- i += (lines > 0) ? LINEH : MIN(textw(dc, next->text), mw/3);
-
- for(i = 0, prev = curr; i <= n && prev && prev->left; prev = prev->left)
- i += (lines > 0) ? LINEH : MIN(textw(dc, prev->left->text), mw/3);
+ for(i = 0, next = curr; next; next = next->right)
+ if((i += (lines > 0) ? LINEH : MIN(textw(dc, next->text), mw/3)) > n)
+ break;
+ for(i = 0, prev = curr; prev && prev->left; prev = prev->left)
+ if((i += (lines > 0) ? LINEH : MIN(textw(dc, prev->left->text), mw/3)) > n)
+ break;
}
char *
int i;
progname = "dmenu";
- dc = initdraw();
-
for(i = 1; i < argc; i++)
/* single flags */
if(!strcmp(argv[i], "-v")) {
else if(!strcmp(argv[i], "-p"))
prompt = argv[++i];
else if(!strcmp(argv[i], "-fn"))
- initfont(dc, argv[++i]);
+ font = argv[++i];
else if(!strcmp(argv[i], "-nb"))
normbgcolor = argv[++i];
else if(!strcmp(argv[i], "-nf"))
else
usage();
+ dc = initdraw();
+ initfont(dc, font);
readstdin();
setup();
run();