]> git.eshelyaron.com Git - emacs.git/commitdiff
* window.c (set_window_hscroll): Revert the 100000 hscroll limit.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 4 Jul 2012 17:58:55 +0000 (10:58 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 4 Jul 2012 17:58:55 +0000 (10:58 -0700)
This should be fixed in a better way; see Eli Zaretskii in
<http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
(HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.

src/ChangeLog
src/window.c

index 6493d9eab05abfcec71c06b31fdf439b1f225b21..d55b24747178c4849029df239e8ac2008b1a6427 100644 (file)
@@ -1,5 +1,10 @@
 2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
+       This should be fixed in a better way; see Eli Zaretskii in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
+       (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
+
        * fileio.c (time_error_value): Rename from special_mtime.
        The old name's problems were noted by Eli Zaretskii in
        <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
index a436965564012efcf734d82fcc59643369510b9c..229035fe81ebdc3d791522dbde4faa5a4fd0e96d 100644 (file)
@@ -51,11 +51,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "nsterm.h"
 #endif
 
-/* Horizontal scrolling has problems with large scroll amounts.
-   It's too slow with long lines, and even with small lines the
-   display can be messed up.  Impose a reasonable maximum.  */
-enum { HSCROLL_MAX = 100000 };
-
 Lisp_Object Qwindowp, Qwindow_live_p;
 static Lisp_Object Qwindow_configuration_p, Qrecord_window_buffer;
 static Lisp_Object Qwindow_deletable_p, Qdelete_window, Qdisplay_buffer;
@@ -680,7 +675,14 @@ WINDOW must be a live window and defaults to the selected one.  */)
 static Lisp_Object
 set_window_hscroll (struct window *w, EMACS_INT hscroll)
 {
-  int new_hscroll = clip_to_bounds (0, hscroll, HSCROLL_MAX);
+  /* Horizontal scrolling has problems with large scroll amounts.
+     It's too slow with long lines, and even with small lines the
+     display can be messed up.  For now, though, impose only the limits
+     required by the internal representation: horizontal scrolling must
+     fit in fixnum (since it's visible to Elisp) and into ptrdiff_t
+     (since it's stored in a ptrdiff_t).  */
+  ptrdiff_t hscroll_max = min (MOST_POSITIVE_FIXNUM, PTRDIFF_MAX);
+  ptrdiff_t new_hscroll = clip_to_bounds (0, hscroll, hscroll_max);
 
   /* Prevent redisplay shortcuts when changing the hscroll.  */
   if (w->hscroll != new_hscroll)