diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2008-03-12 10:15:07 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2008-03-12 10:15:07 +0800 |
commit | a2689684f91d030909976a2cc411b0bad54e8d9f (patch) | |
tree | d72327a87d95c713e6f24cf8d9b154e060141f74 /mbbsd/stuff.c | |
parent | fc02f02dde9445c8d6d1eb938bf9c63a2be698a5 (diff) | |
download | pttbbs-a2689684f91d030909976a2cc411b0bad54e8d9f.tar pttbbs-a2689684f91d030909976a2cc411b0bad54e8d9f.tar.gz pttbbs-a2689684f91d030909976a2cc411b0bad54e8d9f.tar.bz2 pttbbs-a2689684f91d030909976a2cc411b0bad54e8d9f.tar.lz pttbbs-a2689684f91d030909976a2cc411b0bad54e8d9f.tar.xz pttbbs-a2689684f91d030909976a2cc411b0bad54e8d9f.tar.zst pttbbs-a2689684f91d030909976a2cc411b0bad54e8d9f.zip |
pmore/mail/modes: enable 'y' for multi-reply in mail reading, and fix non-update screen after 'X' in mail.
crypt: add comments
stuff: prepare to show PttPrints status
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3994 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/stuff.c')
-rw-r--r-- | mbbsd/stuff.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/mbbsd/stuff.c b/mbbsd/stuff.c index 9156fd3f..7f2ddd04 100644 --- a/mbbsd/stuff.c +++ b/mbbsd/stuff.c @@ -401,13 +401,15 @@ vmsgf(const char *fmt,...) * @param x * @param lines * @param mode - * @return 失敗傳回 0,否則為 1。 + * @return 失敗傳回 0,否則為 1。 + * 2 表示有 PttPrints 碼 */ int show_file(const char *filename, int y, int lines, int mode) { - FILE *fp; - char buf[1024]; + FILE *fp; + char buf[1024]; + int ret = 1; if (y >= 0) move(y, 0); @@ -416,13 +418,23 @@ show_file(const char *filename, int y, int lines, int mode) while (fgets(buf, sizeof(buf), fp) && lines--) { move(y++, 0); - outs(Ptt_prints(buf, sizeof(buf), mode)); + // because Ptt_prints escapes are not so often, + // let's try harder to detect it. + if (strstr(buf, ESC_STR "*") != NULL) + { + outs(Ptt_prints(buf, sizeof(buf), mode)); + ret = 2; + } else { + // ESC is very common... + strip_ansi(buf, buf, mode); + outs(buf); + } } fclose(fp); outs(ANSI_RESET); // prevent some broken Welcome file } else return 0; - return 1; + return ret; } void |