--- qiv-2.1-pre12/event.c 2007-04-25 06:48:43 +0400 +++ qiv-2.1-pre12-locale/event.c 2007-07-11 14:23:23 +0400 @@ -367,6 +367,23 @@ } /* else record keystroke if not null */ else if(ev->key.string && *(ev->key.string) != '\0') { + if (!extcommand) { + /* leave jumping mode on invalid input and process + * input key as if it entered in non jumping mode */ + if((jidx == 0 && + (*(ev->key.string) != 'f' && + *(ev->key.string) != 'F' && + *(ev->key.string) != 'b' && + *(ev->key.string) != 'B' && + *(ev->key.string) != 't' && + *(ev->key.string) != 'T')) || + (jidx > 0 && + (*(ev->key.string) < '0' || *(ev->key.string) > '9'))) { + jumping = 0; + qiv_handle_event(ev, data); + return; + } + } jcmd[jidx++]=*(ev->key.string); jcmd[jidx] = '\0'; if (extcommand)