lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lynx-dev ENABLE_SCROLLBACK, other GridText.c changes - patch


From: Klaus Weide
Subject: lynx-dev ENABLE_SCROLLBACK, other GridText.c changes - patch
Date: Tue, 29 Dec 1998 08:55:06 -0600 (CST)

Is enable_scrollback really working to enable scrollback for
anybody?  Brief testing shows it doesn't work for me on linux
console.  Anyway...

Patch below also includes changes I sent a while ago, which somehow
didn't make it into 2.8.2dev.12.  I think Tom just missed them 
(otherwise please let me know if you think something is wrong with
them).  See
   Linkname: Re: lynx-dev lynx 2.8.2 dev8 bug
        URL: http://www.flora.org/lynx-dev/html/month1298/msg00168.html
   Last Mod: Sat, 05 Dec 1998 10:18:40 GMT

Also removes FREE(special) which looks wrong (but normally not compiled
in).


* The logic added to display_page for avoiding unnecessary screen
  redraw with partial display (see 1998-12-03) is now disabled if
  enable_scrollback is set.  Otherwise displayed pages could appear
  as empty (or with only the current link drawn).
* Modify conditions under which screen style cache is reset (only
  relevant for color style in combination with partial display).

Patch against 2.8.2dev.12.

--- lynx2-8-2.orig/src/GridText.c       Wed Dec 16 15:56:42 1998
+++ lynx2-8-2/src/GridText.c    Tue Dec 29 08:14:25 1998
@@ -1180,8 +1180,13 @@
     }
 
 #ifdef USE_COLOR_STYLE
+#ifdef DISP_PARTIAL
+    if (display_partial ||
+       line_number != text->first_lineno_last_disp_partial ||
+       line_number > text->last_lineno_last_disp_partial)
+#endif /* DISP_PARTIAL */
     LynxResetScreenCache();
-#endif
+#endif /* USE_COLOR_STYLE */
 
     text->top_of_screen = line_number;
     display_title(text);  /* will move cursor to top of screen */
@@ -1610,6 +1615,7 @@
 #ifdef DISP_PARTIAL
     if (display_partial && display_flag &&
        last_disp_partial >= text->top_of_screen &&
+       !enable_scrollback &&
        !recent_sizechange) {   /*  really remember them if ok - kw  */
        text->first_lineno_last_disp_partial = text->top_of_screen;
        text->last_lineno_last_disp_partial = last_disp_partial;
@@ -2368,7 +2374,6 @@
            CTRACE(tfp, "add(%c) %d/%d\n", ch,
                   HTisDocumentSource(), HTOutputFormat != WWW_SOURCE);
        }
-       FREE(special);
     } /* trace only */
 #endif /* DEBUG_APPCH */
 
@@ -3107,7 +3112,7 @@
             */
            i = a->extent;
        }
-       j = (last->size - i);
+       k = j = (last->size - i);
        while (j < last->size) {
            if (!IsSpecialAttrChar(last->data[j]) &&
                !isspace((unsigned char)last->data[j]) &&
@@ -3146,11 +3151,12 @@
        while (i == 0 &&
               (a->extent > CurBlankExtent ||
                (a->extent == CurBlankExtent &&
+                k == 0 && 
                 prev != text->last_line &&
                 (prev->size == 0 ||
                  prev->data[prev->size - 1] == ']')))) {
            start = prev;
-           j = prev->size - a->extent + CurBlankExtent;
+           k = j = prev->size - a->extent + CurBlankExtent;
            if (j < 0) {
                /*
                 *  The anchor starts on a preceding line,
@@ -3175,7 +3181,8 @@
            }
            if (i == 0) {
                if (a->extent > (CurBlankExtent + prev->size) ||
-                   (a->extent == CurBlankExtent + prev->size &&
+                   (a->extent == CurBlankExtent + (int)prev->size &&
+                    k == 0 &&
                     prev->prev != text->last_line &&
                     (prev->prev->size == 0 ||
                      prev->prev->data[prev->prev->size - 1] == ']'))) {
@@ -4634,6 +4641,17 @@
         */
        if (text)
            text->page_has_target = NO;
+
+#ifdef DISP_PARTIAL
+       /* Reset these for the previous and current text. - kw */
+       text->first_lineno_last_disp_partial =
+           text->last_lineno_last_disp_partial = -1;
+       if (HTMainText) {
+           HTMainText->first_lineno_last_disp_partial =
+               HTMainText->last_lineno_last_disp_partial = -1;
+       }
+#endif /* DISP_PARTIAL */
+
        /*
         *  Make this text the most current in the loaded texts list. - FM
         */

reply via email to

[Prev in Thread] Current Thread [Next in Thread]