Subject: 28.0.50; tab-bar-format with global mode string doesn't always remove global-mode-string

From: Philip Kaludercic <[email-masked]>
Date: Sun, 01 Aug 2021 12:55:38 +0000

When enabling tab-bar-mode with `tab-bar-format' set to

	'(tab-bar-format-global)

the global-mode-string is not always removed from mode-line-format, as
the code seems to intend. The main issue seems to be that the expression

        (member '(global-mode-string ("" global-mode-string " "))
                                 mode-line-misc-info)

(in tab-bar--define-keys) evaluates to nil, preventing the modification
from begin made. When I change this to

        (member '(global-mode-string ("" global-mode-string))
                                 mode-line-misc-info)

reflecting the default value of mode-line-misc-info, it works. 

I am uncertain if this is intentional, or if even 

        (assq 'global-mode-string mode-line-misc-info)

would do the job.

In GNU Emacs 28.0.50 (build 3, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw scroll bars)
 of 2021-07-27 built on icterid
Repository revision: fb27708f51fb0fd60cd00cd8ea7bfc9248eb0040
Repository branch: feature/rcirc-update
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)

Configured using:
 'configure 'CFLAGS=-O2 -march=native -mtune=native'
 PKG_CONFIG_PATH=/home/philip/.guix-profile/lib/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11
XDBE XIM XPM LUCID ZLIB

Important settings:
  value of $EMACSLOADPATH: 
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  bug-reference-prog-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  TeX-PDF-mode: t
  paredit-mode: t
  flymake-mode: t
  flyspell-mode: t
  outline-minor-mode: t
  rcirc-track-minor-mode: t
  display-time-mode: t
  winner-mode: t
  electric-pair-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  save-place-mode: t
  savehist-mode: t
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/philip/.config/emacs/elpa/transient-0.3.6/transient hides /home/philip/Code/src/emacs/lisp/transient

Features:
(shadow sort bbdb-message mail-extr avy dabbrev grep emacsbug
vc-annotate cus-start char-fold misearch multi-isearch goto-addr
magit-extras whitespace pulse color flymake-cc macrostep-c cmacexp
macrostep cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs rect delsel eieio-opt speedbar ezimage dframe
find-func shortdoc help-fns slime etags fileloop generator xref arc-mode
archive-mode pp hyperspec vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn
vc-cvs vc-rcs project mule-util vc-backup log-view vc-fossil vc
bug-reference face-remap magit-submodule magit-obsolete magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log magit-diff smerge-mode diff git-commit log-edit
message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader pcvs-util add-log magit-core
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process with-editor term ehelp eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-groups esh-util server magit-mode
transient magit-git magit-section benchmark magit-utils which-func imenu
ido dash time-stamp vc-git diff-mode vc-dispatcher preview reporter
desktop frameset tex-buf tex-fold reftex-dcr reftex-auc reftex
reftex-loaddefs reftex-vars font-latex latex latex-flymake tex-ispell
tex-style tex crm advice dbus xml texmathp tex-mode latexenc dired-aux
disp-table gnutls network-stream puny nsm rmc epa-file epa epg
epg-config cl-extra paredit checkdoc help-mode flymake-proc flymake
warnings thingatpt flyspell ispell noutline outline dired-x dired
dired-loaddefs rcirc easy-mmode rx time bbdb derived bbdb-site timezone
sendmail gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045
ietf-drums mail-utils mm-util mail-prsvr hippie-exp winner elec-pair
tramp-cache tramp-sh tramp tramp-loaddefs trampver tramp-integration
files-x tramp-compat shell pcomplete parse-time iso8601 time-date
ls-lisp format-spec recentf tree-widget wid-edit saveplace savehist
paren modus-operandi-theme modus-themes pcase edmacro kmacro holidays
hol-loaddefs cal-menu calendar cal-loaddefs cus-load setup load compile
text-property-search comint ansi-color ring autoload radix-tree lisp-mnt
tex-site slime-autoloads info package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util mailcap url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer 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
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 1010868 527900)
 (symbols 48 37763 166)
 (strings 32 150148 38890)
 (string-bytes 1 4799283)
 (vectors 16 75559)
 (vector-slots 8 829642 714359)
 (floats 8 483 1851)
 (intervals 56 44338 10461)
 (buffers 992 56))

-- 
	Philip K.