From: Paul Eggert Date: Wed, 4 Jul 2012 17:58:55 +0000 (-0700) Subject: * window.c (set_window_hscroll): Revert the 100000 hscroll limit. X-Git-Tag: emacs-24.2.90~1199^2~215 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4e71fd8903e237cd2b45797bb1315f2699e1569e;p=emacs.git * window.c (set_window_hscroll): Revert the 100000 hscroll limit. This should be fixed in a better way; see Eli Zaretskii in . (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll. --- diff --git a/src/ChangeLog b/src/ChangeLog index 6493d9eab05..d55b2474717 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2012-07-04 Paul Eggert + * window.c (set_window_hscroll): Revert the 100000 hscroll limit. + This should be fixed in a better way; see Eli Zaretskii in + . + (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 . diff --git a/src/window.c b/src/window.c index a4369655640..229035fe81e 100644 --- a/src/window.c +++ b/src/window.c @@ -51,11 +51,6 @@ along with GNU Emacs. If not, see . */ #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)