From: Lars Ingebrigtsen Date: Fri, 23 Jul 2021 12:40:53 +0000 (+0200) Subject: 'global-mode-string' elements should have a space at the end X-Git-Tag: emacs-28.0.90~1744 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bb68faed02d6c0eef48923b4ef4e4eda5e6486ba;p=emacs.git 'global-mode-string' elements should have a space at the end * lisp/time.el (display-time-string-forms): * lisp/battery.el (battery-mode-line-format): Add a space to the end (bug#30056). * lisp/bindings.el (mode-line-misc-info): Remove space from end. This will make the default format have one space before the line-of-dashes (instead of two) on terminals. --- diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 72149488506..b0dc0ff9166 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -2287,11 +2287,14 @@ enabled separately in each buffer. @defvar global-mode-string This variable holds a mode line construct that, by default, appears in -the mode line just after the @code{which-function-mode} minor mode if set, -else after @code{mode-line-modes}. The command @code{display-time} sets +the mode line just after the @code{which-function-mode} minor mode if +set, else after @code{mode-line-modes}. Elements that are added to +this construct should normally end in a space (to ensure that +consecutive @code{global-mode-string} elements display properly). For +instance, the command @code{display-time} sets @code{global-mode-string} to refer to the variable -@code{display-time-string}, which holds a string containing the time and -load information. +@code{display-time-string}, which holds a string containing the time +and load information. The @samp{%M} construct substitutes the value of @code{global-mode-string}, but that is obsolete, since the variable is diff --git a/etc/NEWS b/etc/NEWS index 95218faa1b6..759f7cabaae 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2505,6 +2505,11 @@ If non-nil, repeating spaces are compressed into a single space. If 'long', this is only done when the mode line is longer than the current window width (in characters). ++++ +*** 'global-mode-string' constructs should end with a space. +This was previously not formalized, which led to combinations of modes +displaying data "smushed together" on the mode line. + +++ *** New command 'submit-emacs-patch'. This works like 'report-emacs-bug', but is more geared towards sending diff --git a/lisp/battery.el b/lisp/battery.el index 59f6987ad16..bf864c2bd4a 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -161,9 +161,9 @@ The full `format-spec' formatting syntax is supported." (defcustom battery-mode-line-format (cond ((eq battery-status-function #'battery-linux-proc-acpi) - "[%b%p%%,%d°C]") + "[%b%p%%,%d°C] ") (battery-status-function - "[%b%p%%]")) + "[%b%p%%] ")) "Control string formatting the string to display in the mode line. Ordinary characters in the control string are printed as-is, while conversion specifications introduced by a `%' character in the control diff --git a/lisp/bindings.el b/lisp/bindings.el index 06ba5d06e72..4b194c0c015 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -580,7 +580,7 @@ Major modes that edit things other than ordinary files may change this (put 'mode-line-buffer-identification 'risky-local-variable t) (defvar mode-line-misc-info - '((global-mode-string ("" global-mode-string " "))) + '((global-mode-string ("" global-mode-string))) "Mode line construct for miscellaneous information. By default, this shows the information specified by `global-mode-string'.") (put 'mode-line-misc-info 'risky-local-variable t) diff --git a/lisp/time.el b/lisp/time.el index fd53f634c69..9f25f99a149 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -205,7 +205,8 @@ depend on `display-time-day-and-date' and `display-time-24hr-format'." 'mouse-face 'mode-line-highlight 'local-map (make-mode-line-mouse-map 'mouse-2 read-mail-command))) - "")) + "") + " ") "List of expressions governing display of the time in the mode line. For most purposes, you can control the time format using `display-time-format' which is a more standard interface.