diff options
Diffstat (limited to 'src/list_generic.c')
-rw-r--r-- | src/list_generic.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/list_generic.c b/src/list_generic.c index 112b588..3d93438 100644 --- a/src/list_generic.c +++ b/src/list_generic.c @@ -81,7 +81,10 @@ static void ListProcess(char **ppbuf, int *plen) continue; if (!ldata->selected) - *plen = 0; + { + *plen = 0; + break; + } ch = **ppbuf; ++*ppbuf; @@ -114,7 +117,8 @@ static void ListProcess(char **ppbuf, int *plen) ldata->selected = old->next; break; - case 007: + case 033: /* escape */ + case 007: /* ^G */ ListAbort(); *plen = 0; return; @@ -141,6 +145,8 @@ static void ListAbort(void) { struct ListData *ldata = flayer->l_data; glist_remove_rows(ldata); + if (ldata->list_fn->gl_free) + ldata->list_fn->gl_free(ldata); LAY_CALL_UP(LRefreshAll(flayer, 0)); ExitOverlayPage(); } |