summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2012-07-04 10:58:55 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2012-07-04 10:58:55 -0700
commit4e71fd8903e237cd2b45797bb1315f2699e1569e (patch)
treeed69ae887c429193f4ec1b334a866140ca32877b /src
parent0566bc954097aae81a0efda950c4567be3139c23 (diff)
downloademacs-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/ChangeLog5
-rw-r--r--src/window.c14
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)