diff options
author | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-26 23:28:24 +0800 |
---|---|---|
committer | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-26 23:28:24 +0800 |
commit | 4b502e05397babe1c8050adb99c2f3e1ebcce641 (patch) | |
tree | 728b6c056cdbb67dc8579b5d789a967c1ad9858e /mbbsd/stuff.c | |
parent | c144625766bb0db3b3f0bc5718fbe55d356e449f (diff) | |
parent | a08baf738de7959e912f5b12314da85eaea5a3c9 (diff) | |
download | pttbbs-4b502e05397babe1c8050adb99c2f3e1ebcce641.tar pttbbs-4b502e05397babe1c8050adb99c2f3e1ebcce641.tar.gz pttbbs-4b502e05397babe1c8050adb99c2f3e1ebcce641.tar.bz2 pttbbs-4b502e05397babe1c8050adb99c2f3e1ebcce641.tar.lz pttbbs-4b502e05397babe1c8050adb99c2f3e1ebcce641.tar.xz pttbbs-4b502e05397babe1c8050adb99c2f3e1ebcce641.tar.zst pttbbs-4b502e05397babe1c8050adb99c2f3e1ebcce641.zip |
todo Ptt.read
simplify thread()
i_read()
git-svn-id: http://opensvn.csie.org/pttbbs/branches/Ptt.read@1862 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/stuff.c')
-rw-r--r-- | mbbsd/stuff.c | 79 |
1 files changed, 36 insertions, 43 deletions
diff --git a/mbbsd/stuff.c b/mbbsd/stuff.c index e088b116..7f5e495a 100644 --- a/mbbsd/stuff.c +++ b/mbbsd/stuff.c @@ -401,64 +401,57 @@ capture_screen() } } -void -pressanykey() +int +vmsg_lines(const int lines, const char msg[]) { int ch; - outmsg("\033[37;45;1m " - "● 請按 \033[33m(Space/Return)\033[37m 繼續 ●" - " \033[33m(^T)\033[37m 存暫存檔 \033[m"); - do { - ch = igetkey(); + move(lines, 0); + clrtoeol(); + + if (msg) + outs((char *)msg); + else + outs("\033[45;1m \033[37m" + "\033[200m\033[1431m\033[506m□ 請按 \033[33m(Space/Return)\033[37m 繼續 □\033[201m (^T) 收到暫存檔 \033[m"); - if (ch == Ctrl('T')) { + do { + if( (ch = igetch()) == Ctrl('T') ) capture_screen(); - break; - } - } while ((ch != ' ') && (ch != KEY_LEFT) && (ch != '\r') && (ch != '\n')); - move(b_lines, 0); + } while( ch == 0 ); + + move(lines, 0); clrtoeol(); - refresh(); + return ch; } int -vmsg(const char *fmt,...) +getans(const char *fmt,...) { - va_list ap; - char msg[80] = {0}; - int ch; - + char msg[128] = {0}; + va_list ap; va_start(ap, fmt); vsnprintf(msg, sizeof(msg), fmt, ap); va_end(ap); + return vmsg_lines(b_lines, msg); +} - move(b_lines, 0); - clrtoeol(); - - if (*msg) - prints("\033[1;36;44m ◆ %-55.54s \033[33;46m \033[200m\033[1431m\033[506m[請按任意鍵繼續]\033[201m \033[m", msg); - else - outs("\033[46;1m \033[37m" - "\033[200m\033[1431m\033[506m□ 請按 \033[33m(Space/Return)\033[37m 繼續 □\033[201m" - " \033[m"); - - do { - ch = igetkey(); - - if (ch == Ctrl('T')) { - capture_screen(); - break; - } - } while ((ch != ' ') && (ch != KEY_LEFT) && (ch != '\r') && (ch != '\n')); - - - move(b_lines, 0); - clrtoeol(); - refresh(); - return ch; +int +vmsg(const char *fmt,...) +{ + char msg[128] = "\033[1;36;44m ◆ ", i; + va_list ap; + va_start(ap, fmt); + i = vsnprintf(msg+14, 100, fmt, ap); + va_end(ap); + for(i=i+14; i<69; i++) + *(msg+i) = ' '; + strcat(msg+69, + "\033[33;46m \033[200m\033[1431m\033[506m[請按任意鍵繼續]\033[201m \033[m"); + return vmsg_lines(b_lines, msg); } + void bell() { @@ -548,7 +541,7 @@ cursor_key(int row, int column) int ch; cursor_show(row, column); - ch = egetch(); + ch = igetch(); move(row, column); outs(STR_UNCUR); return ch; |