fix extra warning
[dmenu.git] / dmenu.c
diff --git a/dmenu.c b/dmenu.c
index da62705..aa9254f 100644 (file)
--- a/dmenu.c
+++ b/dmenu.c
@@ -219,7 +219,7 @@ insert(const char *str, ssize_t n) {
        if(n > 0)
                memcpy(&text[cursor], str, n);
        cursor += n;
-       match(n > 0);
+       match(n > 0 && text[cursor] == '\0');
 }
 
 void
@@ -260,6 +260,7 @@ keypress(XKeyEvent *ev) {
                        ksym = XK_Tab;
                        break;
                case XK_j:
+               case XK_m:
                        ksym = XK_Return;
                        break;
                case XK_k:  /* delete right */
@@ -267,10 +268,10 @@ keypress(XKeyEvent *ev) {
                        match(False);
                        break;
                case XK_n:
-                       ksym = XK_Down;
+                       ksym = XK_Next;
                        break;
                case XK_p:
-                       ksym = XK_Up;
+                       ksym = XK_Prior;
                        break;
                case XK_u:  /* delete left */
                        insert(NULL, 0 - cursor);
@@ -329,8 +330,7 @@ keypress(XKeyEvent *ev) {
                        cursor = nextrune(-1);
                        break;
                }
-               else if(lines > 0)
-                       return;
+               /* fallthrough */
        case XK_Up:
                if(sel && sel->left && (sel = sel->left)->right == curr) {
                        curr = prev;
@@ -358,8 +358,7 @@ keypress(XKeyEvent *ev) {
                        cursor = nextrune(+1);
                        break;
                }
-               else if(lines > 0)
-                       return;
+               /* fallthrough */
        case XK_Down:
                if(sel && sel->right && (sel = sel->right) == next) {
                        curr = next;