* 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.
This commit is contained in:
Paul Eggert 2012-07-04 10:58:55 -07:00
parent 0566bc9540
commit 4e71fd8903
2 changed files with 13 additions and 6 deletions

View 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>.

View 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)