From b640fe2c00e591888ecc1ca594e5e51336c3bf44 Mon Sep 17 00:00:00 2001 From: ptt Date: Fri, 23 Apr 2004 15:03:54 +0000 Subject: remove useless functions integrate similiar functions git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1827 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/io.c | 25 ------------------------- 1 file changed, 25 deletions(-) (limited to 'mbbsd/io.c') diff --git a/mbbsd/io.c b/mbbsd/io.c index 829386f8..c0f5d721 100644 --- a/mbbsd/io.c +++ b/mbbsd/io.c @@ -587,14 +587,6 @@ getdata_buf(int line, int col, char *prompt, char *buf, int len, int echo) return oldgetdata(line, col, prompt, buf, len, echo); } -char -getans(char *prompt) -{ - char ans[5]; - - getdata(b_lines, 0, prompt, ans, sizeof(ans), LCECHO); - return ans[0]; -} int getdata_str(int line, int col, char *prompt, char *buf, int len, int echo, char *defaultstr) @@ -611,23 +603,6 @@ getdata(int line, int col, char *prompt, char *buf, int len, int echo) return oldgetdata(line, col, prompt, buf, len, echo); } -int -rget(int x, char *prompt) -{ - register int ch; - - move(x, 0); - clrtobot(); - outs(prompt); - refresh(); - - ch = igetch(); - if (ch >= 'A' && ch <= 'Z') - ch = tolower(ch); - - return ch; -} - int igetkey() -- cgit v1.2.3 From 91f6682a7690a4dd6ae160804b2009a0a98f8122 Mon Sep 17 00:00:00 2001 From: ptt Date: Fri, 23 Apr 2004 16:26:20 +0000 Subject: integrate igetkey igetch egetch git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1828 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/io.c | 95 ++++++++++++++++++++++++-------------------------------------- 1 file changed, 37 insertions(+), 58 deletions(-) (limited to 'mbbsd/io.c') diff --git a/mbbsd/io.c b/mbbsd/io.c index c0f5d721..3429a3c3 100644 --- a/mbbsd/io.c +++ b/mbbsd/io.c @@ -174,6 +174,7 @@ dogetch() if (len == 0 || errno != EINTR) abort_bbs(0); /* raise(SIGHUP); */ + } #ifdef SKIP_TELNET_CONTROL_SIGNAL } while( inbuf[0] == -1 ); @@ -198,9 +199,34 @@ static int water_which_flag = 0; int igetch() { - register int ch; - while ((ch = dogetch())) { + register int ch, mode =0, last; + while ((ch = dogetch())) { + if (mode == 0 && ch == KEY_ESC) // here is state machine for 2 bytes key + mode = 1; + else if (mode == 1) { /* Escape sequence */ + if (ch == '[' || ch == 'O') + mode = 2; + else if (ch == '1' || ch == '4') + { mode = 3; last = ch; } + else + { + KEY_ESC_arg = ch; + return KEY_ESC; + } + } else if (mode == 2) { /* Cursor key */ + if (ch >= 'A' && ch <= 'D') + return KEY_UP + (ch - 'A'); + else if (ch >= '1' && ch <= '6') + { mode = 3; last = ch; } + } else if (mode == 3) { /* Ins Del Home End PgUp PgDn */ + if (ch == '~') + return KEY_HOME + (last - '1'); + } + else // here is switch for default keys switch (ch) { + case IAC: + case '\n': /* filters */ + continue; #ifdef DEBUG case Ctrl('Q'):{ struct rusage ru; @@ -234,8 +260,8 @@ igetch() free(screen0); redoscr(); continue; - } else - return (ch); + } + return ch; case KEY_TAB: if (WATERMODE(WATER_ORIG) || WATERMODE(WATER_NEW)) if (currutmp != NULL && watermode > 0) { @@ -244,8 +270,7 @@ igetch() t_display_new(); continue; } - return ch; - break; + return ch; case Ctrl('R'): if (currutmp == NULL) @@ -304,9 +329,7 @@ igetch() continue; } } - return ch; - case '\n': /* Ptt§â \n®³±¼ */ - continue; + return ch; case Ctrl('T'): if (WATERMODE(WATER_ORIG) || WATERMODE(WATER_NEW)) { if (watermode > 0) { @@ -318,7 +341,7 @@ igetch() continue; } } - return (ch); + return ch; case Ctrl('F'): if (WATERMODE(WATER_NEW)) { @@ -337,7 +360,7 @@ igetch() continue; } } - return ch; + return ch; case Ctrl('G'): if (WATERMODE(WATER_NEW)) { @@ -352,14 +375,10 @@ igetch() continue; } } - return ch; - case IAC: - // disallow user input telnet protocol leading char IAC chr(255) - // TODO parse telnet protocol - continue; + return ch; default: - return ch; + return ch; } } return 0; @@ -485,7 +504,7 @@ oldgetdata(int line, int col, char *prompt, char *buf, int len, int echo) edit_outs(buf); clen = currchar = strlen(buf); - while (move(y, x + currchar), (ch = igetkey()) != '\r') { + while (move(y, x + currchar), (ch = igetch()) != '\r') { switch (ch) { case KEY_DOWN: case Ctrl('N'): case KEY_UP: case Ctrl('P'): @@ -604,43 +623,3 @@ getdata(int line, int col, char *prompt, char *buf, int len, int echo) } -int -igetkey() -{ - int mode; - int ch, last; - - mode = last = 0; - while (1) { - if( !(ch = igetch()) ) - continue; - if (mode == 0) { - if (ch == KEY_ESC) - mode = 1; - else - return ch; /* Normal Key */ - } else if (mode == 1) { /* Escape sequence */ - if (ch == '[' || ch == 'O') - mode = 2; - else if (ch == '1' || ch == '4') - mode = 3; - else { - KEY_ESC_arg = ch; - return KEY_ESC; - } - } else if (mode == 2) { /* Cursor key */ - if (ch >= 'A' && ch <= 'D') - return KEY_UP + (ch - 'A'); - else if (ch >= '1' && ch <= '6') - mode = 3; - else - return ch; - } else if (mode == 3) { /* Ins Del Home End PgUp PgDn */ - if (ch == '~') - return KEY_HOME + (last - '1'); - else - return ch; - } - last = ch; - } -} -- cgit v1.2.3 From 747a79d7325bfc5064275448a8580ab49588db5a Mon Sep 17 00:00:00 2001 From: ptt Date: Fri, 23 Apr 2004 16:34:21 +0000 Subject: a small bug fixed git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1829 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/io.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'mbbsd/io.c') diff --git a/mbbsd/io.c b/mbbsd/io.c index 3429a3c3..21a8045b 100644 --- a/mbbsd/io.c +++ b/mbbsd/io.c @@ -213,13 +213,11 @@ igetch() KEY_ESC_arg = ch; return KEY_ESC; } - } else if (mode == 2) { /* Cursor key */ - if (ch >= 'A' && ch <= 'D') - return KEY_UP + (ch - 'A'); - else if (ch >= '1' && ch <= '6') + } else if (mode == 2 && ch >= 'A' && ch <= 'D') /* Cursor key */ + return KEY_UP + (ch - 'A'); + else if (mode == 2 && ch >= '1' && ch <= '6') { mode = 3; last = ch; } - } else if (mode == 3) { /* Ins Del Home End PgUp PgDn */ - if (ch == '~') + else if (mode == 3 && ch == '~') { /* Ins Del Home End PgUp PgDn */ return KEY_HOME + (last - '1'); } else // here is switch for default keys -- cgit v1.2.3 From b282f3c6dca2a15ef4da7ee6c1f970e5ae926b67 Mon Sep 17 00:00:00 2001 From: ptt Date: Fri, 23 Apr 2004 20:14:20 +0000 Subject: reoragnize functions mprints, pprints -> mouts remove useless refresh, pressanykey(), sleep,... git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1833 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mbbsd/io.c') diff --git a/mbbsd/io.c b/mbbsd/io.c index 21a8045b..029fae38 100644 --- a/mbbsd/io.c +++ b/mbbsd/io.c @@ -126,7 +126,7 @@ dogetch() if (flushf) (*flushf) (); - refresh(); + oflush(); if (i_newfd) { -- cgit v1.2.3 From da56c5ed1f424f78040d2bd7f11833978eeb46b8 Mon Sep 17 00:00:00 2001 From: ptt Date: Fri, 23 Apr 2004 20:25:32 +0000 Subject: last one buggy in io.c git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1836 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mbbsd/io.c') diff --git a/mbbsd/io.c b/mbbsd/io.c index 029fae38..21a8045b 100644 --- a/mbbsd/io.c +++ b/mbbsd/io.c @@ -126,7 +126,7 @@ dogetch() if (flushf) (*flushf) (); - oflush(); + refresh(); if (i_newfd) { -- cgit v1.2.3 From 8cb2775bb364a740a107fe74cc39d723fd63babc Mon Sep 17 00:00:00 2001 From: in2 Date: Sun, 25 Apr 2004 09:58:02 +0000 Subject: warning free git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1850 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mbbsd/io.c') diff --git a/mbbsd/io.c b/mbbsd/io.c index 21a8045b..78adddda 100644 --- a/mbbsd/io.c +++ b/mbbsd/io.c @@ -199,7 +199,7 @@ static int water_which_flag = 0; int igetch() { - register int ch, mode =0, last; + register int ch, mode = 0, last = 0; while ((ch = dogetch())) { if (mode == 0 && ch == KEY_ESC) // here is state machine for 2 bytes key mode = 1; -- cgit v1.2.3