Subject: bug#39265: closed (Re: bug#39265: 26.3; format-mode-line with FACE argument)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 10 Feb 2020 15:37:03 +0000

Your bug report

#39265: 26.3; format-mode-line with FACE argument

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
39265: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39265
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#39265: 26.3; format-mode-line with FACE argument
From: Stefan Kangas <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Mon, 10 Feb 2020 16:36:08 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:

> tags 39265 notabug
> thanks
>
>> From: [email-masked]
>> Date: Sat, 25 Jan 2020 00:05:25 +0900
>> 
>> 
>> #'format-mode-line assumes all characters of a string have a same 'face
>> property value and checks only the first character.
>
> Yes.  The reason is performance: the mode line is redrawn very
> frequently, basically, after every command.
>
> This is not a bug, this is the intended behavior.

I'm consequently also closing this bug report.

Best regards,
Stefan Kangas

Subject: 26.3; format-mode-line with FACE argument
From: [email-masked]
To: [email-masked]
Date: Sat, 25 Jan 2020 00:05:25 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

#'format-mode-line assumes all characters of a string have a same 'face
property value and checks only the first character.

  (format-mode-line (concat "A" (propertize "XYZ" 'face 'region)) 'highlight)
  => #("AXYZ" 0 1 (face highlight) 1 4 (face highlight))

#'format-mode-line merges the 'face property value of the first
character of a string with FACE argument. It is not ducumented at all.

  (format-mode-line (propertize "ABC" 'face 'region) 'highlight)
  => #("ABC" 0 3 (face (region highlight)))

#'format-mode-line called with FACE=t should use 'mode-line or
'mode-line-inactive instead of 't, but it treats 't as a face.

  (format-mode-line "ABC" t)
  => #("ABC" 0 3 (face t))

In GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)
 of 2019-08-29 built on CIRROCUMULUS
Repository revision: 96dd0196c28bc36779584e47fffcca433c9309cd
Windowing system distributor 'Microsoft Corp.', version 10.0.18363
Recent messages:
Mark set
Undo!

Configured using:
 'configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS THREADS LCMS2

Important settings:
  value of $LANG: JPN
  locale-coding-system: cp932

Major mode: Lisp Interaction

Minor modes in effect:
  diff-auto-refine-mode: t
  display-time-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(ispell rect tabify term/bobcat descr-text mailclient browse-url
cus-edit cus-start cus-load wid-edit info crm eieio-opt speedbar
sb-image ezimage dframe shadow emacsbug network-stream nsm starttls tls
gnutls mailalias smtpmail auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs sendmail sort mail-extr message rmc puny dired
dired-loaddefs format-spec rfc822 mml mml-sec password-cache epa derived
epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader compare-w
diff-mode easy-mmode find-func cl-extra pp ibuf-ext ibuffer
ibuffer-loaddefs seq thingatpt help-fns radix-tree misearch
multi-isearch help-mode easymenu cl-print byte-opt gv bytecomp
byte-compile cl-loaddefs cl-lib cconv debug time elec-pair time-date
mule-util japan-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win
w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads w32notify w32 lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 213588 78115)
 (symbols 48 51769 1)
 (miscs 40 79 607)
 (strings 32 121478 3731)
 (string-bytes 1 2928298)
 (vectors 16 31694)
 (vector-slots 8 1265739 31616)
 (floats 8 75 438)
 (intervals 56 15946 2009)
 (buffers 992 19))