summaryrefslogtreecommitdiffstats
path: root/mbbsd/more.c
blob: 2cddc14c8f54e5937fef01a67905b2edfbd5dd2f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* $Id$ */
#include "bbs.h"

/* use new pager: piaip's more. */
int more(char *fpath, int promptend)
{
    int r = pmore(fpath, promptend);

    switch(r)
    {

    case RET_DOSYSOPEDIT:
        r = FULLUPDATE;

        if (!HasUserPerm(PERM_SYSOP) ||
        strcmp(fpath, "etc/ve.hlp") == 0)
        break;

#ifdef GLOBAL_SECURITY
        if (strcmp(currboard, GLOBAL_SECURITY) == 0)
        break;
#endif // GLOBAL_SECURITY

        log_filef("log/security", LOG_CREAT,
            "%u %24.24s %d %s admin edit file=%s\n", 
            (int)now, ctime4(&now), getpid(), cuser.userid, fpath);
        vedit(fpath, NA, NULL);
        break;

    case RET_COPY2TMP:
        r = FULLUPDATE;
        if (HasUserPerm(PERM_BASIC))
        {
            char buf[10];
            getdata(b_lines - 1, 0, "把這篇文章收入到暫存檔?[y/N] ",
                    buf, 4, LCECHO);
            if (buf[0] != 'y')
                break;
            setuserfile(buf, ask_tmpbuf(b_lines - 1));
            Copy(fpath, buf);
        }
        break;

    case RET_DOCHESSREPLAY:
        r = FULLUPDATE;
        if (HasUserPerm(PERM_BASIC))
        {
            ChessReplayGame(fpath);
        }
        break;

#if defined(USE_BBSLUA)
    case RET_DOBBSLUA:
        r = FULLUPDATE;
        if (HasUserPerm(PERM_BASIC))
        {
            bbslua(fpath);
        }
        break;
#endif
    }

    return r;
}