Subject: bug#69920: closed (Re: bug#69920: 29.2; gnus: article-mode: Toggling MIME inline attachment previews adds superfluous newlines)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 22 Apr 2024 14:59:04 +0000

Your bug report

#69920: 29.2; gnus: article-mode: Toggling MIME inline attachment previews adds superfluous newlines

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

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

Subject: Re: bug#69920: 29.2; gnus: article-mode: Toggling MIME inline attachment previews adds superfluous newlines
From: Eric Abrahamsen <[email-masked]>
To: Alcor <[email-masked]>
Cc: Eli Zaretskii <[email-masked]>, [email-masked]
Date: Mon, 22 Apr 2024 07:58:02 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Alcor <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> I also prefer #2, mostly because the other `mm-inline-*' functions here
>> all ensure that inlined content ends with a newline, and even if there's
>> no immediate consequence to not having it, I'd prefer the consistency.
>> Alcor, would you be willing to update your patch?
>
> Hello Eric, Eli –
>
> Attached is an updated patch adjusting the `delete-region' call in the
> undisplayer to account for the additional newline, as discussed earlier.
>
> I have tested this change on Emacs 29.3 (Linux/GTK) with multiple
> image/png attachments and can confirm it works.

In it goes -- thanks a lot.

Eric

Subject: 29.2; gnus: article-mode: Toggling MIME inline attachment previews adds superfluous newlines
From: Alcor <[email-masked]>
To: [email-masked]
Date: Wed, 20 Mar 2024 18:59:36 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

1. Receive an E-Mail message with at least two image attachments (I
tried with two image/png files, sent via SMTP and read via IMAP).

2. Go into the gnus summary buffer and view the received message/article.

3. In the "Attachments: ..." line, click on the attachment to toggle the
inline preview.

4. Click on the attachment button again to hide the inline preview.

5. Repeat steps 3-4 a number of times (e.g. 10-20 times).

6. Observe as newlines keep getting inserted and accumulate under the
preview.

Additionally, the following can be observed:
- Overlays are added to the attachment button, but are never cleaned up
(can be checked with `describe-char' with point on the button).

- If there is more than 1 inline-previewable attachment, clicking on the
button for attachment #1, then #2, then #1, and #2 in that order breaks
the preview state (the inline previews can no longer be hidden). This
may be unrelated, however (please advise if a separate bug should be
opened for this).

In GNU Emacs 29.2 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.20,
 cairo version 1.16.0) of 2024-03-13 built on lcy02-amd64-051
Repository revision: 900dc1b4bf3011e685a1ec7d7ce4dcd0262ec880
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12201001
System Description: Ubuntu 22.04.4 LTS

Configured using:
 'configure --prefix=/snap/emacs/current/usr --with-x-toolkit=gtk3
 --without-xaw3d --with-modules --with-cairo
 --with-native-compilation=aot --without-pgtk --with-xinput2
 --with-tree-sitter --with-json
 'CFLAGS=-isystem/build/emacs/parts/emacs/install/usr/include
 -isystem/build/emacs/parts/emacs/install/usr/include/x86_64-linux-gnu
 -isystem/build/emacs/stage/usr/include -O2'
 'CPPFLAGS=-isystem/build/emacs/parts/emacs/install/usr/include
 -isystem/build/emacs/parts/emacs/install/usr/include/x86_64-linux-gnu
 -isystem/build/emacs/stage/usr/include'
 'LDFLAGS=-L/build/emacs/parts/emacs/install/lib
 -L/build/emacs/parts/emacs/install/usr/lib
 -L/build/emacs/parts/emacs/install/lib/x86_64-linux-gnu
 -L/build/emacs/parts/emacs/install/usr/lib/x86_64-linux-gnu
 -L/build/emacs/stage/usr/lib''

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

Important settings:
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Article

Minor modes in effect:
  shell-dirtrack-mode: t
  erc-ring-mode: t
  erc-notifications-mode: t
  erc-netsplit-mode: t
  erc-menu-mode: t
  erc-list-mode: t
  erc-irccontrols-mode: t
  erc-keep-place-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-scrolltobottom-mode: t
  erc-imenu-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-bufbar-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-autojoin-mode: t
  erc-autoaway-mode: t
  recentf-mode: t
  pixel-scroll-precision-mode: t
  minibuffer-depth-indicate-mode: t
  global-whitespace-mode: t
  global-goto-address-mode: t
  goto-address-mode: t
  global-auto-revert-mode: t
  fido-vertical-mode: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  fido-mode: t
  erc-networks-mode: t
  desktop-save-mode: t
  windmove-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Features:
(shadow emacsbug misearch multi-isearch qp descr-text elec-pair
mh-buffers mh-loaddefs gnus-registry registry eieio-base rmailsum rmail
gnus-salt gnus-topic gnus-uu yenc gnus-vm shortdoc help-fns radix-tree
mailalias smtpmail smerge-mode diff diff-mode sort smiley gnus-cite
mm-archive mail-extr textsec uni-scripts idna-mapping ucs-normalize
uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml nndraft nnmh
nnfolder utf-7 rfc2104 network-stream nsm gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache
display-line-numbers org-element org-persist org-id org-refile avl-tree
generator oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc
ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime
gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group
gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7
nnoo gnus-spec gnus-int gnus-range message yank-media puny rfc822 mml
mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win ol-docview
doc-view jka-compr image-mode exif dired dired-loaddefs ol-bibtex bibtex
ol-bbdb ol-w3m ol-doi org-link-doi org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list
org-footnote org-faces org-entities noutline outline ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version
org-compat org-macs tramp-cache time-stamp tramp-sh tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell parse-time iso8601
disp-table erc-ring erc-desktop-notifications notifications dbus xml
erc-nicks color erc-netsplit erc-menu erc-list erc-goodies erc-imenu
imenu erc-pcomplete pcomplete comint ansi-osc ansi-color erc-button
erc-fill erc-stamp erc-status-sidebar erc-track erc-match erc-join
erc-autoaway leuven-dark-theme recentf tree-widget pixel-scroll cua-base
ring mb-depth whitespace goto-addr thingatpt autorevert filenotify
icomplete erc derived format-spec erc-backend erc-networks easy-mmode
erc-common inline erc-compat pcase compat erc-loaddefs desktop frameset
sendmail rfc2047 rfc2045 ietf-drums gnus nnheader gnus-util
text-property-search time-date mail-utils range mm-util mail-prsvr
cus-edit pp cus-load wid-edit windmove xdg site-start comp comp-cstr
warnings icons rx cl-extra help-mode erc-autoloads info compat-autoloads
markdown-mode-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/x-win x-win term/common-win x-dnd 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 dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 735396 84127)
 (symbols 48 46838 24)
 (strings 32 190158 4181)
 (string-bytes 1 5259546)
 (vectors 16 82583)
 (vector-slots 8 2226749 106897)
 (floats 8 679 1292)
 (intervals 56 3126 636)
 (buffers 984 33))