Commit 3ac3a650 authored by Glenn Morris's avatar Glenn Morris

Merge from origin/emacs-27

65078e0a * lisp/info.el (Info-hide-note-references): Doc fix.  (Bug...
30305b54 Make lisp/progmodes/js.el dependent on CC Mode in the Make...
c37b2a9b Yet another fix for 'set-minibuffer-message'
72dd9119 Fix posn-at-x-y in builds --without-x
ace25f20 Clarify the seq-reduce documentation
7d598e28 Make tramp-completion-reread-directory-timeout obsolete (B...
2c31ce18 Fix 'message' when there's active minibuffer on another frame

# Conflicts:
#	doc/misc/tramp.texi
#	etc/NEWS
parents 2f450542 65078e0a
......@@ -1345,10 +1345,11 @@ button. @xref{Repeat Events}.
To access the contents of a mouse position list in the
@var{position} slot of a click event, you should typically use the
functions documented in @ref{Accessing Mouse}. The explicit format of
the list depends on where the click occurred. For clicks in the text
area, mode line, header line, tab line, or in the fringe or marginal
areas, the mouse position list has the form
functions documented in @ref{Accessing Mouse}.
The explicit format of the list depends on where the click occurred.
For clicks in the text area, mode line, header line, tab line, or in
the fringe or marginal areas, the mouse position list has the form
@example
(@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
@c The 'top', 'bottom', and 'end-scroll' codes don't seem to be used.
@end table
For clicks on the frame's internal border (@pxref{Frame Layout}),
@var{position} has this form:
@example
(@var{frame} @var{part} (@var{X} . @var{Y}) @var{timestamp})
@end example
@table @asis
@item @var{frame}
The frame whose internal border was clicked on.
@item @var{part}
The part of the internal border which was clicked on. This can be one
of the following:
@table @code
@item nil
The frame does not have an internal border. This usually happens on
text-mode frames. This can also happen on GUI frames with internal
border if the frame doesn't have its @code{drag-internal-border}
parameter (@pxref{Mouse Dragging Parameters}) set to a non-@code{nil}
value.
@item left-edge
@itemx top-edge
@itemx right-edge
@itemx bottom-edge
The click was on the corresponding border at an offset of at least one
canonical character from the border's nearest corner.
@item top-left-corner
@itemx top-right-corner
@itemx bottom-right-corner
@itemx bottom-left-corner
The click was on the corresponding corner of the internal border.
@end table
@end table
@node Drag Events
@subsection Drag Events
......
......@@ -658,8 +658,13 @@ for which @var{predicate} returns @code{nil}.
@var{initial-value} and the first element of @var{sequence}, then calling
@var{function} with that result and the second element of @var{sequence},
then with that result and the third element of @var{sequence}, etc.
@var{function} should be a function of two arguments. If
@var{sequence} is empty, this returns @var{initial-value} without
@var{function} should be a function of two arguments.
@var{function} is called with two arguments. @var{intial-value}
(and then the accumulated value) is used as the first argument, and
the elements in @var{sequence} are used for the second argument.
If @var{sequence} is empty, this returns @var{initial-value} without
calling @var{function}.
@example
......
......@@ -3089,19 +3089,6 @@ Example:
@end group
@end example
During file name completion, remote directory contents are re-read
regularly to account for any changes in the file system that may
affect the completion candidates. Such re-reads can account for
changes to the file system by applications outside Emacs
(@pxref{Connection caching}).
@defopt tramp-completion-reread-directory-timeout
The timeout is number of seconds since last remote command for
rereading remote directory contents. A value of 0 re-reads
immediately during file name completion, @code{nil} uses cached
directory contents.
@end defopt
@node Ad-hoc multi-hops
@section Declaring multiple hops in the file name
......@@ -4126,9 +4113,6 @@ files are not independently updated outside @value{tramp}'s control.
That cache cleanup will be necessary if the remote directories or
files are updated independent of @value{tramp}.
Set @code{tramp-completion-reread-directory-timeout} to @code{nil} to
speed up completions, @ref{File name completion}.
Disable version control to avoid delays:
@lisp
......
......@@ -21,6 +21,10 @@ Temporary note:
When you add a new item, use the appropriate mark if you are sure it
applies, and please also update docstrings as needed.
** Tramp
*** The user option 'tramp-completion-reread-directory-timeout' is made obsolete.
* Installation Changes in Emacs 27.1
......@@ -202,7 +206,7 @@ it won't work right without some adjustment:
Units that are ordered after 'emacs.service' will only be started
after Emacs has finished initialization and is ready for use, and
Emacs needs to be built with systemd support. (If your Emacs is
installed in a non-standard location and you copied the emacs.service
installed in a non-standard location and you copied the "emacs.service"
file to e.g. "~/.config/systemd/user/", you will need to copy the new
version of the file again.)
......
......@@ -524,4 +524,10 @@ $(lisp)/progmodes/cc-mode.elc: $(lisp)/progmodes/cc-langs.elc \
$(lisp)/progmodes/cc-styles.elc: $(lisp)/progmodes/cc-vars.elc \
$(lisp)/progmodes/cc-align.elc
# https://debbugs.gnu.org/43037
# js.elc (like all modes using CC Mode's compile time macros) needs to
# be compiled under the same version of CC Mode it will run with.
$(lisp)/progmodes/js.elc: $(lisp)/progmodes/cc-defs.elc \
$(lisp)/progmodes/cc-engine.elc $(lisp)/progmodes/cc-mode.elc
# Makefile ends here.
......@@ -336,9 +336,11 @@ list."
"Reduce the function FUNCTION across SEQUENCE, starting with INITIAL-VALUE.
Return the result of calling FUNCTION with INITIAL-VALUE and the
first element of SEQUENCE, then calling FUNCTION with that result and
the second element of SEQUENCE, then with that result and the third
element of SEQUENCE, etc.
first element of SEQUENCE, then calling FUNCTION with that result
and the second element of SEQUENCE, then with that result and the
third element of SEQUENCE, etc. FUNCTION will be called with
INITIAL-VALUE (and then the accumulated value) as the first
argument, and the elements from SEQUENCE as the second argument.
If SEQUENCE is empty, return INITIAL-VALUE and FUNCTION is not called."
(if (seq-empty-p sequence)
......
......@@ -305,10 +305,11 @@ when you hit the end of the current node."
(defcustom Info-hide-note-references t
"If non-nil, hide the tag and section reference in *note and * menu items.
If value is non-nil but not `hide', also replaces the \"*note\" with \"see\".
If value is non-nil but not t or `hide', the reference section is still shown.
nil completely disables this feature. If this is non-nil, you might
want to set `Info-refill-paragraphs'."
If the value is t, the default, replace \"*note\" with \"see\".
If the value is `hide', remove \"*note\" without replacing it with anything.
If value is non-nil, but not t or `hide', the reference section is still shown.
nil completely disables this feature, leaving the original \"*note\" visible.
If this is non-nil, you may wish setting `Info-refill-paragraphs' non-nil."
:version "22.1"
:type '(choice (const :tag "No hiding" nil)
(const :tag "Replace tag and hide reference" t)
......
......@@ -776,44 +776,50 @@ The text is displayed for `minibuffer-message-clear-timeout' seconds
whichever comes first.
Unlike `minibuffer-message', this function is called automatically
via `set-message-function'."
(when (and (not noninteractive)
(window-live-p (active-minibuffer-window)))
(with-current-buffer (window-buffer (active-minibuffer-window))
(setq message (if (string-match-p "\\` *\\[.+\\]\\'" message)
;; Make sure we can put-text-property.
(copy-sequence message)
(concat " [" message "]")))
(unless (or (null minibuffer-message-properties)
;; Don't overwrite the face properties the caller has set
(text-properties-at 0 message))
(setq message (apply #'propertize message minibuffer-message-properties)))
(clear-minibuffer-message)
(let ((ovpos (minibuffer--message-overlay-pos)))
(setq minibuffer-message-overlay
(make-overlay ovpos ovpos nil t t)))
(unless (zerop (length message))
;; The current C cursor code doesn't know to use the overlay's
;; marker's stickiness to figure out whether to place the cursor
;; before or after the string, so let's spoon-feed it the pos.
(put-text-property 0 1 'cursor 1 message))
(overlay-put minibuffer-message-overlay 'after-string message)
;; Make sure the overlay with the message is displayed before
;; any other overlays in that position, in case they have
;; resize-mini-windows set to nil and the other overlay strings
;; are too long for the mini-window width. This makes sure the
;; temporary message will always be visible.
(overlay-put minibuffer-message-overlay 'priority 1100)
(when (numberp minibuffer-message-clear-timeout)
(setq minibuffer-message-timer
(run-with-timer minibuffer-message-clear-timeout nil
#'clear-minibuffer-message)))
;; Return `t' telling the caller that the message
;; was handled specially by this function.
t)))
(let* ((minibuf-window (active-minibuffer-window))
(minibuf-frame (and (window-live-p minibuf-window)
(window-frame minibuf-window))))
(when (and (not noninteractive)
(window-live-p minibuf-window)
(or (eq (window-frame) minibuf-frame)
(eq (frame-parameter minibuf-frame 'minibuffer) 'only)))
(with-current-buffer (window-buffer minibuf-window)
(setq message (if (string-match-p "\\` *\\[.+\\]\\'" message)
;; Make sure we can put-text-property.
(copy-sequence message)
(concat " [" message "]")))
(unless (or (null minibuffer-message-properties)
;; Don't overwrite the face properties the caller has set
(text-properties-at 0 message))
(setq message
(apply #'propertize message minibuffer-message-properties)))
(clear-minibuffer-message)
(let ((ovpos (minibuffer--message-overlay-pos)))
(setq minibuffer-message-overlay
(make-overlay ovpos ovpos nil t t)))
(unless (zerop (length message))
;; The current C cursor code doesn't know to use the overlay's
;; marker's stickiness to figure out whether to place the cursor
;; before or after the string, so let's spoon-feed it the pos.
(put-text-property 0 1 'cursor 1 message))
(overlay-put minibuffer-message-overlay 'after-string message)
;; Make sure the overlay with the message is displayed before
;; any other overlays in that position, in case they have
;; resize-mini-windows set to nil and the other overlay strings
;; are too long for the mini-window width. This makes sure the
;; temporary message will always be visible.
(overlay-put minibuffer-message-overlay 'priority 1100)
(when (numberp minibuffer-message-clear-timeout)
(setq minibuffer-message-timer
(run-with-timer minibuffer-message-clear-timeout nil
#'clear-minibuffer-message)))
;; Return `t' telling the caller that the message
;; was handled specially by this function.
t))))
(setq set-message-function 'set-minibuffer-message)
......
......@@ -1235,6 +1235,8 @@ have been gone since last remote command execution. A value of t
would require an immediate reread during filename completion, nil
means to use always cached values for the directory contents."
:type '(choice (const nil) (const t) integer))
(make-obsolete-variable
'tramp-completion-reread-directory-timeout 'remote-file-name-inhibit-cache "27.2")
;;; Internal Variables:
......
......@@ -5254,7 +5254,6 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
extra_info)));
}
#ifdef HAVE_WINDOW_SYSTEM
else if (f)
{
/* Return mouse pixel coordinates here. */
......@@ -5262,7 +5261,9 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
xret = XFIXNUM (x);
yret = XFIXNUM (y);
if (FRAME_LIVE_P (f)
#ifdef HAVE_WINDOW_SYSTEM
if (FRAME_WINDOW_P (f)
&& FRAME_LIVE_P (f)
&& FRAME_INTERNAL_BORDER_WIDTH (f) > 0
&& !NILP (get_frame_param (f, Qdrag_internal_border)))
{
......@@ -5271,8 +5272,8 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
posn = builtin_lisp_symbol (internal_border_parts[part]);
}
}
#endif
}
else
window_or_frame = Qnil;
......
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