GNU bug report logs - #61189
29.0.60; Strange log-edit-mode M-q bug introduced in 27.1

Previous Next

Package: emacs;

Reported by: Eric Gillespie <epg <at> pretzelnet.org>

Date: Mon, 30 Jan 2023 22:53:01 UTC

Severity: normal

Found in version 29.0.60

To reply to this bug, email your comments to 61189 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#61189; Package emacs. (Mon, 30 Jan 2023 22:53:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eric Gillespie <epg <at> pretzelnet.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 30 Jan 2023 22:53:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eric Gillespie <epg <at> pretzelnet.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.60; Strange log-edit-mode M-q bug introduced in 27.1
Date: Mon, 30 Jan 2023 16:52:01 -0600
It's an old bug, but it requires such a specific kind of log
message to trigger that it took me until a few months ago to
finally hit it!

To reproduce:
0. open modified file under version control
1. C-x v v
2. Enter the following two-line message (i.e. replace "Summary:" and the rest):
bork bork bork bork bork bork bork bork bork bork bork bork bork
bork (e.g. bork) bork bork bork bork bork bork bork bork
3. M-q
4. M-q

(I have run with (setq log-edit-hook '(log-edit-show-files)) for a long time
and that's how I encountered the bug.)

Expected:
First M-q fills the paragraph to 70 columns.
Second does nothing.

Actual:
First M-q fills the paragraph to 70 columns.
Second moves one bork back from line one to line two, adds a colon, and
deletes the sapce before the opening parenthesis, resulting in:

bork bork bork bork bork bork bork bork bork bork bork bork bork
bork:(e.g. bork) bork bork bork bork bork bork bork bork

Bug introduced in commit 01661f33c11654d1fe5fe1013332db2500b7f449.



In GNU Emacs 29.0.60 (build 3, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.16.0) of 2023-01-30 built on dogato
Repository revision: 86b03046c0097aa7bd342efe9b9fde711ed81755
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12003000
System Description: openSUSE Leap 15.4

Configured using:
 'configure -C --prefix=/home/epg/.local --disable-silent-rules
 --without-libsystemd --without-xft --without-m17n-flt
 --without-toolkit-scroll-bars --without-gpm --without-dbus
 --without-gsettings --without-selinux --without-compress-install
 --with-x --with-tree-sitter
 TREE_SITTER_CFLAGS=-I/home/epg/src/tree-sitter/tree-sitter/lib/include
 TREE_SITTER_LIBS=/home/epg/src/tree-sitter/tree-sitter/libtree-sitter.a
 CC=gcc-11'

Configured features:
CAIRO FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG JSON LIBXML2 MODULES
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM LUCID ZLIB

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

Major mode: Org

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-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
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sh-script smie treesit executable vc-git
diff-mode easy-mmode vc-dispatcher org-element org-persist org-id
org-refile avl-tree generator oc-basic cl-extra help-mode ol-eww eww xdg
url-queue thingatpt 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 browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util url-parse auth-source cl-seq
eieio eieio-core cl-macs json map byte-opt gv bytecomp byte-compile
url-vars gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud
nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int
gnus-range message sendmail mailcap yank-media puny rfc822 mml mml-sec
password-cache epa derived epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus-win gnus nnheader gnus-util
text-property-search mail-utils range mm-util mail-prsvr wid-edit
ol-docview doc-view filenotify jka-compr image-mode exif dired
dired-loaddefs ol-bibtex bibtex iso8601 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 pcomplete comint ansi-osc ansi-color
ring org-list org-footnote org-faces org-entities time-date subr-x
noutline outline icons ob-emacs-lisp ob-core ob-eval org-cycle org-table
ol rx org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu
calendar cal-loaddefs org-version org-compat org-macs format-spec
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 inotify dynamic-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 187497 8623)
 (symbols 48 20567 0)
 (strings 32 71444 1778)
 (string-bytes 1 2202630)
 (vectors 16 38089)
 (vector-slots 8 427107 12649)
 (floats 8 268 117)
 (intervals 56 413 0)
 (buffers 984 12))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61189; Package emacs. (Tue, 31 Jan 2023 12:29:01 GMT) Full text and rfc822 format available.

Message #8 received at 61189 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Eric Gillespie <epg <at> pretzelnet.org>
Cc: 61189 <at> debbugs.gnu.org
Subject: Re: bug#61189: 29.0.60;
 Strange log-edit-mode M-q bug introduced in 27.1
Date: Tue, 31 Jan 2023 14:23:29 +0200
> From: Eric Gillespie <epg <at> pretzelnet.org>
> Date: Mon, 30 Jan 2023 16:52:01 -0600
> 
> It's an old bug, but it requires such a specific kind of log
> message to trigger that it took me until a few months ago to
> finally hit it!
> 
> To reproduce:
> 0. open modified file under version control
> 1. C-x v v
> 2. Enter the following two-line message (i.e. replace "Summary:" and the rest):
> bork bork bork bork bork bork bork bork bork bork bork bork bork
> bork (e.g. bork) bork bork bork bork bork bork bork bork
> 3. M-q
> 4. M-q
> 
> (I have run with (setq log-edit-hook '(log-edit-show-files)) for a long time
> and that's how I encountered the bug.)
> 
> Expected:
> First M-q fills the paragraph to 70 columns.
> Second does nothing.
> 
> Actual:
> First M-q fills the paragraph to 70 columns.
> Second moves one bork back from line one to line two, adds a colon, and
> deletes the sapce before the opening parenthesis, resulting in:
> 
> bork bork bork bork bork bork bork bork bork bork bork bork bork
> bork:(e.g. bork) bork bork bork bork bork bork bork bork

It's because of the parenthesized "(e.g. bork)" thingy.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61189; Package emacs. (Wed, 01 Feb 2023 15:05:02 GMT) Full text and rfc822 format available.

Message #11 received at 61189 <at> debbugs.gnu.org (full text, mbox):

From: Eric Gillespie <epg <at> pretzelnet.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 61189 <at> debbugs.gnu.org
Subject: Re: bug#61189: 29.0.60;
 Strange log-edit-mode M-q bug introduced in 27.1
Date: Wed, 01 Feb 2023 09:04:40 -0600
Eli Zaretskii <eliz <at> gnu.org> writes:

> It's because of the parenthesized "(e.g. bork)" thingy.

Right.  I didn't strip it out of my minimal test case because it
is essential.

Obviously, it was an actual parenthetical emacs broke the day I
encountered the bug.  I was curious if I could find the commit
where this actually happened to me...  and I did!

Unfortunately, it's a private repository, but if you want a
real-world example, here you go:

#+begin_example
Fix RPM upload.

More fallout from the deduplication.  I mistakenly put the os name
(e.g. 'centos') rather than major number (7) in the previous "fix".
#+end_example

You don't even need to mess with 'Summary:' or log-edit-hook; I
wish I hadn't brought those up.

Just move point into that second paragraph and then M-q

In addition to the strange space-deletion and colon-insertion, I
see now that M-q shouldn't be doing anything at all to this
paragraph.  My fill-column is 72 and those lines are already
filled as is...

Thanks!




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61189; Package emacs. (Sat, 04 Feb 2023 08:42:02 GMT) Full text and rfc822 format available.

Message #14 received at 61189 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Eric Gillespie <epg <at> pretzelnet.org>, Noam Postavsky <npostavs <at> gmail.com>
Cc: 61189 <at> debbugs.gnu.org
Subject: Re: bug#61189: 29.0.60;
 Strange log-edit-mode M-q bug introduced in 27.1
Date: Sat, 04 Feb 2023 10:41:19 +0200
> From: Eric Gillespie <epg <at> pretzelnet.org>
> cc: 61189 <at> debbugs.gnu.org
> Date: Wed, 01 Feb 2023 09:04:40 -0600
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > It's because of the parenthesized "(e.g. bork)" thingy.
> 
> Right.  I didn't strip it out of my minimal test case because it
> is essential.
> 
> Obviously, it was an actual parenthetical emacs broke the day I
> encountered the bug.  I was curious if I could find the commit
> where this actually happened to me...  and I did!
> 
> Unfortunately, it's a private repository, but if you want a
> real-world example, here you go:
> 
> #+begin_example
> Fix RPM upload.
> 
> More fallout from the deduplication.  I mistakenly put the os name
> (e.g. 'centos') rather than major number (7) in the previous "fix".
> #+end_example
> 
> You don't even need to mess with 'Summary:' or log-edit-hook; I
> wish I hadn't brought those up.
> 
> Just move point into that second paragraph and then M-q
> 
> In addition to the strange space-deletion and colon-insertion, I
> see now that M-q shouldn't be doing anything at all to this
> paragraph.  My fill-column is 72 and those lines are already
> filled as is...

Thanks, patches welcome to handle this corner case correctly.




This bug report was last modified 2 years and 189 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.