summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-04-03 21:42:22 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-04-03 21:42:22 +0800
commita4f496f0c13fb087296e9091f005d29af22a90ec (patch)
tree8e4360213877899c62cc793b0962c6bbb93acfbf /mbbsd
parent09ad37923288982a63098a7aa346ea79748f7eca (diff)
downloadpttbbs-a4f496f0c13fb087296e9091f005d29af22a90ec.tar
pttbbs-a4f496f0c13fb087296e9091f005d29af22a90ec.tar.gz
pttbbs-a4f496f0c13fb087296e9091f005d29af22a90ec.tar.bz2
pttbbs-a4f496f0c13fb087296e9091f005d29af22a90ec.tar.lz
pttbbs-a4f496f0c13fb087296e9091f005d29af22a90ec.tar.xz
pttbbs-a4f496f0c13fb087296e9091f005d29af22a90ec.tar.zst
pttbbs-a4f496f0c13fb087296e9091f005d29af22a90ec.zip
- support anonymous commenting for angel system (use with caution - define ANGEL_ANONYMOUS_COMMENT to enable)
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4073 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/angel.c4
-rw-r--r--mbbsd/bbs.c28
-rw-r--r--mbbsd/edit.c3
3 files changed, 25 insertions, 10 deletions
diff --git a/mbbsd/angel.c b/mbbsd/angel.c
index 024091e9..0218ceab 100644
--- a/mbbsd/angel.c
+++ b/mbbsd/angel.c
@@ -38,10 +38,11 @@ angel_parse_nick_fp(FILE *fp, char *nick, int sznick)
}
void
-angel_load_my_nick(char *buf, int szbuf)
+angel_load_my_fullnick(char *buf, int szbuf)
{
char fn[PATHLEN];
FILE *fp = NULL;
+
*buf = 0;
setuserfile(fn, FN_ANGELMSG);
if ((fp = fopen(fn, "rt")))
@@ -49,6 +50,7 @@ angel_load_my_nick(char *buf, int szbuf)
angel_parse_nick_fp(fp, buf, szbuf);
fclose(fp);
}
+ strlcat(buf, "小天使", szbuf);
}
// cache my angel's nickname
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index b34fc496..ad1ee541 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -2660,6 +2660,10 @@ recommend(int ent, fileheader_t * fhdr, const char *direct)
{
struct tm *ptime = localtime4(&now);
char buf[PATHLEN], msg[STRLEN];
+ const char *myid = cuser.userid;
+#if defined(PLAY_ANGEL) && defined(BN_ANGELPRAY)
+ char mynick[IDLEN+1];
+#endif // PLAY_ANGEL
#ifndef OLDRECOMMEND
static const char *ctype[3] = {
"推", "噓", "→"
@@ -2894,16 +2898,26 @@ recommend(int ent, fileheader_t * fhdr, const char *direct)
logIP = 1;
}
+#if defined(PLAY_ANGEL) && defined(BN_ANGELPRAY) && defined(ANGEL_ANONYMOUS_COMMENT)
+ if (HasUserPerm(PERM_ANGEL) && currboard && strcmp(currboard, BN_ANGELPRAY) == 0 &&
+ getans("要使用小天使暱名推文嗎? [Y/n]: ") != 'n')
+ {
+ // angel push
+ mynick[0] = 0;
+ angel_load_my_fullnick(mynick, sizeof(mynick));
+ myid = mynick;
+ }
+#endif
+
#ifdef OLDRECOMMEND
maxlength -= 2; /* '推' */
- maxlength -= strlen(cuser.userid);
- sprintf(buf, "%s %s:", "→" , cuser.userid);
+ maxlength -= strlen(myid);
+ sprintf(buf, "%s %s:", "→" , myid);
#else // !OLDRECOMMEND
- maxlength -= strlen(cuser.userid);
+ maxlength -= strlen(myid);
sprintf(buf, "%s%s%s %s:",
- ctype_attr[type], ctype[type], ANSI_RESET,
- cuser.userid);
+ ctype_attr[type], ctype[type], ANSI_RESET, myid);
#endif // !OLDRECOMMEND
move(b_lines, 0);
@@ -2966,12 +2980,12 @@ recommend(int ent, fileheader_t * fhdr, const char *direct)
ANSI_COLOR(1;31) "→ " ANSI_COLOR(33) "%s"
ANSI_RESET ANSI_COLOR(33) ":%-*s" ANSI_RESET
"推%s\n",
- cuser.userid, maxlength, msg, tail);
+ myid, maxlength, msg, tail);
#else
snprintf(buf, sizeof(buf),
"%s%s " ANSI_COLOR(33) "%s" ANSI_RESET ANSI_COLOR(33)
":%-*s" ANSI_RESET "%s\n",
- ctype_attr2[type], ctype[type], cuser.userid,
+ ctype_attr2[type], ctype[type], myid,
maxlength, msg, tail);
#endif // OLDRECOMMEND
}
diff --git a/mbbsd/edit.c b/mbbsd/edit.c
index 4058aa05..2e3f3985 100644
--- a/mbbsd/edit.c
+++ b/mbbsd/edit.c
@@ -1475,8 +1475,7 @@ write_header(FILE * fp, char *mytitle) // FIXME unused
&& strcmp(currboard, BN_ANGELPRAY) == 0)
{
char mynick[IDLEN+1];
- angel_load_my_nick(mynick, sizeof(mynick));
- strlcat(mynick, "小天使", sizeof(mynick));
+ angel_load_my_fullnick(mynick, sizeof(mynick));
getdata_str(3, 0, "請輸入想用的名字(輸入[r]為真名): ",
real_name, sizeof(real_name), DOECHO, mynick);
} else