diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2012-07-04 10:58:55 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2012-07-04 10:58:55 -0700 |
commit | 4e71fd8903e237cd2b45797bb1315f2699e1569e (patch) | |
tree | ed69ae887c429193f4ec1b334a866140ca32877b /src | |
parent | 0566bc954097aae81a0efda950c4567be3139c23 (diff) | |
download | emacs-4e71fd8903e237cd2b45797bb1315f2699e1569e.tar.gz |
* 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.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/window.c | 14 |
2 files changed, 13 insertions, 6 deletions
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 <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>. 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 <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) |