break;
case KEY_ESC:
- case ':':
mainhelp();
break;
keypad(wedit, TRUE);
curs_set(1);
+ int mode = 0;
while (!stop)
{
idle();
repainteditbox(wedit, bp - buf, buf);
- switch (c = wgetch(wedit))
- {
+ c = wgetch(wedit);
+ if (mode) {
+ switch (c) {
+ case 'i':
+ c = KEY_UP;
+ break;
+ case 'j':
+ c = KEY_LEFT;
+ break;
+ case 'k':
+ c = KEY_DOWN;
+ break;
+ case 'l':
+ c = KEY_RIGHT;
+ break;
+ case '\n':
+ case KEY_ESC:
+ mode = 0;
+ /* fallthrough */
+ default:
+ c = ERR;
+ }
+ }
+ switch (c) {
case ERR:
break;
case KEY_ESC:
+ if (!mode) {
+ mode = 1;
+ break;
+ }
strcpy(buf, org); /* restore original */
stop = TRUE;
break;