input: fix a leak
[libpicofe.git] / menu.c
diff --git a/menu.c b/menu.c
index da9ddf2..96b1ea2 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -983,7 +983,7 @@ static int dirent_seek_char(struct dirent **namelist, int len, int sel, char c)
 \r
        for (i = sel + 1; ; i++) {\r
                if (i >= len)\r
-                       i = 1;\r
+                       i = 0;\r
                if (i == sel)\r
                        break;\r
 \r
@@ -1108,14 +1108,14 @@ rescan:
                                namelist[sel]->d_name);\r
                        goto rescan;\r
                }\r
-               if (inp & PBTN_UP  )  { sel--;   if (sel < 0)   sel = n-1; }\r
-               if (inp & PBTN_DOWN)  { sel++;   if (sel > n-1) sel = 0; }\r
-               if (inp & PBTN_LEFT)  { sel-=10; if (sel < 0)   sel = 0; }\r
-               if (inp & PBTN_L)     { sel-=24; if (sel < 0)   sel = 0; }\r
-               if (inp & PBTN_RIGHT) { sel+=10; if (sel > n-1) sel = n-1; }\r
-               if (inp & PBTN_R)     { sel+=24; if (sel > n-1) sel = n-1; }\r
-\r
-               if ((inp & PBTN_MOK) || (inp & (PBTN_MENU|PBTN_MA2)) == (PBTN_MENU|PBTN_MA2))\r
+               if      (inp & PBTN_UP  )  { sel--;   if (sel < 0)   sel = n-1; }\r
+               else if (inp & PBTN_DOWN)  { sel++;   if (sel > n-1) sel = 0; }\r
+               else if (inp & PBTN_LEFT)  { sel-=10; if (sel < 0)   sel = 0; }\r
+               else if (inp & PBTN_RIGHT) { sel+=10; if (sel > n-1) sel = n-1; }\r
+               else if (inp & PBTN_L)     { sel-=24; if (sel < 0)   sel = 0; }\r
+               else if (inp & PBTN_R)     { sel+=24; if (sel > n-1) sel = n-1; }\r
+\r
+               else if ((inp & PBTN_MOK) || (inp & (PBTN_MENU|PBTN_MA2)) == (PBTN_MENU|PBTN_MA2))\r
                {\r
                        if (namelist[sel]->d_type == DT_REG)\r
                        {\r