aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2011-11-02 12:27:54 +0100
committerJoakim Verona2011-11-02 12:27:54 +0100
commit67be5954c049eaa6a5f2ff39e4ec178b339f33cd (patch)
tree8ec46fd96a0859235cc436e1dd409d3f3531c360
parent99a92fa3946e55ce4d891b1baa3ae26718508edf (diff)
parent1885e5b80a94e5653dd604fb0b7e579d6fe64c3e (diff)
downloademacs-67be5954c049eaa6a5f2ff39e4ec178b339f33cd.tar.gz
emacs-67be5954c049eaa6a5f2ff39e4ec178b339f33cd.zip
upstream
-rw-r--r--doc/misc/ChangeLog5
-rw-r--r--lisp/ChangeLog31
-rw-r--r--lisp/gnus/ChangeLog7
-rw-r--r--lisp/gnus/gnus-util.el11
-rw-r--r--lisp/gnus/nnir.el2
-rw-r--r--lisp/gnus/nnmairix.el2
-rw-r--r--lisp/help.el5
-rw-r--r--lisp/vc/vc-bzr.el4
-rw-r--r--lisp/vc/vc-dir.el4
-rw-r--r--lisp/window.el8
-rw-r--r--src/ChangeLog14
-rw-r--r--src/window.c15
-rw-r--r--src/xdisp.c50
13 files changed, 86 insertions, 72 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index ddad0b45106..029406e2d30 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -10,9 +10,8 @@
10 "Macros with ;". 10 "Macros with ;".
11 (Macros with ;): New page. 11 (Macros with ;): New page.
12 12
13 * progmodes/cc-mode.texi (Movement Commands): Document 13 * cc-mode.texi (Movement Commands): Document `c-defun-tactic'.
14 `c-defun-tactic'. Document the new handling of nested scopes for 14 Document the new handling of nested scopes for movement by defuns.
15 movement by defuns.
16 15
172011-10-23 Michael Albinus <michael.albinus@gmx.de> 162011-10-23 Michael Albinus <michael.albinus@gmx.de>
18 17
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 97ae0232d55..a009352e46e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,21 @@
12011-11-02 Martin Rudalics <rudalics@gmx.at>
2
3 * window.el (quit-window): Call unrecord-window-buffer after
4 showing another buffer in the window. (Bug#9937)
5 (bury-buffer): Call switch-to-prev-buffer with second argument
6 'bury.
7
82011-11-02 Juanma Barranquero <lekktu@gmail.com>
9
10 * vc/vc-bzr.el (vc-bzr-state, vc-bzr-after-dir-status):
11 Accept status with more than 9 shelves. (Bug#9935)
12 Reported by Colin D Bennett <colin@gibibit.com>.
13
142011-11-01 Martin Rudalics <rudalics@gmx.at>
15
16 * help.el (with-help-window): Don't reference
17 temp-buffer-show-specifiers in doc-string.
18
12011-10-31 Andreas Schwab <schwab@linux-m68k.org> 192011-10-31 Andreas Schwab <schwab@linux-m68k.org>
2 20
3 * subr.el (keymap--menu-item-with-binding): Ignore item if not a 21 * subr.el (keymap--menu-item-with-binding): Ignore item if not a
@@ -14,8 +32,8 @@
14 * net/newst-treeview.el: Remove "Time-stamp". 32 * net/newst-treeview.el: Remove "Time-stamp".
15 (newsticker--group-manage-orphan-feeds): Do not call 33 (newsticker--group-manage-orphan-feeds): Do not call
16 newsticker--treeview-tree-update. 34 newsticker--treeview-tree-update.
17 (newsticker-treeview-update, newsticker-treeview): Call 35 (newsticker-treeview-update, newsticker-treeview):
18 newsticker--treeview-tree-update if necessary. 36 Call newsticker--treeview-tree-update if necessary.
19 37
202011-10-30 Martin Rudalics <rudalics@gmx.at> 382011-10-30 Martin Rudalics <rudalics@gmx.at>
21 39
@@ -28,8 +46,7 @@
28 (split-window, balance-windows-1) 46 (split-window, balance-windows-1)
29 (shrink-window-if-larger-than-buffer): 47 (shrink-window-if-larger-than-buffer):
30 * calendar/calendar.el (calendar-generate-window): 48 * calendar/calendar.el (calendar-generate-window):
31 * help.el (resize-temp-buffer-window): Adjust callers 49 * help.el (resize-temp-buffer-window): Adjust callers accordingly.
32 accordingly.
33 50
342011-10-30 Stefan Monnier <monnier@iro.umontreal.ca> 512011-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
35 52
@@ -104,7 +121,7 @@
104 121
1052011-10-28 Alan Mackenzie <acm@muc.de> 1222011-10-28 Alan Mackenzie <acm@muc.de>
106 123
107 * progmodes/cc-defs.el (c-version). -> 5.32.2. 124 * progmodes/cc-defs.el (c-version): -> 5.32.2.
108 125
1092011-10-28 Alan Mackenzie <acm@muc.de> 1262011-10-28 Alan Mackenzie <acm@muc.de>
110 127
@@ -292,7 +309,7 @@
292 Fix bug #9560, sporadic wrong indentation; improve instrumentation 309 Fix bug #9560, sporadic wrong indentation; improve instrumentation
293 of c-parse-state. 310 of c-parse-state.
294 311
295 * cc-engine.el (c-append-lower-brace-pair-to-state-cache): 312 * progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache):
296 correct faulty logical expression. 313 correct faulty logical expression.
297 (c-parse-state-state, c-record-parse-state-state): 314 (c-parse-state-state, c-record-parse-state-state):
298 (c-replay-parse-state-state): New defvar/defuns. 315 (c-replay-parse-state-state): New defvar/defuns.
@@ -334,7 +351,7 @@
334 351
3352011-10-20 Glenn Morris <rgm@gnu.org> 3522011-10-20 Glenn Morris <rgm@gnu.org>
336 353
337 * vc/vc.el (vc-next-action): Handle removed directories. (Bug#9781) 354 * vc/vc.el (vc-next-action): Handle removed directories. (Bug#9781)
338 355
3392011-10-20 Christoph Scholtes <cschol2112@googlemail.com> 3562011-10-20 Christoph Scholtes <cschol2112@googlemail.com>
340 357
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index a208ccefd4c..860ccf45206 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,10 @@
12011-11-01 Teodor Zlatanov <tzz@lifelogs.com>
2
3 * gnus-util.el (gnus-bound-and-true-p): Remove.
4 (gnus-bound-and-true-dumber-p): Rename to `gnus-bound-and-true-p'.
5 * nnir.el: Use it.
6 * nnmairix.el: Use it.
7
12011-10-31 Teodor Zlatanov <tzz@lifelogs.com> 82011-10-31 Teodor Zlatanov <tzz@lifelogs.com>
2 9
3 * gnus-util.el (gnus-bound-and-true-dumber-p): Define new, slower, dumb 10 * gnus-util.el (gnus-bound-and-true-dumber-p): Define new, slower, dumb
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index 71ed50591ad..f811c9664af 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1986,15 +1986,8 @@ definitions to shadow the loaded ones for use in file byte-compilation."
1986 (gnus-macroexpand-all expanded environment))) 1986 (gnus-macroexpand-all expanded environment)))
1987 form)))) 1987 form))))
1988 1988
1989(eval-when-compile 1989;; simple check, can be a macro but this way, although slow, it's really clear
1990 ;; This is unnecessary in the compiled version as it is a macro. 1990(defun gnus-bound-and-true-p (sym)
1991 (if (fboundp 'bound-and-true-p)
1992 (defalias 'gnus-bound-and-true-p 'bound-and-true-p)
1993 (defmacro gnus-bound-and-true-p (var)
1994 "Return the value of symbol VAR if it is bound, else nil."
1995 `(and (boundp (quote ,var)) ,var))))
1996
1997(defun gnus-bound-and-true-dumber-p (sym)
1998 (and (boundp sym) (symbol-value sym))) 1991 (and (boundp sym) (symbol-value sym)))
1999 1992
2000(provide 'gnus-util) 1993(provide 'gnus-util)
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 7087f8dba96..88fd4fe1ff6 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -1739,7 +1739,7 @@ environment unless `not-global' is non-nil."
1739 (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir) 1739 (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir)
1740 (setq gnus-summary-line-format 1740 (setq gnus-summary-line-format
1741 (or nnir-summary-line-format gnus-summary-line-format)) 1741 (or nnir-summary-line-format gnus-summary-line-format))
1742 (when (gnus-bound-and-true-dumber-p 'gnus-registry-enabled) 1742 (when (gnus-bound-and-true-p 'gnus-registry-enabled)
1743 (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t) 1743 (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t)
1744 (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t) 1744 (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t)
1745 (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t) 1745 (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t)
diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el
index 0e58af73666..66ed90be823 100644
--- a/lisp/gnus/nnmairix.el
+++ b/lisp/gnus/nnmairix.el
@@ -1635,7 +1635,7 @@ search in raw mode."
1635 1635
1636(defun nnmairix-determine-original-group-from-registry (mid) 1636(defun nnmairix-determine-original-group-from-registry (mid)
1637 "Try to determinale original group for message-id MID from the registry." 1637 "Try to determinale original group for message-id MID from the registry."
1638 (when (gnus-bound-and-true-dumber-p 'gnus-registry-enabled) 1638 (when (gnus-bound-and-true-p 'gnus-registry-enabled)
1639 (unless (string-match "^<" mid) 1639 (unless (string-match "^<" mid)
1640 (set mid (concat "<" mid))) 1640 (set mid (concat "<" mid)))
1641 (unless (string-match ">$" mid) 1641 (unless (string-match ">$" mid)
diff --git a/lisp/help.el b/lisp/help.el
index bc3d863f357..506889c210e 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1125,10 +1125,7 @@ HELP-WINDOW is the window used for displaying the help buffer."
1125(defmacro with-help-window (buffer-name &rest body) 1125(defmacro with-help-window (buffer-name &rest body)
1126 "Display buffer with name BUFFER-NAME in a help window evaluating BODY. 1126 "Display buffer with name BUFFER-NAME in a help window evaluating BODY.
1127Select help window if the actual value of the user option 1127Select help window if the actual value of the user option
1128`help-window-select' says so. Return last value in BODY. 1128`help-window-select' says so. Return last value in BODY."
1129
1130You can specify where and how to show the buffer by binding the
1131variable `temp-buffer-show-specifiers' to an appropriate value."
1132 (declare (indent 1) (debug t)) 1129 (declare (indent 1) (debug t))
1133 `(progn 1130 `(progn
1134 ;; Make `help-window-point-marker' point nowhere. The only place 1131 ;; Make `help-window-point-marker' point nowhere. The only place
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el
index cc28db689e9..f6b6a56f31c 100644
--- a/lisp/vc/vc-bzr.el
+++ b/lisp/vc/vc-bzr.el
@@ -444,7 +444,7 @@ If any error occurred in running `bzr status', then return nil."
444 (let ((warnings (cdr result))) 444 (let ((warnings (cdr result)))
445 (when warnings 445 (when warnings
446 ;; bzr 2.3.0 returns info about shelves, which is not really a warning 446 ;; bzr 2.3.0 returns info about shelves, which is not really a warning
447 (when (string-match "[1-9]+ shel\\(f\\|ves\\) exists?\\..*?\n" warnings) 447 (when (string-match "[0-9]+ shel\\(f\\|ves\\) exists?\\..*?\n" warnings)
448 (setq warnings (replace-match "" nil nil warnings))) 448 (setq warnings (replace-match "" nil nil warnings)))
449 (unless (string= warnings "") 449 (unless (string= warnings "")
450 (message "Warnings in `bzr' output: %s" warnings)))) 450 (message "Warnings in `bzr' output: %s" warnings))))
@@ -891,7 +891,7 @@ stream. Standard error output is discarded."
891 (goto-char (point-min)) 891 (goto-char (point-min))
892 (while (not (eobp)) 892 (while (not (eobp))
893 ;; Bzr 2.3.0 added this if there are shelves. (Bug#8170) 893 ;; Bzr 2.3.0 added this if there are shelves. (Bug#8170)
894 (unless (looking-at "[1-9]+ shel\\(f\\|ves\\) exists?\\.") 894 (unless (looking-at "[0-9]+ shel\\(f\\|ves\\) exists?\\.")
895 (setq status-str 895 (setq status-str
896 (buffer-substring-no-properties (point) (+ (point) 3))) 896 (buffer-substring-no-properties (point) (+ (point) 3)))
897 (setq translated (cdr (assoc status-str translation))) 897 (setq translated (cdr (assoc status-str translation)))
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index ed16ee9f6f8..82eb8783a74 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -992,8 +992,8 @@ specific headers."
992 (let ((def-dir default-directory) 992 (let ((def-dir default-directory)
993 (backend vc-dir-backend)) 993 (backend vc-dir-backend))
994 (vc-set-mode-line-busy-indicator) 994 (vc-set-mode-line-busy-indicator)
995 ;; Call the `dir-status-file' backend function. 995 ;; Call the `dir-status-files' backend function.
996 ;; `dir-status-file' is supposed to be asynchronous. 996 ;; `dir-status-files' is supposed to be asynchronous.
997 ;; It should compute the results, and then call the function 997 ;; It should compute the results, and then call the function
998 ;; passed as an argument in order to update the vc-dir buffer 998 ;; passed as an argument in order to update the vc-dir buffer
999 ;; with the results. 999 ;; with the results.
diff --git a/lisp/window.el b/lisp/window.el
index d254248c2c7..d93658a2cef 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -2852,7 +2852,7 @@ displayed there."
2852 (t 2852 (t
2853 ;; Switch to another buffer in window. 2853 ;; Switch to another buffer in window.
2854 (set-window-dedicated-p nil nil) 2854 (set-window-dedicated-p nil nil)
2855 (switch-to-prev-buffer nil 'kill))) 2855 (switch-to-prev-buffer nil 'bury)))
2856 2856
2857 ;; Always return nil. 2857 ;; Always return nil.
2858 nil)) 2858 nil))
@@ -2985,7 +2985,6 @@ one. If non-nil, reset `quit-restore' parameter to nil."
2985 (setq resize (with-current-buffer buffer 2985 (setq resize (with-current-buffer buffer
2986 (and temp-buffer-resize-mode 2986 (and temp-buffer-resize-mode
2987 (/= (nth 3 quad) (window-total-size window))))) 2987 (/= (nth 3 quad) (window-total-size window)))))
2988 (unrecord-window-buffer window buffer)
2989 (set-window-dedicated-p window nil) 2988 (set-window-dedicated-p window nil)
2990 (when resize 2989 (when resize
2991 ;; Try to resize WINDOW to its old height but don't signal an 2990 ;; Try to resize WINDOW to its old height but don't signal an
@@ -2993,9 +2992,12 @@ one. If non-nil, reset `quit-restore' parameter to nil."
2993 (condition-case nil 2992 (condition-case nil
2994 (window-resize window (- (nth 3 quad) (window-total-size window))) 2993 (window-resize window (- (nth 3 quad) (window-total-size window)))
2995 (error nil))) 2994 (error nil)))
2996 ;; Restore WINDOW's previous buffer, window start and point. 2995 ;; Restore WINDOW's previous buffer, start and point position.
2997 (set-window-buffer-start-and-point 2996 (set-window-buffer-start-and-point
2998 window (nth 0 quad) (nth 1 quad) (nth 2 quad)) 2997 window (nth 0 quad) (nth 1 quad) (nth 2 quad))
2998 ;; Unrecord WINDOW's buffer here (Bug#9937) to make sure it's not
2999 ;; re-recorded by `set-window-buffer'.
3000 (unrecord-window-buffer window buffer)
2999 ;; Reset the quit-restore parameter. 3001 ;; Reset the quit-restore parameter.
3000 (set-window-parameter window 'quit-restore nil) 3002 (set-window-parameter window 'quit-restore nil)
3001 ;; Select old window. 3003 ;; Select old window.
diff --git a/src/ChangeLog b/src/ChangeLog
index 0bb16514b58..f1ba519d92a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,17 @@
12011-11-01 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
4 Don't stop backward scan on the continuation glyph, even though
5 its CHARPOS is positive.
6 (mouse_face_from_buffer_pos, note_mouse_highlight): Rename
7 cover_string to disp_string.
8
92011-11-01 Martin Rudalics <rudalics@gmx.at>
10
11 * window.c (temp_output_buffer_show): Don't use
12 Vtemp_buffer_show_specifiers.
13 (Vtemp_buffer_show_specifiers): Remove unused variable.
14
12011-10-30 Eli Zaretskii <eliz@gnu.org> 152011-10-30 Eli Zaretskii <eliz@gnu.org>
2 16
3 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented 17 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
diff --git a/src/window.c b/src/window.c
index e6840a0ebe7..056da1512da 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3187,10 +3187,7 @@ temp_output_buffer_show (register Lisp_Object buf)
3187 call1 (Vtemp_buffer_show_function, buf); 3187 call1 (Vtemp_buffer_show_function, buf);
3188 else 3188 else
3189 { 3189 {
3190 window = display_buffer (buf, Vtemp_buffer_show_specifiers, Qnil); 3190 window = display_buffer (buf, Qnil, Qnil);
3191 /* Reset Vtemp_buffer_show_specifiers immediately so it won't
3192 affect subsequent calls. */
3193 Vtemp_buffer_show_specifiers = Qnil;
3194 3191
3195 if (!EQ (XWINDOW (window)->frame, selected_frame)) 3192 if (!EQ (XWINDOW (window)->frame, selected_frame))
3196 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (window))); 3193 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (window)));
@@ -6465,16 +6462,6 @@ If this function is used, then it must do the entire job of showing
6465the buffer; `temp-buffer-show-hook' is not run unless this function runs it. */); 6462the buffer; `temp-buffer-show-hook' is not run unless this function runs it. */);
6466 Vtemp_buffer_show_function = Qnil; 6463 Vtemp_buffer_show_function = Qnil;
6467 6464
6468 DEFVAR_LISP ("temp-buffer-show-specifiers", Vtemp_buffer_show_specifiers,
6469 doc: /* Buffer display specifiers used by `with-output-to-temp-buffer'.
6470These specifiers are passed by `with-output-to-temp-buffer' as second
6471argument to `display-buffer'. Applications should only let-bind this
6472around a call to `with-output-to-temp-buffer'.
6473
6474For a description of buffer display specifiers see the variable
6475`display-buffer-alist'. */);
6476 Vtemp_buffer_show_specifiers = Qnil;
6477
6478 DEFVAR_LISP ("minibuffer-scroll-window", Vminibuf_scroll_window, 6465 DEFVAR_LISP ("minibuffer-scroll-window", Vminibuf_scroll_window,
6479 doc: /* Non-nil means it is the window that C-M-v in minibuffer should scroll. */); 6466 doc: /* Non-nil means it is the window that C-M-v in minibuffer should scroll. */);
6480 Vminibuf_scroll_window = Qnil; 6467 Vminibuf_scroll_window = Qnil;
diff --git a/src/xdisp.c b/src/xdisp.c
index 4362d2dc7a9..b7fc1141e28 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -26046,7 +26046,7 @@ rows_from_pos_range (struct window *w,
26046 for the overlay or run of text properties specifying the mouse 26046 for the overlay or run of text properties specifying the mouse
26047 face. BEFORE_STRING and AFTER_STRING, if non-nil, are a 26047 face. BEFORE_STRING and AFTER_STRING, if non-nil, are a
26048 before-string and after-string that must also be highlighted. 26048 before-string and after-string that must also be highlighted.
26049 COVER_STRING, if non-nil, is a display string that may cover some 26049 DISP_STRING, if non-nil, is a display string that may cover some
26050 or all of the highlighted text. */ 26050 or all of the highlighted text. */
26051 26051
26052static void 26052static void
@@ -26057,7 +26057,7 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26057 EMACS_INT end_charpos, 26057 EMACS_INT end_charpos,
26058 Lisp_Object before_string, 26058 Lisp_Object before_string,
26059 Lisp_Object after_string, 26059 Lisp_Object after_string,
26060 Lisp_Object cover_string) 26060 Lisp_Object disp_string)
26061{ 26061{
26062 struct window *w = XWINDOW (window); 26062 struct window *w = XWINDOW (window);
26063 struct glyph_row *first = MATRIX_FIRST_TEXT_ROW (w->current_matrix); 26063 struct glyph_row *first = MATRIX_FIRST_TEXT_ROW (w->current_matrix);
@@ -26066,7 +26066,7 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26066 EMACS_INT ignore, pos; 26066 EMACS_INT ignore, pos;
26067 int x; 26067 int x;
26068 26068
26069 xassert (NILP (cover_string) || STRINGP (cover_string)); 26069 xassert (NILP (disp_string) || STRINGP (disp_string));
26070 xassert (NILP (before_string) || STRINGP (before_string)); 26070 xassert (NILP (before_string) || STRINGP (before_string));
26071 xassert (NILP (after_string) || STRINGP (after_string)); 26071 xassert (NILP (after_string) || STRINGP (after_string));
26072 26072
@@ -26076,7 +26076,7 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26076 r1 = MATRIX_ROW (w->current_matrix, XFASTINT (w->window_end_vpos)); 26076 r1 = MATRIX_ROW (w->current_matrix, XFASTINT (w->window_end_vpos));
26077 /* If the before-string or display-string contains newlines, 26077 /* If the before-string or display-string contains newlines,
26078 rows_from_pos_range skips to its last row. Move back. */ 26078 rows_from_pos_range skips to its last row. Move back. */
26079 if (!NILP (before_string) || !NILP (cover_string)) 26079 if (!NILP (before_string) || !NILP (disp_string))
26080 { 26080 {
26081 struct glyph_row *prev; 26081 struct glyph_row *prev;
26082 while ((prev = r1 - 1, prev >= first) 26082 while ((prev = r1 - 1, prev >= first)
@@ -26088,7 +26088,7 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26088 while (--glyph >= beg && INTEGERP (glyph->object)); 26088 while (--glyph >= beg && INTEGERP (glyph->object));
26089 if (glyph < beg 26089 if (glyph < beg
26090 || !(EQ (glyph->object, before_string) 26090 || !(EQ (glyph->object, before_string)
26091 || EQ (glyph->object, cover_string))) 26091 || EQ (glyph->object, disp_string)))
26092 break; 26092 break;
26093 r1 = prev; 26093 r1 = prev;
26094 } 26094 }
@@ -26113,10 +26113,10 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26113 r2 = next; 26113 r2 = next;
26114 } 26114 }
26115 /* The rest of the display engine assumes that mouse_face_beg_row is 26115 /* The rest of the display engine assumes that mouse_face_beg_row is
26116 either above below mouse_face_end_row or identical to it. But 26116 either above mouse_face_end_row or identical to it. But with
26117 with bidi-reordered continued lines, the row for START_CHARPOS 26117 bidi-reordered continued lines, the row for START_CHARPOS could
26118 could be below the row for END_CHARPOS. If so, swap the rows and 26118 be below the row for END_CHARPOS. If so, swap the rows and store
26119 store them in correct order. */ 26119 them in correct order. */
26120 if (r1->y > r2->y) 26120 if (r1->y > r2->y)
26121 { 26121 {
26122 struct glyph_row *tem = r2; 26122 struct glyph_row *tem = r2;
@@ -26131,7 +26131,7 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26131 hlinfo->mouse_face_end_row = MATRIX_ROW_VPOS (r2, w->current_matrix); 26131 hlinfo->mouse_face_end_row = MATRIX_ROW_VPOS (r2, w->current_matrix);
26132 26132
26133 /* For a bidi-reordered row, the positions of BEFORE_STRING, 26133 /* For a bidi-reordered row, the positions of BEFORE_STRING,
26134 AFTER_STRING, COVER_STRING, START_CHARPOS, and END_CHARPOS 26134 AFTER_STRING, DISP_STRING, START_CHARPOS, and END_CHARPOS
26135 could be anywhere in the row and in any order. The strategy 26135 could be anywhere in the row and in any order. The strategy
26136 below is to find the leftmost and the rightmost glyph that 26136 below is to find the leftmost and the rightmost glyph that
26137 belongs to either of these 3 strings, or whose position is 26137 belongs to either of these 3 strings, or whose position is
@@ -26157,11 +26157,11 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26157 x += glyph->pixel_width; 26157 x += glyph->pixel_width;
26158 26158
26159 /* Scan the glyph row, looking for BEFORE_STRING, AFTER_STRING, 26159 /* Scan the glyph row, looking for BEFORE_STRING, AFTER_STRING,
26160 or COVER_STRING, and the first glyph from buffer whose 26160 or DISP_STRING, and the first glyph from buffer whose
26161 position is between START_CHARPOS and END_CHARPOS. */ 26161 position is between START_CHARPOS and END_CHARPOS. */
26162 for (; glyph < end 26162 for (; glyph < end
26163 && !INTEGERP (glyph->object) 26163 && !INTEGERP (glyph->object)
26164 && !EQ (glyph->object, cover_string) 26164 && !EQ (glyph->object, disp_string)
26165 && !(BUFFERP (glyph->object) 26165 && !(BUFFERP (glyph->object)
26166 && (glyph->charpos >= start_charpos 26166 && (glyph->charpos >= start_charpos
26167 && glyph->charpos < end_charpos)); 26167 && glyph->charpos < end_charpos));
@@ -26208,11 +26208,11 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26208 ; 26208 ;
26209 26209
26210 /* Scan the glyph row, looking for BEFORE_STRING, AFTER_STRING, 26210 /* Scan the glyph row, looking for BEFORE_STRING, AFTER_STRING,
26211 or COVER_STRING, and the first glyph from buffer whose 26211 or DISP_STRING, and the first glyph from buffer whose
26212 position is between START_CHARPOS and END_CHARPOS. */ 26212 position is between START_CHARPOS and END_CHARPOS. */
26213 for (; glyph > end 26213 for (; glyph > end
26214 && !INTEGERP (glyph->object) 26214 && !INTEGERP (glyph->object)
26215 && !EQ (glyph->object, cover_string) 26215 && !EQ (glyph->object, disp_string)
26216 && !(BUFFERP (glyph->object) 26216 && !(BUFFERP (glyph->object)
26217 && (glyph->charpos >= start_charpos 26217 && (glyph->charpos >= start_charpos
26218 && glyph->charpos < end_charpos)); 26218 && glyph->charpos < end_charpos));
@@ -26268,17 +26268,16 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26268 row, and also blanks and stretch glyphs inserted by 26268 row, and also blanks and stretch glyphs inserted by
26269 extend_face_to_end_of_line. */ 26269 extend_face_to_end_of_line. */
26270 while (end > glyph 26270 while (end > glyph
26271 && INTEGERP ((end - 1)->object) 26271 && INTEGERP ((end - 1)->object))
26272 && (end - 1)->charpos <= 0)
26273 --end; 26272 --end;
26274 /* Scan the rest of the glyph row from the end, looking for the 26273 /* Scan the rest of the glyph row from the end, looking for the
26275 first glyph that comes from BEFORE_STRING, AFTER_STRING, or 26274 first glyph that comes from BEFORE_STRING, AFTER_STRING, or
26276 COVER_STRING, or whose position is between START_CHARPOS 26275 DISP_STRING, or whose position is between START_CHARPOS
26277 and END_CHARPOS */ 26276 and END_CHARPOS */
26278 for (--end; 26277 for (--end;
26279 end > glyph 26278 end > glyph
26280 && !INTEGERP (end->object) 26279 && !INTEGERP (end->object)
26281 && !EQ (end->object, cover_string) 26280 && !EQ (end->object, disp_string)
26282 && !(BUFFERP (end->object) 26281 && !(BUFFERP (end->object)
26283 && (end->charpos >= start_charpos 26282 && (end->charpos >= start_charpos
26284 && end->charpos < end_charpos)); 26283 && end->charpos < end_charpos));
@@ -26315,20 +26314,19 @@ mouse_face_from_buffer_pos (Lisp_Object window,
26315 x = r2->x; 26314 x = r2->x;
26316 end++; 26315 end++;
26317 while (end < glyph 26316 while (end < glyph
26318 && INTEGERP (end->object) 26317 && INTEGERP (end->object))
26319 && end->charpos <= 0)
26320 { 26318 {
26321 x += end->pixel_width; 26319 x += end->pixel_width;
26322 ++end; 26320 ++end;
26323 } 26321 }
26324 /* Scan the rest of the glyph row from the end, looking for the 26322 /* Scan the rest of the glyph row from the end, looking for the
26325 first glyph that comes from BEFORE_STRING, AFTER_STRING, or 26323 first glyph that comes from BEFORE_STRING, AFTER_STRING, or
26326 COVER_STRING, or whose position is between START_CHARPOS 26324 DISP_STRING, or whose position is between START_CHARPOS
26327 and END_CHARPOS */ 26325 and END_CHARPOS */
26328 for ( ; 26326 for ( ;
26329 end < glyph 26327 end < glyph
26330 && !INTEGERP (end->object) 26328 && !INTEGERP (end->object)
26331 && !EQ (end->object, cover_string) 26329 && !EQ (end->object, disp_string)
26332 && !(BUFFERP (end->object) 26330 && !(BUFFERP (end->object)
26333 && (end->charpos >= start_charpos 26331 && (end->charpos >= start_charpos
26334 && end->charpos < end_charpos)); 26332 && end->charpos < end_charpos));
@@ -27323,7 +27321,7 @@ note_mouse_highlight (struct frame *f, int x, int y)
27323 /* The mouse-highlighting, if any, comes from an overlay 27321 /* The mouse-highlighting, if any, comes from an overlay
27324 or text property in the buffer. */ 27322 or text property in the buffer. */
27325 Lisp_Object buffer IF_LINT (= Qnil); 27323 Lisp_Object buffer IF_LINT (= Qnil);
27326 Lisp_Object cover_string IF_LINT (= Qnil); 27324 Lisp_Object disp_string IF_LINT (= Qnil);
27327 27325
27328 if (STRINGP (object)) 27326 if (STRINGP (object))
27329 { 27327 {
@@ -27337,13 +27335,13 @@ note_mouse_highlight (struct frame *f, int x, int y)
27337 mouse_face = get_char_property_and_overlay 27335 mouse_face = get_char_property_and_overlay
27338 (make_number (pos), Qmouse_face, w->buffer, &overlay); 27336 (make_number (pos), Qmouse_face, w->buffer, &overlay);
27339 buffer = w->buffer; 27337 buffer = w->buffer;
27340 cover_string = object; 27338 disp_string = object;
27341 } 27339 }
27342 } 27340 }
27343 else 27341 else
27344 { 27342 {
27345 buffer = object; 27343 buffer = object;
27346 cover_string = Qnil; 27344 disp_string = Qnil;
27347 } 27345 }
27348 27346
27349 if (!NILP (mouse_face)) 27347 if (!NILP (mouse_face))
@@ -27395,7 +27393,7 @@ note_mouse_highlight (struct frame *f, int x, int y)
27395 XFASTINT (before), 27393 XFASTINT (before),
27396 XFASTINT (after), 27394 XFASTINT (after),
27397 before_string, after_string, 27395 before_string, after_string,
27398 cover_string); 27396 disp_string);
27399 cursor = No_Cursor; 27397 cursor = No_Cursor;
27400 } 27398 }
27401 } 27399 }