From 8f9dc9a65dc9b09b96c81b86156a067d1e1ea6ba Mon Sep 17 00:00:00 2001
From: piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>
Date: Thu, 3 Jan 2008 13:09:17 +0000
Subject: - pmore: move ChessReplay (z) to outside. - bbs: use 'now' to prevent
 time() system call.

git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3779 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
---
 include/modes.h |  9 +++++----
 mbbsd/bbs.c     |  3 +--
 mbbsd/more.c    | 31 ++++++++++++++++++++-----------
 mbbsd/pmore.c   | 12 +++++++++---
 4 files changed, 35 insertions(+), 20 deletions(-)

diff --git a/include/modes.h b/include/modes.h
index 6984468c..c56e6548 100644
--- a/include/modes.h
+++ b/include/modes.h
@@ -18,10 +18,11 @@
 #define HEADERS_RELOAD  13      
 
 // values returned by pager
-#define RET_DOREPLY	(999)
-#define RET_DORECOMMEND	(998)
-#define RET_DOQUERYINFO	(997)
-#define RET_DOSYSOPEDIT (996)
+#define RET_DOREPLY	    (999)
+#define RET_DORECOMMEND	    (998)
+#define RET_DOQUERYINFO	    (997)
+#define RET_DOSYSOPEDIT	    (996)
+#define RET_DOCHESSREPLAY   (995)
 
 /* user �ާ@���A�P�Ҧ� */
 #define IDLE            0
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index f8b500dc..90cd07c6 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -1374,14 +1374,13 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct)
 
     if (strcmp(fhdr->owner, cuser.userid) != EQUSTR)
     {
-	time4_t t = time4(NULL);
 	if (!HasUserPerm(PERM_SYSOP))
 	    return DONOTHING;
 
 	// admin edit!
 	log_filef("log/security", LOG_CREAT,
 		"%d %24.24s %d %s admin edit (board) file=%s\n", 
-		t, ctime4(&t), getpid(), cuser.userid, fpath);
+		(int)now, ctime4(&now), getpid(), cuser.userid, fpath);
     }
 
 # ifdef GLOBAL_BBSMOVIE
diff --git a/mbbsd/more.c b/mbbsd/more.c
index 40333264..252e9d02 100644
--- a/mbbsd/more.c
+++ b/mbbsd/more.c
@@ -6,22 +6,31 @@ int more(char *fpath, int promptend)
 {
     int r = pmore(fpath, promptend);
 
-    if (r == RET_DOSYSOPEDIT)
+    switch(r)
     {
-	if (HasUserPerm(PERM_SYSOP) &&
+
+	case RET_DOSYSOPEDIT:
+	    r = FULLUPDATE;
+
+	    if (!HasUserPerm(PERM_SYSOP) ||
+		strcmp(fpath, "etc/ve.hlp") == 0)
+		break;
+
 #ifdef GLOBAL_SECURITY
-	    strcmp(currboard, GLOBAL_SECURITY) != 0 &&
+	    if (strcmp(currboard, GLOBAL_SECURITY) == 0)
+		break;
 #endif // GLOBAL_SECURITY
-	    strcmp(fpath, "etc/ve.hlp") != 0 &&
-	    1)
-	{
-	    time4_t t = time4(NULL);
+
 	    log_filef("log/security", LOG_CREAT,
-		    "%d %24.24s %d %s admin edit file=%s\n", 
-		    t, ctime4(&t), getpid(), cuser.userid, fpath);
+		    "%u %24.24s %d %s admin edit file=%s\n", 
+		    (int)now, ctime4(&now), getpid(), cuser.userid, fpath);
 	    vedit(fpath, NA, NULL);
-	}
-	r = FULLUPDATE;
+	    break;
+
+	case RET_DOCHESSREPLAY:
+	    r = FULLUPDATE;
+	    ChessReplayGame(fpath);
+	    break;
     }
 
     return r;
diff --git a/mbbsd/pmore.c b/mbbsd/pmore.c
index 7cab8cd0..d82c721f 100644
--- a/mbbsd/pmore.c
+++ b/mbbsd/pmore.c
@@ -1675,7 +1675,11 @@ static const char    * const pmore_help[] = {
 
     // the line below is already aligned, because of the backslash.
    "(o)/(\\)               �ﶵ�]�w/��m��ܼҦ�",
+
+#if defined (PMORE_USE_ASCII_MOVIE) || defined(RET_DOCHESSREPLAY)
     "(p)/(z)               ����ʵe/�ѧ�����",
+#endif // defined(PMORE_USE_ASCII_MOVIE) || defined(RET_DOCHESSREPLAY)
+
     "(Ctrl-T)              �s�J�Ȧs��",
     "(q/��) (h/H/?/F1)     ����/�������e��",
 #ifdef DEBUG
@@ -2097,6 +2101,11 @@ pmore(char *fpath, int promptend)
 		flExit = 1,	retval = RET_DOSYSOPEDIT;
 		break;
 #endif
+#ifdef RET_DOCHESSREPLAY
+	    case 'z':
+		flExit = 1,	retval = RET_DOCHESSREPLAY;
+		break;
+#endif 
 
 	    /* ------------------ EXITING KEYS ------------------ */
 	    case 'A':
@@ -2422,9 +2431,6 @@ pmore(char *fpath, int promptend)
 		break;
 #endif
 
-	    case 'z':
-		ChessReplayGame(fpath);
-		break;
 	}
 	/* DO NOT DO ANYTHING HERE. NOT SAFE RIGHT NOW. */
     }
-- 
cgit v1.2.3