Commit 816c1dfc authored by Alan Mackenzie's avatar Alan Mackenzie
Browse files

Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

parents 436b88bf e2815bfe
2014-12-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
* net/shr.el (shr-fold-text): Don't bug out on zero-length text.
2014-12-14 Alan Mackenzie <acm@muc.de> 2014-12-14 Alan Mackenzie <acm@muc.de>
   
* lisp/cus-start.el (all): Add fast-but-imprecise-scrolling. * lisp/cus-start.el (all): Add fast-but-imprecise-scrolling.
......
...@@ -414,13 +414,15 @@ size, and full-buffer size." ...@@ -414,13 +414,15 @@ size, and full-buffer size."
(cdr (assq 'background-color shr-stylesheet)))))))) (cdr (assq 'background-color shr-stylesheet))))))))
(defun shr-fold-text (text) (defun shr-fold-text (text)
(with-temp-buffer (if (zerop (length text))
(let ((shr-indentation 0) text
(shr-state nil) (with-temp-buffer
(shr-start nil) (let ((shr-indentation 0)
(shr-internal-width (window-width))) (shr-state nil)
(shr-insert text) (shr-start nil)
(buffer-string)))) (shr-internal-width (window-width)))
(shr-insert text)
(buffer-string)))))
(define-inline shr-char-breakable-p (char) (define-inline shr-char-breakable-p (char)
"Return non-nil if a line can be broken before and after CHAR." "Return non-nil if a line can be broken before and after CHAR."
......
2014-12-15 Paul Eggert <eggert@cs.ucla.edu>
Correct same_at_end when restoring window points
* fileio.c (Finsert_file_contents): Compute same_at_end character
position using the old buffer size, not the new one, since
restore_window_points wants the old size.
Fixes: debbugs:19161
2014-12-14 Alan Mackenzie <acm@muc.de> 2014-12-14 Alan Mackenzie <acm@muc.de>
   
New feature optionally to accelerate auto-repeated scrolling. New feature optionally to accelerate auto-repeated scrolling.
......
...@@ -3522,6 +3522,9 @@ by calling `format-decode', which see. */) ...@@ -3522,6 +3522,9 @@ by calling `format-decode', which see. */)
bytes and BEG and END count bytes. */ bytes and BEG and END count bytes. */
ptrdiff_t same_at_start = BEGV_BYTE; ptrdiff_t same_at_start = BEGV_BYTE;
ptrdiff_t same_at_end = ZV_BYTE; ptrdiff_t same_at_end = ZV_BYTE;
/* SAME_AT_END_CHARPOS counts characters, because
restore_window_points needs the old character count. */
ptrdiff_t same_at_end_charpos = ZV;
if (current_buffer->base_buffer && ! NILP (visit)) if (current_buffer->base_buffer && ! NILP (visit))
error ("Cannot do file visiting in an indirect buffer"); error ("Cannot do file visiting in an indirect buffer");
...@@ -3943,6 +3946,7 @@ by calling `format-decode', which see. */) ...@@ -3943,6 +3946,7 @@ by calling `format-decode', which see. */)
+ (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE)); + (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE));
if (overlap > 0) if (overlap > 0)
same_at_end += overlap; same_at_end += overlap;
same_at_end_charpos = BYTE_TO_CHAR (same_at_end);
/* Arrange to read only the nonmatching middle part of the file. */ /* Arrange to read only the nonmatching middle part of the file. */
beg_offset += same_at_start - BEGV_BYTE; beg_offset += same_at_start - BEGV_BYTE;
...@@ -3950,7 +3954,7 @@ by calling `format-decode', which see. */) ...@@ -3950,7 +3954,7 @@ by calling `format-decode', which see. */)
invalidate_buffer_caches (current_buffer, invalidate_buffer_caches (current_buffer,
BYTE_TO_CHAR (same_at_start), BYTE_TO_CHAR (same_at_start),
BYTE_TO_CHAR (same_at_end)); same_at_end_charpos);
del_range_byte (same_at_start, same_at_end, 0); del_range_byte (same_at_start, same_at_end, 0);
/* Insert from the file at the proper position. */ /* Insert from the file at the proper position. */
temp = BYTE_TO_CHAR (same_at_start); temp = BYTE_TO_CHAR (same_at_start);
...@@ -4099,6 +4103,7 @@ by calling `format-decode', which see. */) ...@@ -4099,6 +4103,7 @@ by calling `format-decode', which see. */)
overlap = same_at_start - BEGV_BYTE - (same_at_end + inserted - ZV_BYTE); overlap = same_at_start - BEGV_BYTE - (same_at_end + inserted - ZV_BYTE);
if (overlap > 0) if (overlap > 0)
same_at_end += overlap; same_at_end += overlap;
same_at_end_charpos = BYTE_TO_CHAR (same_at_end);
/* If display currently starts at beginning of line, /* If display currently starts at beginning of line,
keep it that way. */ keep it that way. */
...@@ -4114,7 +4119,7 @@ by calling `format-decode', which see. */) ...@@ -4114,7 +4119,7 @@ by calling `format-decode', which see. */)
{ {
invalidate_buffer_caches (current_buffer, invalidate_buffer_caches (current_buffer,
BYTE_TO_CHAR (same_at_start), BYTE_TO_CHAR (same_at_start),
BYTE_TO_CHAR (same_at_end)); same_at_end_charpos);
del_range_byte (same_at_start, same_at_end, 0); del_range_byte (same_at_start, same_at_end, 0);
temp = GPT; temp = GPT;
eassert (same_at_start == GPT_BYTE); eassert (same_at_start == GPT_BYTE);
...@@ -4122,7 +4127,7 @@ by calling `format-decode', which see. */) ...@@ -4122,7 +4127,7 @@ by calling `format-decode', which see. */)
} }
else else
{ {
temp = BYTE_TO_CHAR (same_at_start); temp = same_at_end_charpos;
} }
/* Insert from the file at the proper position. */ /* Insert from the file at the proper position. */
SET_PT_BOTH (temp, same_at_start); SET_PT_BOTH (temp, same_at_start);
...@@ -4405,7 +4410,7 @@ by calling `format-decode', which see. */) ...@@ -4405,7 +4410,7 @@ by calling `format-decode', which see. */)
if (inserted > 0) if (inserted > 0)
restore_window_points (window_markers, inserted, restore_window_points (window_markers, inserted,
BYTE_TO_CHAR (same_at_start), BYTE_TO_CHAR (same_at_start),
BYTE_TO_CHAR (same_at_end)); same_at_end_charpos);
if (!NILP (visit)) if (!NILP (visit))
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment