diff --git a/src/search.c b/src/search.c index 24d6004edf38a32151b41a5492f4450b1b1c1125..910b3daa4f306c8ed2461f96c6ab1acda8a151e3 100644 --- a/src/search.c +++ b/src/search.c @@ -292,10 +292,14 @@ int findnextstr( lastkbcheck = time(NULL); - if (input && func_from_key(&input) == do_cancel) { - statusbar(_("Cancelled")); - disable_nodelay(); - return -2; + /* Consume all waiting keystrokes until a Cancel. */ + while (input) { + if (func_from_key(&input) == do_cancel) { + statusbar(_("Cancelled")); + disable_nodelay(); + return -2; + } + input = parse_kbinput(NULL); } if (++feedback > 0)