diff options
-rw-r--r-- | pttbbs/mbbsd/angel.c | 18 | ||||
-rw-r--r-- | pttbbs/mbbsd/cal.c | 1 | ||||
-rw-r--r-- | pttbbs/mbbsd/talk.c | 4 |
3 files changed, 17 insertions, 6 deletions
diff --git a/pttbbs/mbbsd/angel.c b/pttbbs/mbbsd/angel.c index bd3e08b0..533b884d 100644 --- a/pttbbs/mbbsd/angel.c +++ b/pttbbs/mbbsd/angel.c @@ -96,14 +96,24 @@ angel_load_my_fullnick(char *buf, int szbuf) { char fn[PATHLEN]; FILE *fp = NULL; + static char mynick[IDLEN + 1] = ""; + static time4_t touched = 0; + time4_t modtime = 0; *buf = 0; setuserfile(fn, FN_ANGELMSG); - if ((fp = fopen(fn, "rt"))) - { - angel_parse_nick_fp(fp, buf, szbuf); - fclose(fp); + modtime = dasht(fn); + if (modtime != touched) { + touched = modtime; + *mynick = 0; + // reload file + if ((fp = fopen(fn, "rt"))) + { + angel_parse_nick_fp(fp, mynick, sizeof(mynick)); + fclose(fp); + } } + strlcpy(buf, mynick, szbuf); strlcat(buf, "小天使", szbuf); } diff --git a/pttbbs/mbbsd/cal.c b/pttbbs/mbbsd/cal.c index 0cf6472b..1b108a30 100644 --- a/pttbbs/mbbsd/cal.c +++ b/pttbbs/mbbsd/cal.c @@ -427,6 +427,7 @@ give_money_ui(const char *userid) vgets(yn, sizeof(yn), VGET_LOWERCASE); switch(yn[0]) { case 'y': + // TODO replace with angel_load_my_fullnick. myid = "小天使"; break; case 'n': diff --git a/pttbbs/mbbsd/talk.c b/pttbbs/mbbsd/talk.c index d4c74f55..8a105097 100644 --- a/pttbbs/mbbsd/talk.c +++ b/pttbbs/mbbsd/talk.c @@ -940,8 +940,8 @@ my_write(pid_t pid, const char *prompt, const char *id, int flag, userinfo_t * p uin->msgs[write_pos].pid = currpid; #ifdef PLAY_ANGEL if (flag == WATERBALL_ANSWER || flag == WATERBALL_CONFIRM_ANSWER) - strlcpy(uin->msgs[write_pos].userid, "小天使", - sizeof(uin->msgs[write_pos].userid)); + angel_load_my_fullnick(uin->msgs[write_pos].userid, + sizeof(uin->msgs[write_pos].userid)); else #endif strlcpy(uin->msgs[write_pos].userid, cuser.userid, |