summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pttbbs/mbbsd/user.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/pttbbs/mbbsd/user.c b/pttbbs/mbbsd/user.c
index 34b909e7..7f917eb3 100644
--- a/pttbbs/mbbsd/user.c
+++ b/pttbbs/mbbsd/user.c
@@ -68,6 +68,7 @@ u_loginview(void)
{
int i, in;
unsigned int pbits = cuser.loginview;
+ int ical = -1, has_cal = 0;
do {
vs_hdr("設定進站畫面");
@@ -76,13 +77,24 @@ u_loginview(void)
// ignore those without file name
if (!*loginview_file[i][0])
continue;
+ if (strcasecmp(loginview_file[i][0], "@calendar") == 0) {
+ ical = i;
+ has_cal = pbits & (1 << ical);
+ if (!has_cal)
+ continue;
+ }
prints(" %c. %-20s %-15s \n", 'A' + i,
- loginview_file[i][1], ((pbits >> i) & 1 ? "ˇ" : "X"));
+ loginview_file[i][1], ((pbits >> i) & 1 ? "ˇ" : "X"));
}
+ // XXX calendar must be last item.
+ if (i == ical + 1 && !has_cal)
+ i--;
+
in = i; // max i
i = vmsgf("請按 [A-%c] 切換設定,按 [Return] 結束:", 'A'+in-1);
if (i == '\r')
break;
+
// process i
i = tolower(i) - 'a';
if (i >= in || i < 0 || !*loginview_file[i][0]) {