aboutsummaryrefslogtreecommitdiff
path: root/src/irc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/irc.c')
-rw-r--r--src/irc.c57
1 files changed, 38 insertions, 19 deletions
diff --git a/src/irc.c b/src/irc.c
index a67cf56..f8338b9 100644
--- a/src/irc.c
+++ b/src/irc.c
@@ -698,6 +698,7 @@ static void start_keystroke(void) {
char i, s;
i = cgetc();
+
if(i >= '1' && i <= '7') {
s = i - '1';
if(s != scr_current) {
@@ -706,25 +707,43 @@ static void start_keystroke(void) {
scr_display(s);
}
}
- } else if(i == CH_CURS_UP || i == '-') {
- scrollback();
- } else if(i == CH_ESC) {
- scr_prev = SCR_PRIV;
- scr_destroy(scr_current);
- } else if(i == CH_CURS_LEFT || i == '+') {
- scr_prev = scr_current;
- hunt_screen(-1);
- } else if(i == CH_CURS_RIGHT || i == '*') {
- scr_prev = scr_current;
- hunt_screen(1);
- } else if(i == CH_TAB) {
- i = scr_current;
- scr_display(scr_prev);
- scr_prev = i;
- } else if(i == 'a' || i == 'A') {
- switch_to_active();
- } else if(i == 's' || i == 'S') {
- edbox_hide();
+ return;
+ }
+
+ switch(i) {
+ case CH_CURS_UP:
+ case '-':
+ scrollback();
+ return;
+ case CH_ESC:
+ scr_prev = SCR_PRIV;
+ scr_destroy(scr_current);
+ return;
+ case CH_CURS_LEFT:
+ case '+':
+ scr_prev = scr_current;
+ hunt_screen(-1);
+ return;
+ case CH_CURS_RIGHT:
+ case '*':
+ scr_prev = scr_current;
+ hunt_screen(1);
+ return;
+ case CH_TAB:
+ i = scr_current;
+ scr_display(scr_prev);
+ scr_prev = i;
+ return;
+ case 'a':
+ case 'A':
+ switch_to_active();
+ return;
+ case 's':
+ case 'S':
+ edbox_hide();
+ /* fall thru */
+ default:
+ break;
}
}