summaryrefslogtreecommitdiffstats
path: root/mbbsd/stuff.c
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-03-12 10:15:07 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-03-12 10:15:07 +0800
commita2689684f91d030909976a2cc411b0bad54e8d9f (patch)
treed72327a87d95c713e6f24cf8d9b154e060141f74 /mbbsd/stuff.c
parentfc02f02dde9445c8d6d1eb938bf9c63a2be698a5 (diff)
downloadpttbbs-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.c22
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