]> git.wh0rd.org Git - nano.git/commitdiff
fix misplaced code in previous edit_scroll() fix
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 1 Aug 2005 21:17:38 +0000 (21:17 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 1 Aug 2005 21:17:38 +0000 (21:17 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2970 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

src/winio.c

index 92a05f7a058811b4698bc7edc07a181897564ed5..b45d9dc45b2d8cb24585dd1357f251a6583f30bd 100644 (file)
@@ -3507,10 +3507,19 @@ void edit_scroll(scroll_dir direction, ssize_t nlines)
     }
 
     /* Limit nlines to a minimum of the number of lines we could scroll,
-     * and to a maximum of the number of lines in the edit window. */
+     * and to a maximum of the number of lines in the edit window, minus
+     * one.  Don't bother scrolling zero lines or the number of lines in
+     * the edit window; in both cases, get out, and in the latter case,
+     * call edit_refresh() beforehand. */
     nlines -= i;
-    if (nlines > editwinrows)
-       nlines = editwinrows;
+
+    if (nlines == 0)
+       return;
+
+    if (nlines >= editwinrows) {
+       edit_refresh();
+       return;
+    }
 
     /* Scroll the text of the edit window up or down nlines lines,
      * depending on the value of direction. */
@@ -3537,14 +3546,6 @@ void edit_scroll(scroll_dir direction, ssize_t nlines)
     if (nlines > editwinrows)
        nlines = editwinrows;
 
-    /* If we need to redraw the entire edit window, don't bother
-     * scrolling every line offscreen.  Just call edit_refresh() and get
-     * out. */
-    if (nlines == editwinrows) {
-       edit_refresh();
-       return;
-    }
-
     /* If we scrolled up, we're on the line before the scrolled
      * region. */
     foo = openfile->edittop;
@@ -3605,8 +3606,8 @@ void edit_redraw(const filestruct *old_current, size_t old_pww)
 
        openfile->edittop = old_edittop;
 
-       /* Scroll the edit window until edittop is in range of
-        * current. */
+       /* Scroll the edit window up or down until edittop is in range
+        * of current. */
        if (nlines < 0)
            edit_scroll(UP, -nlines);
        else