Subject: bug#59719: closed (Re: bug#59719: 29.0.60; emacs-news-mode does not adjust the width of the fringe to accommodate the outline icons)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 02 Dec 2022 07:56:01 +0000

Your bug report

#59719: 29.0.60; emacs-news-mode does not adjust the width of the fringe to accommodate the outline icons

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].

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

Subject: Re: bug#59719: 29.0.60; emacs-news-mode does not adjust the width of the fringe to accommodate the outline icons
From: Juri Linkov <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Fri, 02 Dec 2022 09:54:49 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

>> > Why not use string-pixel-width, and divide by what default-font-width
>> > returns?
>> 
>> Here is the complete tested fix:
>
> Thanks, LGTM.

So now pushed to emacs-29 and closed.

Subject: 29.0.60; emacs-news-mode does not adjust the width of the fringe to accommodate the outline icons
From: Kai Ma <[email-masked]>
To: [email-masked]
Date: Wed, 30 Nov 2022 17:10:40 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

The fringe is too small to accomodate the icons, but emacs-news-mode
does not adjust the width.  This is especially bad for the 'emoji'
icons.

Symbol icons:

Text icons:

Emoji icons:

Also reproducible on emacs -Q:

In GNU Emacs 29.0.60 (build 4, x86_64-apple-darwin22.1.0, NS
 appkit-2299.00 Version 13.0.1 (Build 22A400)) of 2022-11-29 built on
 Kais-MacBook.local
Repository revision: 067c65578e02034d7605f1dcaf6a6d0c4bbdbda3
Repository branch: emacs-29
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.0.1

Configured using:
 'configure --with-xwidgets --with-json --with-native-compilation'

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB

Important settings:
  value of $LC_ALL: zh_CN.utf-8
  value of $LANG: zh_CN.utf-8
  locale-coding-system: utf-8-unix

Major mode: NEWS

Minor modes in effect:
  async-bytecomp-package-mode: t
  telega-root-auto-fill-mode: t
  telega-active-locations-mode: t
  telega-patrons-mode: t
  outline-minor-mode: t
  global-wakatime-mode: t
  wakatime-mode: t
  popper-echo-mode: t
  popper-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  winner-mode: t
  winum-mode: t
  which-key-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  marginalia-mode: t
  vertico-mouse-mode: t
  vertico-mode: t
  projectile-mode: t
  keyfreq-autosave-mode: t
  keyfreq-mode: t
  rime-regexp-mode: t
  prescient-persist-mode: t
  global-ligature-mode: t
  ligature-mode: t
  ns-auto-titlebar-mode: t
  electric-pair-mode: t
  override-global-mode: t
  global-auto-revert-mode: t
  global-so-long-mode: t
  delete-selection-mode: t
  pixel-scroll-precision-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  button-mode: t

Features:
(shadow sort ecomplete mail-extr cl-print vc-hg vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs log-view pcvs-util vc jka-compr emacs-news-mode
ielm ido vterm face-remap term disp-table ehelp vterm-module term/xterm
xterm all-the-icons-dired dired-filter dired-hacks-utils dired-x
all-the-icons-ibuffer all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons dabbrev pulse consult-xref helpful cc-langs trace
info-look elisp-refs ffap helm-command helm-elisp helm-eval edebug debug
backtrace helm-info helm-mode helm-misc helm-files image-dired
image-dired-tags image-dired-external image-dired-util helm-buffers
helm-occur helm-tags helm-locate helm-types misearch multi-isearch
tramp-archive tramp-gvfs helm-swoop cape consult-vertico consult
compat-28 bookmark helm-grep helm-regexp helm-utils helm-help helm
helm-global-bindings helm-easymenu helm-core async-bytecomp helm-source
helm-multi-match helm-lib helm-swoop-autoloads loaddefs-gen mm-archive
url-cache vc-git diff-mode vc-dispatcher finder-inf kinsoku thai-util
thai-word telega-obsolete telega telega-tdlib-events telega-webpage
visual-fill-column telega-match telega-root telega-info telega-chat
telega-modes image-mode exif telega-company telega-emoji telega-user
telega-notifications notifications dbus telega-voip telega-msg
telega-tme telega-sticker telega-i18n telega-vvnote bindat telega-ffplay
telega-sort telega-filter telega-ins telega-folders telega-inline
telega-util telega-media telega-tdlib rainbow-identifiers org-noter
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
org-agenda ox-html table ox-ascii ox-publish ox org-download org-element
avl-tree generator org-attach org-id org-refile url-http url-auth url-gw
async org-tempo tempo ob-rust ob-dot ob-haskell ob-python python treesit
ob-sqlite ob-sql ob-C ccls ccls-member-hierarchy
ccls-inheritance-hierarchy ccls-call-hierarchy ccls-tree ccls-code-lens
ccls-semantic-highlight ccls-common lsp-mode lsp-protocol xref spinner
network-stream nsm markdown-mode lv inline imenu ht f f-shortdoc
shortdoc s cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-src ob-comint org-pcomplete org-list
org-faces org-entities noutline outline org-version ob-emacs-lisp
ob-core ob-eval org-table oc-basic bibtex ol org-keys oc org-compat
org-macs org-loaddefs cal-menu calendar cal-loaddefs dired-aux ewoc
telega-server telega-core cursor-sensor telega-customize emacsbug
message yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa epg
rfc6068 epg-config mailabbrev gmm-utils mailheader sendmail find-func
vertico-directory wakatime-mode autoinsert popper-echo popper hideshow
hl-todo rainbow-delimiters display-line-numbers tramp-cache time-stamp
tramp-sh tramp tramp-loaddefs trampver tramp-integration cus-edit pp
cus-start files-x tramp-compat shell pcomplete parse-time iso8601
ls-lisp format-spec recentf tree-widget yasnippet winner winum which-key
corfu-popupinfo kind-icon svg-lib color svg dom xml corfu-prescient
corfu marginalia vertico-mouse vertico projectile project grep compile
comint ansi-osc ansi-color ibuf-ext ibuffer ibuffer-loaddefs thingatpt
pcase keyfreq prelude-erc prelude-apps rime-regexp rime rime-predicates
xdg posframe popup dash prelude-mail gnus nnheader gnus-util
text-property-search mail-utils range wid-edit prelude-os prelude-help
prelude-lang-zig prelude-lang-web prelude-lang-agda agda2
prelude-lang-haskell derived prelude-lang-js prelude-lang-ml
prelude-lang-coq prelude-lang-rust prelude-lang-python prelude-lang-cc
prelude-lang-lisp prelude-prog prelude-blog prelude-org prelude-tex
prelude-git prelude-dired prelude-chinese prelude-project
prelude-ibuffer prelude-completion orderless prescient char-fold
prelude-search prelude-workspace prelude-ui ligature ns-auto-titlebar
prelude-core elec-pair use-package-diminish diminish
exec-path-from-shell use-package-ensure undohist edmacro kmacro
use-package-bind-key bind-key easy-mmode autorevert filenotify so-long
delsel no-littering compat compat-macs prelude-benchmark time-date comp
comp-cstr warnings icons advice prelude-common prelude-package
quelpa-use-package cl-extra use-package-core quelpa mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr lisp-mnt monokai-theme pixel-scroll cua-base cus-load
prelude-loaddefs helpful-autoloads geiser-guile-autoloads
eyebrowse-autoloads carbon-now-sh-autoloads benchmark-init-autoloads
company-coq-autoloads elisp-demos-autoloads vertico-prescient-autoloads
kind-icon-autoloads w3m-autoloads pinyinlib-autoloads
lsp-pyright-autoloads autothemer-autoloads org-roam-ui-autoloads
elisp-refs-autoloads cdlatex-autoloads ns-auto-titlebar-autoloads
rime-autoloads highlight-indent-guides-autoloads paredit-autoloads
vterm-autoloads treemacs-all-the-icons-autoloads clhs-autoloads
popper-autoloads merlin-autoloads rainbow-delimiters-autoloads
org-roam-bibtex-autoloads rustic-autoloads xterm-color-autoloads
rust-mode-autoloads yaml-mode-autoloads multiple-cursors-autoloads
websocket-autoloads dired-filter-autoloads auctex-autoloads tex-site
company-math-autoloads zig-mode-autoloads ivy-autoloads
debbugs-autoloads highlight-indentation-autoloads
git-timemachine-autoloads org-noter-autoloads rotate-autoloads
vundo-autoloads diredfl-autoloads embark-consult-autoloads
embark-autoloads nix-mode-autoloads telega-autoloads
rainbow-identifiers-autoloads helm-bibtex-autoloads helm-autoloads
helm-core-autoloads org-download-autoloads async-autoloads
wakatime-mode-autoloads deft-autoloads cmake-mode-autoloads
all-the-icons-dired-autoloads editorconfig-autoloads
python-mode-autoloads dash-at-point-autoloads cape-autoloads
elfeed-autoloads js2-mode-autoloads ripgrep-autoloads
dumb-jump-autoloads rainbow-mode-autoloads blink-search-autoloads
utop-autoloads tuareg-autoloads rx caml-autoloads modus-themes-autoloads
simple-httpd-autoloads company-autoloads which-key-autoloads
org-modern-autoloads quickrun-autoloads geiser-racket-autoloads
geiser-impl help-fns radix-tree help-mode geiser-custom geiser-base ring
geiser-autoloads project-autoloads org-ref-autoloads ox-pandoc-autoloads
citeproc-autoloads queue-autoloads bibtex-completion-autoloads
htmlize-autoloads citre-autoloads speed-type-autoloads
persp-mode-autoloads ccls-autoloads expand-region-autoloads
modern-cpp-font-lock-autoloads cnfonts-autoloads ob-rust-autoloads
biblio-autoloads biblio-core-autoloads org-latex-impatient-autoloads
hyperbole-autoloads undohist-autoloads alert-autoloads gntp-autoloads
string-inflection-autoloads catppuccin-theme-autoloads keyfreq-autoloads
forge-autoloads magit-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads closql-autoloads
ormolu-autoloads reformatter-autoloads diminish-autoloads
dired-hacks-utils-autoloads wgrep-autoloads diredful-autoloads
meow-autoloads org-appear-autoloads orderless-autoloads
nix-sandbox-autoloads web-mode-autoloads org-roam-autoloads
magit-section-autoloads emacsql-sqlite-autoloads
typescript-mode-autoloads flycheck-haskell-autoloads
haskell-mode-autoloads flycheck-autoloads pkg-info-autoloads
epl-autoloads xref-autoloads power-mode-autoloads
google-translate-autoloads popup-autoloads ghub-autoloads
treepy-autoloads quelpa-use-package-autoloads use-package-autoloads
bind-key-autoloads quelpa-autoloads log4e-autoloads vertico-autoloads
parsebib-autoloads treemacs-projectile-autoloads projectile-autoloads
valign-autoloads visual-fill-column-autoloads smartparens-autoloads
ef-themes-autoloads yasnippet-autoloads corfu-prescient-autoloads
corfu-autoloads hl-todo-autoloads dockerfile-mode-autoloads
dune-autoloads all-the-icons-ibuffer-autoloads all-the-icons-autoloads
math-symbol-lists-autoloads sly-autoloads color-rg-autoloads
typit-autoloads mmt-autoloads go-translate-autoloads nov-autoloads
esxml-autoloads kv-autoloads proof-general-autoloads proof-site
proof-autoloads indent-guide-autoloads pdf-tools-autoloads
tablist-autoloads lsp-ui-autoloads no-littering-autoloads
svg-lib-autoloads doom-themes-autoloads ligature-autoloads
minimap-autoloads prescient-autoloads winum-autoloads
marginalia-autoloads consult-autoloads compat-autoloads
clojure-mode-autoloads emacsql-autoloads dap-mode-autoloads
lsp-docker-autoloads yaml-autoloads lsp-treemacs-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads hydra-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads bui-autoloads
lsp-mode-autoloads lv-autoloads markdown-mode-autoloads
spinner-autoloads ht-autoloads f-autoloads s-autoloads info
dash-autoloads exec-path-from-shell-autoloads monokai-theme-autoloads
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-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 nadvice seq simple cl-generic
indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads xwidget-internal dbusbind
kqueue cocoa ns lcms2 multi-tty make-network-process native-compile
emacs)

Memory information:
((conses 16 2641300 697124)
 (symbols 48 62723 10)
 (strings 32 973977 73389)
 (string-bytes 1 47062229)
 (vectors 16 144189)
 (vector-slots 8 3229853 957715)
 (floats 8 83592 5157)
 (intervals 56 19349 30652)
 (buffers 992 44))