diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-10-29 09:38:13 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-10-29 09:38:13 +0800 |
commit | 29d22d3038e932f1bd623a211846d5af58cbbd73 (patch) | |
tree | 6eeb93ca3fd8886dfbe36ebb9ac1d861c433c88f | |
parent | 05ea972fbe7a9ba1f3fbe54a590ac4ea89c1d67f (diff) | |
download | pttbbs-29d22d3038e932f1bd623a211846d5af58cbbd73.tar pttbbs-29d22d3038e932f1bd623a211846d5af58cbbd73.tar.gz pttbbs-29d22d3038e932f1bd623a211846d5af58cbbd73.tar.bz2 pttbbs-29d22d3038e932f1bd623a211846d5af58cbbd73.tar.lz pttbbs-29d22d3038e932f1bd623a211846d5af58cbbd73.tar.xz pttbbs-29d22d3038e932f1bd623a211846d5af58cbbd73.tar.zst pttbbs-29d22d3038e932f1bd623a211846d5af58cbbd73.zip |
* introduce vkey_is_typeahead API
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5008 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/include/proto.h | 3 | ||||
-rw-r--r-- | pttbbs/mbbsd/io.c | 10 | ||||
-rw-r--r-- | pttbbs/mbbsd/pfterm.c | 8 | ||||
-rw-r--r-- | pttbbs/mbbsd/screen.c | 2 |
4 files changed, 14 insertions, 9 deletions
diff --git a/pttbbs/include/proto.h b/pttbbs/include/proto.h index 3cf1849d..2a691660 100644 --- a/pttbbs/include/proto.h +++ b/pttbbs/include/proto.h @@ -294,7 +294,8 @@ void vkey_purge(); // identical to drop_input int vkey_is_full(); // identical to input_isfull int vkey_detach(void); // works like to add_io(0, 0) int vkey_attach(int fd); // works like add_io(fd, ...) -int vkey_is_ready(); // works like (num_in_buf() > 0) +int vkey_is_ready(); // works like (num_in_buf() > 0) +int vkey_is_typeahead(void); // quick check if input buffer has data arrived (maybe not ready yet) /* kaede */ diff --git a/pttbbs/mbbsd/io.c b/pttbbs/mbbsd/io.c index b2ae0975..8b0df55f 100644 --- a/pttbbs/mbbsd/io.c +++ b/pttbbs/mbbsd/io.c @@ -27,8 +27,7 @@ static unsigned char real_inbuf [IBUFSIZE + CVTGAP*2] = " "; #define outbuf (real_outbuf+CVTGAP) static int obufsize = 0; -static int ibufsize = 0; -static int icurrchar = 0; +static int ibufsize = 0, icurrchar = 0; #ifdef DBG_OUTRPT // output counter @@ -198,7 +197,6 @@ ochar(int c) /* pager processor */ /* ----------------------------------------------------- */ -static int i_newfd; // forward declaration int process_pager_keys(int ch) { @@ -402,6 +400,12 @@ vkey_is_ready(void) } inline int +vkey_is_typeahead() +{ + return num_in_buf() > 0; +} + +inline int vkey_is_full(void) { return ibufsize >= IBUFSIZE; diff --git a/pttbbs/mbbsd/pfterm.c b/pttbbs/mbbsd/pfterm.c index 2516ca68..d7367481 100644 --- a/pttbbs/mbbsd/pfterm.c +++ b/pttbbs/mbbsd/pfterm.c @@ -412,7 +412,7 @@ void grayout (int y, int end, int level); //// flat-term internal processor -int fterm_inbuf (void); // raw input adapter +int fterm_typeahead (void); // raw input adapter void fterm_rawc (int c); // raw output adapter void fterm_rawnewline(void); // raw output adapter void fterm_rawflush (void); // raw output adapter @@ -789,7 +789,7 @@ void refresh(void) { // prevent passive update - if(fterm_inbuf() && ft.typeahead) + if(ft.typeahead && fterm_typeahead()) return; doupdate(); } @@ -2370,12 +2370,12 @@ region_scroll_up(int top, int bottom) ////////////////////////////////////////////////////////////////////////// int -fterm_inbuf(void) +fterm_typeahead(void) { #ifdef _PFTERM_TEST_MAIN return 0; #else - return num_in_buf(); + return vkey_is_typeahead(); #endif } diff --git a/pttbbs/mbbsd/screen.c b/pttbbs/mbbsd/screen.c index 3ad79bb8..5da0faec 100644 --- a/pttbbs/mbbsd/screen.c +++ b/pttbbs/mbbsd/screen.c @@ -296,7 +296,7 @@ typeahead(int fd) void refresh(void) { - if (num_in_buf() && _typeahead) + if (_typeahead && vkey_is_typeahead()) return; doupdate(); } |