| 357 |
else if (events[i].data.fd == STDIN_FILENO) |
else if (events[i].data.fd == STDIN_FILENO) |
| 358 |
{ |
{ |
| 359 |
ch = igetch(0); |
ch = igetch(0); |
| 360 |
if (ch == Ctrl('C')) |
if (ch == Ctrl('C') || ch == KEY_ESC) |
| 361 |
{ |
{ |
| 362 |
goto cleanup; |
goto cleanup; |
| 363 |
} |
} |
| 698 |
switch (ch) |
switch (ch) |
| 699 |
{ |
{ |
| 700 |
case KEY_NULL: // broken pipe |
case KEY_NULL: // broken pipe |
| 701 |
|
case KEY_ESC: |
| 702 |
case Ctrl('C'): // user cancel |
case Ctrl('C'): // user cancel |
| 703 |
goto cleanup; |
goto cleanup; |
| 704 |
case KEY_TIMEOUT: |
case KEY_TIMEOUT: |
| 736 |
menu_control(&bbsnet_menu, KEY_DOWN); |
menu_control(&bbsnet_menu, KEY_DOWN); |
| 737 |
bbsnet_selchange(); |
bbsnet_selchange(); |
| 738 |
break; |
break; |
| 739 |
|
case KEY_HOME: |
| 740 |
case KEY_PGUP: |
case KEY_PGUP: |
| 741 |
menu_control(&bbsnet_menu, KEY_PGUP); |
menu_control(&bbsnet_menu, KEY_PGUP); |
| 742 |
bbsnet_selchange(); |
bbsnet_selchange(); |
| 743 |
break; |
break; |
| 744 |
|
case KEY_END: |
| 745 |
|
case KEY_PGDN: |
| 746 |
|
menu_control(&bbsnet_menu, KEY_PGDN); |
| 747 |
|
bbsnet_selchange(); |
| 748 |
|
break; |
| 749 |
default: |
default: |
| 750 |
menu_control(&bbsnet_menu, ch); |
menu_control(&bbsnet_menu, ch); |
| 751 |
bbsnet_selchange(); |
bbsnet_selchange(); |