diff options
| author | Glenn Morris | 2020-10-17 09:48:54 -0700 |
|---|---|---|
| committer | Glenn Morris | 2020-10-17 09:48:54 -0700 |
| commit | 3ac3a6503ebcf40ae6e179d92e1d168a4d440ea1 (patch) | |
| tree | 48987d8f445159691efbf8b060e59731d43d8bb5 | |
| parent | 2f45054208ccc3fbd53b7f4d6bbaba92afa075c1 (diff) | |
| parent | 65078e0a760950783e56f6765465a59bd642e8e4 (diff) | |
| download | emacs-3ac3a6503ebcf40ae6e179d92e1d168a4d440ea1.tar.gz emacs-3ac3a6503ebcf40ae6e179d92e1d168a4d440ea1.zip | |
Merge from origin/emacs-27
65078e0a76 * lisp/info.el (Info-hide-note-references): Doc fix. (Bug...
30305b543d Make lisp/progmodes/js.el dependent on CC Mode in the Make...
c37b2a9b42 Yet another fix for 'set-minibuffer-message'
72dd911981 Fix posn-at-x-y in builds --without-x
ace25f2066 Clarify the seq-reduce documentation
7d598e281d Make tramp-completion-reread-directory-timeout obsolete (B...
2c31ce18ea Fix 'message' when there's active minibuffer on another frame
# Conflicts:
# doc/misc/tramp.texi
# etc/NEWS
| -rw-r--r-- | doc/lispref/commands.texi | 48 | ||||
| -rw-r--r-- | doc/lispref/sequences.texi | 9 | ||||
| -rw-r--r-- | doc/misc/tramp.texi | 16 | ||||
| -rw-r--r-- | etc/NEWS.27 | 6 | ||||
| -rw-r--r-- | lisp/Makefile.in | 6 | ||||
| -rw-r--r-- | lisp/emacs-lisp/seq.el | 8 | ||||
| -rw-r--r-- | lisp/info.el | 9 | ||||
| -rw-r--r-- | lisp/minibuffer.el | 82 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 2 | ||||
| -rw-r--r-- | src/keyboard.c | 7 |
10 files changed, 122 insertions, 71 deletions
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 1467854904c..8959175def8 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi | |||
| @@ -1345,10 +1345,11 @@ button. @xref{Repeat Events}. | |||
| 1345 | 1345 | ||
| 1346 | To access the contents of a mouse position list in the | 1346 | To access the contents of a mouse position list in the |
| 1347 | @var{position} slot of a click event, you should typically use the | 1347 | @var{position} slot of a click event, you should typically use the |
| 1348 | functions documented in @ref{Accessing Mouse}. The explicit format of | 1348 | functions documented in @ref{Accessing Mouse}. |
| 1349 | the list depends on where the click occurred. For clicks in the text | 1349 | |
| 1350 | area, mode line, header line, tab line, or in the fringe or marginal | 1350 | The explicit format of the list depends on where the click occurred. |
| 1351 | areas, the mouse position list has the form | 1351 | For clicks in the text area, mode line, header line, tab line, or in |
| 1352 | the fringe or marginal areas, the mouse position list has the form | ||
| 1352 | 1353 | ||
| 1353 | @example | 1354 | @example |
| 1354 | (@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp} | 1355 | (@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp} |
| @@ -1478,6 +1479,45 @@ handle), @code{up} (the up arrow at one end of the scroll bar), or | |||
| 1478 | @c The 'top', 'bottom', and 'end-scroll' codes don't seem to be used. | 1479 | @c The 'top', 'bottom', and 'end-scroll' codes don't seem to be used. |
| 1479 | @end table | 1480 | @end table |
| 1480 | 1481 | ||
| 1482 | For clicks on the frame's internal border (@pxref{Frame Layout}), | ||
| 1483 | @var{position} has this form: | ||
| 1484 | |||
| 1485 | @example | ||
| 1486 | (@var{frame} @var{part} (@var{X} . @var{Y}) @var{timestamp}) | ||
| 1487 | @end example | ||
| 1488 | |||
| 1489 | @table @asis | ||
| 1490 | @item @var{frame} | ||
| 1491 | The frame whose internal border was clicked on. | ||
| 1492 | |||
| 1493 | @item @var{part} | ||
| 1494 | The part of the internal border which was clicked on. This can be one | ||
| 1495 | of the following: | ||
| 1496 | |||
| 1497 | @table @code | ||
| 1498 | @item nil | ||
| 1499 | The frame does not have an internal border. This usually happens on | ||
| 1500 | text-mode frames. This can also happen on GUI frames with internal | ||
| 1501 | border if the frame doesn't have its @code{drag-internal-border} | ||
| 1502 | parameter (@pxref{Mouse Dragging Parameters}) set to a non-@code{nil} | ||
| 1503 | value. | ||
| 1504 | |||
| 1505 | @item left-edge | ||
| 1506 | @itemx top-edge | ||
| 1507 | @itemx right-edge | ||
| 1508 | @itemx bottom-edge | ||
| 1509 | The click was on the corresponding border at an offset of at least one | ||
| 1510 | canonical character from the border's nearest corner. | ||
| 1511 | |||
| 1512 | @item top-left-corner | ||
| 1513 | @itemx top-right-corner | ||
| 1514 | @itemx bottom-right-corner | ||
| 1515 | @itemx bottom-left-corner | ||
| 1516 | The click was on the corresponding corner of the internal border. | ||
| 1517 | @end table | ||
| 1518 | |||
| 1519 | @end table | ||
| 1520 | |||
| 1481 | 1521 | ||
| 1482 | @node Drag Events | 1522 | @node Drag Events |
| 1483 | @subsection Drag Events | 1523 | @subsection Drag Events |
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index ca52369bd0c..952834bd4e3 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi | |||
| @@ -658,8 +658,13 @@ for which @var{predicate} returns @code{nil}. | |||
| 658 | @var{initial-value} and the first element of @var{sequence}, then calling | 658 | @var{initial-value} and the first element of @var{sequence}, then calling |
| 659 | @var{function} with that result and the second element of @var{sequence}, | 659 | @var{function} with that result and the second element of @var{sequence}, |
| 660 | then with that result and the third element of @var{sequence}, etc. | 660 | then with that result and the third element of @var{sequence}, etc. |
| 661 | @var{function} should be a function of two arguments. If | 661 | @var{function} should be a function of two arguments. |
| 662 | @var{sequence} is empty, this returns @var{initial-value} without | 662 | |
| 663 | @var{function} is called with two arguments. @var{intial-value} | ||
| 664 | (and then the accumulated value) is used as the first argument, and | ||
| 665 | the elements in @var{sequence} are used for the second argument. | ||
| 666 | |||
| 667 | If @var{sequence} is empty, this returns @var{initial-value} without | ||
| 663 | calling @var{function}. | 668 | calling @var{function}. |
| 664 | 669 | ||
| 665 | @example | 670 | @example |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 0e397f4c244..a7339bf2988 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -3089,19 +3089,6 @@ Example: | |||
| 3089 | @end group | 3089 | @end group |
| 3090 | @end example | 3090 | @end example |
| 3091 | 3091 | ||
| 3092 | During file name completion, remote directory contents are re-read | ||
| 3093 | regularly to account for any changes in the file system that may | ||
| 3094 | affect the completion candidates. Such re-reads can account for | ||
| 3095 | changes to the file system by applications outside Emacs | ||
| 3096 | (@pxref{Connection caching}). | ||
| 3097 | |||
| 3098 | @defopt tramp-completion-reread-directory-timeout | ||
| 3099 | The timeout is number of seconds since last remote command for | ||
| 3100 | rereading remote directory contents. A value of 0 re-reads | ||
| 3101 | immediately during file name completion, @code{nil} uses cached | ||
| 3102 | directory contents. | ||
| 3103 | @end defopt | ||
| 3104 | |||
| 3105 | 3092 | ||
| 3106 | @node Ad-hoc multi-hops | 3093 | @node Ad-hoc multi-hops |
| 3107 | @section Declaring multiple hops in the file name | 3094 | @section Declaring multiple hops in the file name |
| @@ -4126,9 +4113,6 @@ files are not independently updated outside @value{tramp}'s control. | |||
| 4126 | That cache cleanup will be necessary if the remote directories or | 4113 | That cache cleanup will be necessary if the remote directories or |
| 4127 | files are updated independent of @value{tramp}. | 4114 | files are updated independent of @value{tramp}. |
| 4128 | 4115 | ||
| 4129 | Set @code{tramp-completion-reread-directory-timeout} to @code{nil} to | ||
| 4130 | speed up completions, @ref{File name completion}. | ||
| 4131 | |||
| 4132 | Disable version control to avoid delays: | 4116 | Disable version control to avoid delays: |
| 4133 | 4117 | ||
| 4134 | @lisp | 4118 | @lisp |
diff --git a/etc/NEWS.27 b/etc/NEWS.27 index 149bd32fc01..e7931330357 100644 --- a/etc/NEWS.27 +++ b/etc/NEWS.27 | |||
| @@ -21,6 +21,10 @@ Temporary note: | |||
| 21 | When you add a new item, use the appropriate mark if you are sure it | 21 | When you add a new item, use the appropriate mark if you are sure it |
| 22 | applies, and please also update docstrings as needed. | 22 | applies, and please also update docstrings as needed. |
| 23 | 23 | ||
| 24 | ** Tramp | ||
| 25 | |||
| 26 | *** The user option 'tramp-completion-reread-directory-timeout' is made obsolete. | ||
| 27 | |||
| 24 | 28 | ||
| 25 | * Installation Changes in Emacs 27.1 | 29 | * Installation Changes in Emacs 27.1 |
| 26 | 30 | ||
| @@ -202,7 +206,7 @@ it won't work right without some adjustment: | |||
| 202 | Units that are ordered after 'emacs.service' will only be started | 206 | Units that are ordered after 'emacs.service' will only be started |
| 203 | after Emacs has finished initialization and is ready for use, and | 207 | after Emacs has finished initialization and is ready for use, and |
| 204 | Emacs needs to be built with systemd support. (If your Emacs is | 208 | Emacs needs to be built with systemd support. (If your Emacs is |
| 205 | installed in a non-standard location and you copied the emacs.service | 209 | installed in a non-standard location and you copied the "emacs.service" |
| 206 | file to e.g. "~/.config/systemd/user/", you will need to copy the new | 210 | file to e.g. "~/.config/systemd/user/", you will need to copy the new |
| 207 | version of the file again.) | 211 | version of the file again.) |
| 208 | 212 | ||
diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 84c5733918a..7c86e89ca99 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in | |||
| @@ -524,4 +524,10 @@ $(lisp)/progmodes/cc-mode.elc: $(lisp)/progmodes/cc-langs.elc \ | |||
| 524 | $(lisp)/progmodes/cc-styles.elc: $(lisp)/progmodes/cc-vars.elc \ | 524 | $(lisp)/progmodes/cc-styles.elc: $(lisp)/progmodes/cc-vars.elc \ |
| 525 | $(lisp)/progmodes/cc-align.elc | 525 | $(lisp)/progmodes/cc-align.elc |
| 526 | 526 | ||
| 527 | # https://debbugs.gnu.org/43037 | ||
| 528 | # js.elc (like all modes using CC Mode's compile time macros) needs to | ||
| 529 | # be compiled under the same version of CC Mode it will run with. | ||
| 530 | $(lisp)/progmodes/js.elc: $(lisp)/progmodes/cc-defs.elc \ | ||
| 531 | $(lisp)/progmodes/cc-engine.elc $(lisp)/progmodes/cc-mode.elc | ||
| 532 | |||
| 527 | # Makefile ends here. | 533 | # Makefile ends here. |
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index d60f974aee1..9073f9c7a51 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el | |||
| @@ -336,9 +336,11 @@ list." | |||
| 336 | "Reduce the function FUNCTION across SEQUENCE, starting with INITIAL-VALUE. | 336 | "Reduce the function FUNCTION across SEQUENCE, starting with INITIAL-VALUE. |
| 337 | 337 | ||
| 338 | Return the result of calling FUNCTION with INITIAL-VALUE and the | 338 | Return the result of calling FUNCTION with INITIAL-VALUE and the |
| 339 | first element of SEQUENCE, then calling FUNCTION with that result and | 339 | first element of SEQUENCE, then calling FUNCTION with that result |
| 340 | the second element of SEQUENCE, then with that result and the third | 340 | and the second element of SEQUENCE, then with that result and the |
| 341 | element of SEQUENCE, etc. | 341 | third element of SEQUENCE, etc. FUNCTION will be called with |
| 342 | INITIAL-VALUE (and then the accumulated value) as the first | ||
| 343 | argument, and the elements from SEQUENCE as the second argument. | ||
| 342 | 344 | ||
| 343 | If SEQUENCE is empty, return INITIAL-VALUE and FUNCTION is not called." | 345 | If SEQUENCE is empty, return INITIAL-VALUE and FUNCTION is not called." |
| 344 | (if (seq-empty-p sequence) | 346 | (if (seq-empty-p sequence) |
diff --git a/lisp/info.el b/lisp/info.el index 6dffb3993c4..8ea47d2dbef 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -305,10 +305,11 @@ when you hit the end of the current node." | |||
| 305 | 305 | ||
| 306 | (defcustom Info-hide-note-references t | 306 | (defcustom Info-hide-note-references t |
| 307 | "If non-nil, hide the tag and section reference in *note and * menu items. | 307 | "If non-nil, hide the tag and section reference in *note and * menu items. |
| 308 | If value is non-nil but not `hide', also replaces the \"*note\" with \"see\". | 308 | If the value is t, the default, replace \"*note\" with \"see\". |
| 309 | If value is non-nil but not t or `hide', the reference section is still shown. | 309 | If the value is `hide', remove \"*note\" without replacing it with anything. |
| 310 | nil completely disables this feature. If this is non-nil, you might | 310 | If value is non-nil, but not t or `hide', the reference section is still shown. |
| 311 | want to set `Info-refill-paragraphs'." | 311 | nil completely disables this feature, leaving the original \"*note\" visible. |
| 312 | If this is non-nil, you may wish setting `Info-refill-paragraphs' non-nil." | ||
| 312 | :version "22.1" | 313 | :version "22.1" |
| 313 | :type '(choice (const :tag "No hiding" nil) | 314 | :type '(choice (const :tag "No hiding" nil) |
| 314 | (const :tag "Replace tag and hide reference" t) | 315 | (const :tag "Replace tag and hide reference" t) |
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 427636e8662..5a41e2f30bd 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el | |||
| @@ -776,44 +776,50 @@ The text is displayed for `minibuffer-message-clear-timeout' seconds | |||
| 776 | whichever comes first. | 776 | whichever comes first. |
| 777 | Unlike `minibuffer-message', this function is called automatically | 777 | Unlike `minibuffer-message', this function is called automatically |
| 778 | via `set-message-function'." | 778 | via `set-message-function'." |
| 779 | (when (and (not noninteractive) | 779 | (let* ((minibuf-window (active-minibuffer-window)) |
| 780 | (window-live-p (active-minibuffer-window))) | 780 | (minibuf-frame (and (window-live-p minibuf-window) |
| 781 | (with-current-buffer (window-buffer (active-minibuffer-window)) | 781 | (window-frame minibuf-window)))) |
| 782 | (setq message (if (string-match-p "\\` *\\[.+\\]\\'" message) | 782 | (when (and (not noninteractive) |
| 783 | ;; Make sure we can put-text-property. | 783 | (window-live-p minibuf-window) |
| 784 | (copy-sequence message) | 784 | (or (eq (window-frame) minibuf-frame) |
| 785 | (concat " [" message "]"))) | 785 | (eq (frame-parameter minibuf-frame 'minibuffer) 'only))) |
| 786 | (unless (or (null minibuffer-message-properties) | 786 | (with-current-buffer (window-buffer minibuf-window) |
| 787 | ;; Don't overwrite the face properties the caller has set | 787 | (setq message (if (string-match-p "\\` *\\[.+\\]\\'" message) |
| 788 | (text-properties-at 0 message)) | 788 | ;; Make sure we can put-text-property. |
| 789 | (setq message (apply #'propertize message minibuffer-message-properties))) | 789 | (copy-sequence message) |
| 790 | 790 | (concat " [" message "]"))) | |
| 791 | (clear-minibuffer-message) | 791 | (unless (or (null minibuffer-message-properties) |
| 792 | 792 | ;; Don't overwrite the face properties the caller has set | |
| 793 | (let ((ovpos (minibuffer--message-overlay-pos))) | 793 | (text-properties-at 0 message)) |
| 794 | (setq minibuffer-message-overlay | 794 | (setq message |
| 795 | (make-overlay ovpos ovpos nil t t))) | 795 | (apply #'propertize message minibuffer-message-properties))) |
| 796 | (unless (zerop (length message)) | 796 | |
| 797 | ;; The current C cursor code doesn't know to use the overlay's | 797 | (clear-minibuffer-message) |
| 798 | ;; marker's stickiness to figure out whether to place the cursor | 798 | |
| 799 | ;; before or after the string, so let's spoon-feed it the pos. | 799 | (let ((ovpos (minibuffer--message-overlay-pos))) |
| 800 | (put-text-property 0 1 'cursor 1 message)) | 800 | (setq minibuffer-message-overlay |
| 801 | (overlay-put minibuffer-message-overlay 'after-string message) | 801 | (make-overlay ovpos ovpos nil t t))) |
| 802 | ;; Make sure the overlay with the message is displayed before | 802 | (unless (zerop (length message)) |
| 803 | ;; any other overlays in that position, in case they have | 803 | ;; The current C cursor code doesn't know to use the overlay's |
| 804 | ;; resize-mini-windows set to nil and the other overlay strings | 804 | ;; marker's stickiness to figure out whether to place the cursor |
| 805 | ;; are too long for the mini-window width. This makes sure the | 805 | ;; before or after the string, so let's spoon-feed it the pos. |
| 806 | ;; temporary message will always be visible. | 806 | (put-text-property 0 1 'cursor 1 message)) |
| 807 | (overlay-put minibuffer-message-overlay 'priority 1100) | 807 | (overlay-put minibuffer-message-overlay 'after-string message) |
| 808 | 808 | ;; Make sure the overlay with the message is displayed before | |
| 809 | (when (numberp minibuffer-message-clear-timeout) | 809 | ;; any other overlays in that position, in case they have |
| 810 | (setq minibuffer-message-timer | 810 | ;; resize-mini-windows set to nil and the other overlay strings |
| 811 | (run-with-timer minibuffer-message-clear-timeout nil | 811 | ;; are too long for the mini-window width. This makes sure the |
| 812 | #'clear-minibuffer-message))) | 812 | ;; temporary message will always be visible. |
| 813 | 813 | (overlay-put minibuffer-message-overlay 'priority 1100) | |
| 814 | ;; Return `t' telling the caller that the message | 814 | |
| 815 | ;; was handled specially by this function. | 815 | (when (numberp minibuffer-message-clear-timeout) |
| 816 | t))) | 816 | (setq minibuffer-message-timer |
| 817 | (run-with-timer minibuffer-message-clear-timeout nil | ||
| 818 | #'clear-minibuffer-message))) | ||
| 819 | |||
| 820 | ;; Return `t' telling the caller that the message | ||
| 821 | ;; was handled specially by this function. | ||
| 822 | t)))) | ||
| 817 | 823 | ||
| 818 | (setq set-message-function 'set-minibuffer-message) | 824 | (setq set-message-function 'set-minibuffer-message) |
| 819 | 825 | ||
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 6d44ad23ad7..0c85025d542 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -1235,6 +1235,8 @@ have been gone since last remote command execution. A value of t | |||
| 1235 | would require an immediate reread during filename completion, nil | 1235 | would require an immediate reread during filename completion, nil |
| 1236 | means to use always cached values for the directory contents." | 1236 | means to use always cached values for the directory contents." |
| 1237 | :type '(choice (const nil) (const t) integer)) | 1237 | :type '(choice (const nil) (const t) integer)) |
| 1238 | (make-obsolete-variable | ||
| 1239 | 'tramp-completion-reread-directory-timeout 'remote-file-name-inhibit-cache "27.2") | ||
| 1238 | 1240 | ||
| 1239 | ;;; Internal Variables: | 1241 | ;;; Internal Variables: |
| 1240 | 1242 | ||
diff --git a/src/keyboard.c b/src/keyboard.c index 4d22c44810e..10d2f6323ed 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -5254,7 +5254,6 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, | |||
| 5254 | extra_info))); | 5254 | extra_info))); |
| 5255 | } | 5255 | } |
| 5256 | 5256 | ||
| 5257 | #ifdef HAVE_WINDOW_SYSTEM | ||
| 5258 | else if (f) | 5257 | else if (f) |
| 5259 | { | 5258 | { |
| 5260 | /* Return mouse pixel coordinates here. */ | 5259 | /* Return mouse pixel coordinates here. */ |
| @@ -5262,7 +5261,9 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, | |||
| 5262 | xret = XFIXNUM (x); | 5261 | xret = XFIXNUM (x); |
| 5263 | yret = XFIXNUM (y); | 5262 | yret = XFIXNUM (y); |
| 5264 | 5263 | ||
| 5265 | if (FRAME_LIVE_P (f) | 5264 | #ifdef HAVE_WINDOW_SYSTEM |
| 5265 | if (FRAME_WINDOW_P (f) | ||
| 5266 | && FRAME_LIVE_P (f) | ||
| 5266 | && FRAME_INTERNAL_BORDER_WIDTH (f) > 0 | 5267 | && FRAME_INTERNAL_BORDER_WIDTH (f) > 0 |
| 5267 | && !NILP (get_frame_param (f, Qdrag_internal_border))) | 5268 | && !NILP (get_frame_param (f, Qdrag_internal_border))) |
| 5268 | { | 5269 | { |
| @@ -5271,8 +5272,8 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, | |||
| 5271 | 5272 | ||
| 5272 | posn = builtin_lisp_symbol (internal_border_parts[part]); | 5273 | posn = builtin_lisp_symbol (internal_border_parts[part]); |
| 5273 | } | 5274 | } |
| 5274 | } | ||
| 5275 | #endif | 5275 | #endif |
| 5276 | } | ||
| 5276 | 5277 | ||
| 5277 | else | 5278 | else |
| 5278 | window_or_frame = Qnil; | 5279 | window_or_frame = Qnil; |