Merge from origin/emacs-31

a24b081602 ; Fix last change
e33e9f7e85 Document 'margin' face as base for margin display strings...
cff9c8bc00 Improve prompting for mail sending by by 'report-emacs-bug'

# Conflicts:
#	etc/NEWS
This commit is contained in:
Eli Zaretskii 2026-06-06 06:19:09 -04:00
commit 4d8fb1623c
4 changed files with 42 additions and 15 deletions

View file

@ -3527,6 +3527,7 @@ non-selected window, Emacs applies the @code{mode-line-inactive} face.
For a header line, Emacs applies the @code{header-line} face.
For a tab line, Emacs applies the @code{tab-line} face.
@cindex @code{margin} face, and face merging
@item
If the text comes from an overlay string via @code{before-string} or
@code{after-string} properties (@pxref{Overlay Properties}), or from a
@ -3535,13 +3536,14 @@ contain a @code{face} or @code{mouse-face} property, or these
properties leave some face attributes undefined, but the buffer text
affected by the overlay/display property does define a face or those
attributes, Emacs applies the face attributes of the ``underlying''
buffer text. Note that this is so even if the overlay or display
string is displayed in the display margins (@pxref{Display Margins}).
buffer text. However, this does not apply to strings displayed in the
display margins, which use the @code{margin} face as the base instead
(@pxref{Display Margins}).
@item
If the text is to be shown in the display margins, and any given
attribute has not been specified during the preceding steps, Emacs
applies the attribute of the @code{margin} face.
If the text is to be shown in the display margins, Emacs uses the
@code{margin} face as the base, so any attribute not specified by the
string's own face is taken from the @code{margin} face.
@item
If any given attribute has not been specified during the preceding
@ -3804,29 +3806,42 @@ The default face, whose attributes are all specified. All other faces
implicitly inherit from it: any unspecified attribute defaults to the
attribute on this face (@pxref{Face Attributes}).
@vindex mode-line @r{faces}
@item mode-line-active
@itemx mode-line-inactive
@itemx header-line
@itemx tab-line
Basic faces used for the mode line, header line, and tab line.
@vindex tool-bar @r{face}
@item tool-bar
@vindex tab-bar @r{face}
@itemx tab-bar
@vindex fringe @r{face}
@itemx fringe
@vindex scroll-bar @r{face}
@itemx scroll-bar
@vindex window-divider @r{face}
@itemx window-divider
@vindex border @r{face}
@itemx border
@vindex child-frame-border @r{face}
@itemx child-frame-border
Basic faces used for the corresponding decorations of GUI frames.
@vindex cursor @r{face}
@item cursor
The basic face used for the text cursor.
@vindex margin @r{face}
@item margin
The basic face used for window margins, both on the left and on the
right. It is commonly used to customize the background of the empty
areas of the margins. It inherits from the @code{default} face.
areas of the margins, and it also provides the base attributes for
strings displayed in the margins (@pxref{Display Margins}). It
inherits from the @code{default} face.
@vindex mouse @r{face}
@item mouse
The basic face used for displaying mouse-sensitive text when the mouse
pointer is on that text.
@ -3842,6 +3857,7 @@ These have the attributes indicated by their names (e.g., @code{bold}
has a bold @code{:weight} attribute), with all other attributes
unspecified (and so given by @code{default}).
@vindex shadow @r{face}
@item shadow
For dimmed-out text. For example, it is used for the ignored
part of a filename in the minibuffer (@pxref{Minibuffer File,,
@ -3857,15 +3873,21 @@ For stretches of text that should temporarily stand out. For example,
it is commonly assigned to the @code{mouse-face} property for cursor
highlighting (@pxref{Special Properties}).
@vindex match @r{face}
@item match
@vindex isearch @r{face}
@itemx isearch
@vindex lazy-highlight @r{face}
@itemx lazy-highlight
For text matching (respectively) permanent search matches, interactive
search matches, and lazy highlighting other matches than the current
interactive one.
@vindex error @r{face}
@item error
@vindex warning @r{face}
@itemx warning
@vindex success @r{face}
@itemx success
For text concerning errors, warnings, or successes. For example,
these are used for messages in @file{*Compilation*} buffers.
@ -5921,12 +5943,9 @@ the before-string.
Note that if the string to be displayed in the margin doesn't fully
specify its face, the nonspecified attributes are inherited from the
@code{margin} face (@pxref{Basic Faces}). The face merging mechanism
ensures that the margin background remains consistent when margin
annotations specify only a foreground color. If you want a margin
string to have a specific appearance independent of the @code{margin}
face, make sure the string has a face specifying all required
attributes.
@code{margin} face (@pxref{Basic Faces}). If you want a margin string
to have a specific appearance independent of the @code{margin} face,
make sure the string has a face specifying all required attributes.
Before the display margins can display anything, you must give
them a nonzero width. The usual way to do that is to set these

View file

@ -2694,10 +2694,9 @@ The color to use for the background of characters. It is equivalent to
the @code{:background} attribute of the @code{default} face.
@vindex mouse-color@r{, a frame parameter}
@vindex mouse@r{, a face}
@item mouse-color
The color for the mouse pointer. It is equivalent to the @code{:background}
attribute of the @code{mouse} face.
attribute of the @code{mouse} face (@pxref{Basic Faces}).
@vindex cursor-color@r{, a frame parameter}
@item cursor-color

View file

@ -93,7 +93,15 @@ below the line, which allows for vertically centering text.
A new basic face 'margin' is used by default for text displayed in the
left and right margin areas, which are used by various packages for
per-line annotations. Its background defaults to the frame default, so
existing behavior is unchanged for users who do not customize it.
existing behavior is unchanged for users who do not customize this new
face.
Display strings shown in the margins now inherit the unspecified face
attributes from the 'margin' face, if the string itself does not fully
specify its face. If your code relied on the face of the underlying
buffer text to serve as default for the unspecified face attributes of
strings displayed in the margin, you must now set those face attributes
in the margin string itself via 'propertize'.
+++
** 'prettify-symbols-mode' attempts to ignore undisplayable characters.

View file

@ -473,6 +473,7 @@ and send the mail again%s."
;; questions about From header validity if the user is going to
;; use mailclient, anyway.
(when (or (and (derived-mode-p 'message-mode)
(not message-server-alist)
(eq (message-default-send-mail-function) 'sendmail-query-once))
(and (not (derived-mode-p 'message-mode))
(eq send-mail-function 'sendmail-query-once)))