From cff9c8bc001e9ebd7b9cb54b981ddc675726c9a5 Mon Sep 17 00:00:00 2001 From: Augusto Stoffel Date: Thu, 28 May 2026 11:43:59 +0200 Subject: [PATCH 1/3] Improve prompting for mail sending by by 'report-emacs-bug' * lisp/mail/emacsbug.el (report-emacs-bug-hook): Don't ask about mail sending options if 'message-server-alist' is set. (Bug#81176) --- lisp/mail/emacsbug.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index f4a032c647d..d69fd106e5c 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el @@ -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))) From e33e9f7e85a992b0b8df7677959ff07814c876a2 Mon Sep 17 00:00:00 2001 From: Andrea Alberti Date: Sun, 31 May 2026 23:11:02 +0200 Subject: [PATCH 2/3] Document 'margin' face as base for margin display strings (Bug#80693) * doc/lispref/display.texi (Displaying Faces): Note that the underlying-text rule does not apply to strings displayed in the display margins, and reword the margin-face bullet to describe 'margin' as the base. (Basic Faces): Note that the 'margin' face also provides the base attributes for strings displayed in the margins. (Display Margins): Drop a sentence that restated the preceding one about unspecified attributes inheriting from 'margin'. * etc/NEWS: Document the change for margin strings. Suggested by F. Jason Park . --- doc/lispref/display.texi | 24 ++++++++++++------------ etc/NEWS | 6 ++++++ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 09022883f71..263addd5a41 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -3535,13 +3535,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. 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 @code{margin}. @item If any given attribute has not been specified during the preceding @@ -3825,7 +3826,9 @@ The basic face used for the text cursor. @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. @item mouse The basic face used for displaying mouse-sensitive text when the mouse @@ -5921,12 +5924,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 diff --git a/etc/NEWS b/etc/NEWS index 4c552389a8a..55b06a1cf93 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -95,6 +95,12 @@ 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. +Margin strings that do not fully specify their face now inherit the +unspecified attributes from the 'margin' face. If your code relied on +the face of the underlying buffer text to specify the face attributes of +strings displayed in the margin, you must now set their face on the margin +string itself via 'propertize'. + +++ ** 'prettify-symbols-mode' attempts to ignore undisplayable characters. Previously, such characters would be rendered as, e.g., white boxes. From a24b081602117de9853de342634c55780abffee4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 6 Jun 2026 12:06:42 +0300 Subject: [PATCH 3/3] ; Fix last change * etc/NEWS: * doc/lispref/frames.texi (Font and Color Parameters): * doc/lispref/display.texi (Displaying Faces, Basic Faces): Improve indexing of faces and wording of the description of the 'margin' face and its implications. --- doc/lispref/display.texi | 25 ++++++++++++++++++++++--- doc/lispref/frames.texi | 3 +-- etc/NEWS | 14 ++++++++------ 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 263addd5a41..49b09f6583d 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -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,14 +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. This does not apply to strings displayed in the display -margins, which use the @code{margin} face as the base instead +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, Emacs uses the @code{margin} face as the base, so any attribute not specified by the -string's own face is taken from @code{margin}. +string's own face is taken from the @code{margin} face. @item If any given attribute has not been specified during the preceding @@ -3805,24 +3806,34 @@ 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 @@ -3830,6 +3841,7 @@ 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. @@ -3845,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,, @@ -3860,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. diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index c50619a2de0..a3be6cc2bfc 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -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 diff --git a/etc/NEWS b/etc/NEWS index 55b06a1cf93..0aaeb547f06 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -93,13 +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. -Margin strings that do not fully specify their face now inherit the -unspecified attributes from the 'margin' face. If your code relied on -the face of the underlying buffer text to specify the face attributes of -strings displayed in the margin, you must now set their face on the margin -string itself via 'propertize'. +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.