From c2ed49b9343e746d9b7cd5c4bd1a0a4e950dfa09 Mon Sep 17 00:00:00 2001
From: piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>
Date: Wed, 5 Dec 2007 13:53:26 +0000
Subject: - grayout: must process scroll lines - pmore:   everyone loves
 backslash, keep it.

git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3642 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
---
 mbbsd/pmore.c  |  6 +++---
 mbbsd/screen.c | 10 +++++++++-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/mbbsd/pmore.c b/mbbsd/pmore.c
index 06226914..45cd83c7 100644
--- a/mbbsd/pmore.c
+++ b/mbbsd/pmore.c
@@ -2301,15 +2301,14 @@ pmore(char *fpath, int promptend)
 		}
 		break;
 
+// uncomment me someday when everyone's faimiliar with new system.
 #define PMORE_NOTIFY_NEWPREF
-#ifdef PMORE_NOTIFY_NEWPREF
+#ifdef  PMORE_NOTIFY_NEWPREF
 		//let's be backward compatible!
 	    case 'l':
 	    case 'w':
 	    case 'W':
-
 	    case '|':
-	    case '\\':
 		{
 		    static char notifyChanged = 0;
 		    if (!notifyChanged)
@@ -2321,6 +2320,7 @@ pmore(char *fpath, int promptend)
 		// not break;
 #endif // PMORE_NOTIFY_NEWPREF
 
+	    case '\\':	// everyone loves backslash, let's keep it.
 	    case 'o':
 		pmore_Preference();
 		MFDISP_DIRTY();
diff --git a/mbbsd/screen.c b/mbbsd/screen.c
index 4115c45c..b4550869 100644
--- a/mbbsd/screen.c
+++ b/mbbsd/screen.c
@@ -568,9 +568,17 @@ grayout_lines(int y, int end, int level)
     if (y < 0) y = 0;
     if (end > b_lines) end = b_lines;
 
+    // loop lines
     for (; y < end; y ++)
     {
-	slp = &big_picture[y];
+	// modify by scroll
+	i = y + roll;
+	if (i < 0)
+	    i += scr_lns;
+	else if (i >= scr_lns)
+	    i %= scr_lns;
+
+	slp = &big_picture[i];
 
 	if (slp->len < 1)
 	    continue;
-- 
cgit v1.2.3