/* See LICENSE file for copyright and license details. */
#include <ctype.h>
#include <locale.h>
-#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct item {
char *text;
struct item *left, *right;
- bool out;
+ int out;
};
static char text[BUFSIZ] = "";
insert(NULL, 0 - cursor);
break;
case XK_w: /* delete word */
- while (cursor > 0 && text[nextrune(-1)] == ' ')
+ while (cursor > 0 && strchr(worddelimiters,
+ text[nextrune(-1)]))
insert(NULL, nextrune(-1) - cursor);
- while (cursor > 0 && text[nextrune(-1)] != ' ')
+ while (cursor > 0 && !strchr(worddelimiters,
+ text[nextrune(-1)]))
insert(NULL, nextrune(-1) - cursor);
break;
case XK_y: /* paste selection */
exit(0);
}
if (sel)
- sel->out = true;
+ sel->out = 1;
break;
case XK_Right:
if (text[cursor] != '\0') {
*p = '\0';
if (!(items[i].text = strdup(buf)))
die("cannot strdup %u bytes:", strlen(buf) + 1);
- items[i].out = false;
+ items[i].out = 0;
if (strlen(items[i].text) > max)
max = strlen(maxstr = items[i].text);
}
XGetInputFocus(dpy, &w, &di);
if (mon != -1 && mon < n)
i = mon;
- if (!i && w != root && w != PointerRoot && w != None) {
+ else if (w != root && w != PointerRoot && w != None) {
/* find top-level window containing current input focus */
do {
if (XQueryTree(dpy, (pw = w), &dw, &w, &dws, &du) && dws)
int
main(int argc, char *argv[])
{
- bool fast = false;
- int i;
+ int i, fast = 0;
for (i = 1; i < argc; i++)
/* these options take no arguments */
puts("dmenu-"VERSION);
exit(0);
} else if (!strcmp(argv[i], "-b")) /* appears at the bottom of the screen */
- topbar = false;
+ topbar = 0;
else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */
- fast = true;
+ fast = 1;
else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */
fstrncmp = strncasecmp;
fstrstr = cistrstr;