| 17 |
#include "bbs.h" |
#include "bbs.h" |
| 18 |
#include "bbs_cmd.h" |
#include "bbs_cmd.h" |
| 19 |
#include "user_priv.h" |
#include "user_priv.h" |
|
#include "reg_ex.h" |
|
| 20 |
#include "bbs_cmd.h" |
#include "bbs_cmd.h" |
| 21 |
#include "menu.h" |
#include "menu.h" |
| 22 |
#include "log.h" |
#include "log.h" |
| 680 |
switch (key) |
switch (key) |
| 681 |
{ |
{ |
| 682 |
case CR: |
case CR: |
|
igetch(1); // Cleanup remaining '\n' in the buffer |
|
| 683 |
case KEY_RIGHT: |
case KEY_RIGHT: |
| 684 |
if (p_menu->items[p_menu->item_cur_pos]->submenu) |
if (p_menu->items[p_menu->item_cur_pos]->submenu) |
| 685 |
{ |
{ |
| 695 |
{ |
{ |
| 696 |
return menu_control(p_menu_set, KEY_LEFT); |
return menu_control(p_menu_set, KEY_LEFT); |
| 697 |
} |
} |
|
break; |
|
| 698 |
} |
} |
| 699 |
else |
else |
| 700 |
{ |
{ |
| 701 |
return (exec_cmd(p_menu->items[p_menu->item_cur_pos]->action, |
return (exec_cmd(p_menu->items[p_menu->item_cur_pos]->action, |
| 702 |
p_menu->items[p_menu->item_cur_pos]->name)); |
p_menu->items[p_menu->item_cur_pos]->name)); |
| 703 |
} |
} |
| 704 |
|
break; |
| 705 |
case KEY_LEFT: |
case KEY_LEFT: |
| 706 |
if (p_menu_set->menu_select_depth > 0) |
if (p_menu_set->menu_select_depth > 0) |
| 707 |
{ |
{ |
| 710 |
{ |
{ |
| 711 |
return menu_control(p_menu_set, KEY_LEFT); |
return menu_control(p_menu_set, KEY_LEFT); |
| 712 |
} |
} |
|
break; |
|
| 713 |
} |
} |
| 714 |
else |
else |
| 715 |
{ |
{ |
| 716 |
display_menu_cursor(p_menu, 0); |
display_menu_cursor(p_menu, 0); |
| 717 |
p_menu->item_cur_pos = p_menu->item_count - 1; |
p_menu->item_cur_pos = p_menu->item_count - 1; |
| 718 |
while (p_menu->item_cur_pos >= 0 && !p_menu->items[p_menu->item_cur_pos]->display) |
while (p_menu->item_cur_pos >= 0 && (!p_menu->items[p_menu->item_cur_pos]->display || |
| 719 |
|
p_menu->items[p_menu->item_cur_pos]->priv != 0 || |
| 720 |
|
p_menu->items[p_menu->item_cur_pos]->level != 0)) |
| 721 |
{ |
{ |
| 722 |
p_menu->item_cur_pos--; |
p_menu->item_cur_pos--; |
| 723 |
} |
} |
| 724 |
display_menu_cursor(p_menu, 1); |
display_menu_cursor(p_menu, 1); |
|
break; |
|
| 725 |
} |
} |
| 726 |
|
break; |
| 727 |
case KEY_UP: |
case KEY_UP: |
| 728 |
display_menu_cursor(p_menu, 0); |
display_menu_cursor(p_menu, 0); |
| 729 |
do |
do |
| 763 |
} |
} |
| 764 |
} |
} |
| 765 |
} |
} |
| 766 |
|
break; |
| 767 |
} |
} |
| 768 |
|
|
| 769 |
return 0; |
return 0; |