#include <string.h>
#include <strings.h>
#include <time.h>
+
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
char buf[sizeof text], *s;
int i, tokc = 0;
- size_t len;
+ size_t len, textsize;
struct item *item, *lprefix, *lsubstr, *prefixend, *substrend;
strcpy(buf, text);
len = tokc ? strlen(tokv[0]) : 0;
matches = lprefix = lsubstr = matchend = prefixend = substrend = NULL;
+ textsize = strlen(text) + 1;
for (item = items; item && item->text; item++) {
for (i = 0; i < tokc; i++)
if (!fstrstr(item->text, tokv[i]))
if (i != tokc) /* not all tokens match */
continue;
/* exact matches go first, then prefixes, then substrings */
- if (!tokc || !fstrncmp(tokv[0], item->text, len + 1))
+ if (!tokc || !fstrncmp(text, item->text, textsize))
appenditem(item, &matches, &matchend);
else if (!fstrncmp(tokv[0], item->text, len))
appenditem(item, &lprefix, &prefixend);
insert(NULL, nextrune(-1) - cursor);
break;
case XK_y: /* paste selection */
+ case XK_Y:
XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY,
utf8, utf8, win, CurrentTime);
return;
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 */
+ } 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;