diff options
| author | Alan Mackenzie | 2014-12-15 12:07:18 +0000 |
|---|---|---|
| committer | Alan Mackenzie | 2014-12-15 12:07:18 +0000 |
| commit | 816c1dfc5dfc6d490c653b393ef6876b3f04b7fe (patch) | |
| tree | 8a1e18c725f6cb07a97f85769322e6089af4580c | |
| parent | 436b88bf9960c97f4588d8e3d9c0c353e7898792 (diff) | |
| parent | e2815bfe2a1e4d5a21d6b6378ebc2108d4d104ab (diff) | |
| download | emacs-816c1dfc5dfc6d490c653b393ef6876b3f04b7fe.tar.gz emacs-816c1dfc5dfc6d490c653b393ef6876b3f04b7fe.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
| -rw-r--r-- | lisp/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/net/shr.el | 16 | ||||
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/fileio.c | 13 |
4 files changed, 30 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8a0d5181bae..364511c2c15 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2014-12-15 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * net/shr.el (shr-fold-text): Don't bug out on zero-length text. | ||
| 4 | |||
| 1 | 2014-12-14 Alan Mackenzie <acm@muc.de> | 5 | 2014-12-14 Alan Mackenzie <acm@muc.de> |
| 2 | 6 | ||
| 3 | * lisp/cus-start.el (all): Add fast-but-imprecise-scrolling. | 7 | * lisp/cus-start.el (all): Add fast-but-imprecise-scrolling. |
diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 6e06a76bf2a..387bb024a52 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el | |||
| @@ -414,13 +414,15 @@ size, and full-buffer size." | |||
| 414 | (cdr (assq 'background-color shr-stylesheet)))))))) | 414 | (cdr (assq 'background-color shr-stylesheet)))))))) |
| 415 | 415 | ||
| 416 | (defun shr-fold-text (text) | 416 | (defun shr-fold-text (text) |
| 417 | (with-temp-buffer | 417 | (if (zerop (length text)) |
| 418 | (let ((shr-indentation 0) | 418 | text |
| 419 | (shr-state nil) | 419 | (with-temp-buffer |
| 420 | (shr-start nil) | 420 | (let ((shr-indentation 0) |
| 421 | (shr-internal-width (window-width))) | 421 | (shr-state nil) |
| 422 | (shr-insert text) | 422 | (shr-start nil) |
| 423 | (buffer-string)))) | 423 | (shr-internal-width (window-width))) |
| 424 | (shr-insert text) | ||
| 425 | (buffer-string))))) | ||
| 424 | 426 | ||
| 425 | (define-inline shr-char-breakable-p (char) | 427 | (define-inline shr-char-breakable-p (char) |
| 426 | "Return non-nil if a line can be broken before and after CHAR." | 428 | "Return non-nil if a line can be broken before and after CHAR." |
diff --git a/src/ChangeLog b/src/ChangeLog index 46bf2801849..5ce56f4df04 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2014-12-15 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Correct same_at_end when restoring window points | ||
| 4 | * fileio.c (Finsert_file_contents): Compute same_at_end character | ||
| 5 | position using the old buffer size, not the new one, since | ||
| 6 | restore_window_points wants the old size. | ||
| 7 | Fixes: debbugs:19161 | ||
| 8 | |||
| 1 | 2014-12-14 Alan Mackenzie <acm@muc.de> | 9 | 2014-12-14 Alan Mackenzie <acm@muc.de> |
| 2 | 10 | ||
| 3 | New feature optionally to accelerate auto-repeated scrolling. | 11 | New feature optionally to accelerate auto-repeated scrolling. |
diff --git a/src/fileio.c b/src/fileio.c index 83b4954b745..39514ee18e6 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -3522,6 +3522,9 @@ by calling `format-decode', which see. */) | |||
| 3522 | bytes and BEG and END count bytes. */ | 3522 | bytes and BEG and END count bytes. */ |
| 3523 | ptrdiff_t same_at_start = BEGV_BYTE; | 3523 | ptrdiff_t same_at_start = BEGV_BYTE; |
| 3524 | ptrdiff_t same_at_end = ZV_BYTE; | 3524 | ptrdiff_t same_at_end = ZV_BYTE; |
| 3525 | /* SAME_AT_END_CHARPOS counts characters, because | ||
| 3526 | restore_window_points needs the old character count. */ | ||
| 3527 | ptrdiff_t same_at_end_charpos = ZV; | ||
| 3525 | 3528 | ||
| 3526 | if (current_buffer->base_buffer && ! NILP (visit)) | 3529 | if (current_buffer->base_buffer && ! NILP (visit)) |
| 3527 | error ("Cannot do file visiting in an indirect buffer"); | 3530 | error ("Cannot do file visiting in an indirect buffer"); |
| @@ -3943,6 +3946,7 @@ by calling `format-decode', which see. */) | |||
| 3943 | + (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE)); | 3946 | + (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE)); |
| 3944 | if (overlap > 0) | 3947 | if (overlap > 0) |
| 3945 | same_at_end += overlap; | 3948 | same_at_end += overlap; |
| 3949 | same_at_end_charpos = BYTE_TO_CHAR (same_at_end); | ||
| 3946 | 3950 | ||
| 3947 | /* Arrange to read only the nonmatching middle part of the file. */ | 3951 | /* Arrange to read only the nonmatching middle part of the file. */ |
| 3948 | beg_offset += same_at_start - BEGV_BYTE; | 3952 | beg_offset += same_at_start - BEGV_BYTE; |
| @@ -3950,7 +3954,7 @@ by calling `format-decode', which see. */) | |||
| 3950 | 3954 | ||
| 3951 | invalidate_buffer_caches (current_buffer, | 3955 | invalidate_buffer_caches (current_buffer, |
| 3952 | BYTE_TO_CHAR (same_at_start), | 3956 | BYTE_TO_CHAR (same_at_start), |
| 3953 | BYTE_TO_CHAR (same_at_end)); | 3957 | same_at_end_charpos); |
| 3954 | del_range_byte (same_at_start, same_at_end, 0); | 3958 | del_range_byte (same_at_start, same_at_end, 0); |
| 3955 | /* Insert from the file at the proper position. */ | 3959 | /* Insert from the file at the proper position. */ |
| 3956 | temp = BYTE_TO_CHAR (same_at_start); | 3960 | temp = BYTE_TO_CHAR (same_at_start); |
| @@ -4099,6 +4103,7 @@ by calling `format-decode', which see. */) | |||
| 4099 | overlap = same_at_start - BEGV_BYTE - (same_at_end + inserted - ZV_BYTE); | 4103 | overlap = same_at_start - BEGV_BYTE - (same_at_end + inserted - ZV_BYTE); |
| 4100 | if (overlap > 0) | 4104 | if (overlap > 0) |
| 4101 | same_at_end += overlap; | 4105 | same_at_end += overlap; |
| 4106 | same_at_end_charpos = BYTE_TO_CHAR (same_at_end); | ||
| 4102 | 4107 | ||
| 4103 | /* If display currently starts at beginning of line, | 4108 | /* If display currently starts at beginning of line, |
| 4104 | keep it that way. */ | 4109 | keep it that way. */ |
| @@ -4114,7 +4119,7 @@ by calling `format-decode', which see. */) | |||
| 4114 | { | 4119 | { |
| 4115 | invalidate_buffer_caches (current_buffer, | 4120 | invalidate_buffer_caches (current_buffer, |
| 4116 | BYTE_TO_CHAR (same_at_start), | 4121 | BYTE_TO_CHAR (same_at_start), |
| 4117 | BYTE_TO_CHAR (same_at_end)); | 4122 | same_at_end_charpos); |
| 4118 | del_range_byte (same_at_start, same_at_end, 0); | 4123 | del_range_byte (same_at_start, same_at_end, 0); |
| 4119 | temp = GPT; | 4124 | temp = GPT; |
| 4120 | eassert (same_at_start == GPT_BYTE); | 4125 | eassert (same_at_start == GPT_BYTE); |
| @@ -4122,7 +4127,7 @@ by calling `format-decode', which see. */) | |||
| 4122 | } | 4127 | } |
| 4123 | else | 4128 | else |
| 4124 | { | 4129 | { |
| 4125 | temp = BYTE_TO_CHAR (same_at_start); | 4130 | temp = same_at_end_charpos; |
| 4126 | } | 4131 | } |
| 4127 | /* Insert from the file at the proper position. */ | 4132 | /* Insert from the file at the proper position. */ |
| 4128 | SET_PT_BOTH (temp, same_at_start); | 4133 | SET_PT_BOTH (temp, same_at_start); |
| @@ -4405,7 +4410,7 @@ by calling `format-decode', which see. */) | |||
| 4405 | if (inserted > 0) | 4410 | if (inserted > 0) |
| 4406 | restore_window_points (window_markers, inserted, | 4411 | restore_window_points (window_markers, inserted, |
| 4407 | BYTE_TO_CHAR (same_at_start), | 4412 | BYTE_TO_CHAR (same_at_start), |
| 4408 | BYTE_TO_CHAR (same_at_end)); | 4413 | same_at_end_charpos); |
| 4409 | 4414 | ||
| 4410 | if (!NILP (visit)) | 4415 | if (!NILP (visit)) |
| 4411 | { | 4416 | { |