GNU bug report logs - #76641
30.1; M-q fails in makefile-mode

Previous Next

Package: emacs;

Reported by: Benjamin Riefenstahl <b.riefenstahl <at> turtle-trading.net>

Date: Fri, 28 Feb 2025 13:42:02 UTC

Severity: normal

Found in version 30.1

Done: Eli Zaretskii <eliz <at> gnu.org>

To reply to this bug, email your comments to 76641 AT debbugs.gnu.org.
There is no need to reopen the bug first.

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#76641; Package emacs. (Fri, 28 Feb 2025 13:42:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Benjamin Riefenstahl <b.riefenstahl <at> turtle-trading.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 28 Feb 2025 13:42:03 GMT) Full text and rfc822 format available.

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

From: Benjamin Riefenstahl <b.riefenstahl <at> turtle-trading.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.1; M-q fails in makefile-mode
Date: Fri, 28 Feb 2025 14:38:55 +0100
Since Emacs 30, M-q does not work in makefiles for my most common use
case.

Reproduction:

* Create a file "Makefile" with this content (without the indentation)

    v = 1 2 3 4 5 \
        6 7 8 9 0

* Put point inside that expression and press M-q.

* Expected result:

    v = 1 2 3 4 5 6 7 8 9 0

* Actual result: No change.

Explanation:

In Emacs 29, M-q was bound to fill-paragraph.  In Emacs 30 it is bound
to prog-fill-reindent-defun.

Why that function does not work, I am not sure.  It seems to check
tree-sitter before falling back to fill-paragraph, but the fallback does
not happen, at least not in the function prog-fill-reindent-defun
itself.

As a workaround I am now binding M-q to fill-paragraph myself in
makefile-mode. 

------

In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
 cairo version 1.16.0) of 2025-02-20 built on arrian
Repository revision: 92e96a117525885bc2c725600aca3683e4b28b7a
Repository branch: emacs-30
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
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 WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

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

Major mode: Summary

Minor modes in effect:
  desktop-save-mode: t
  display-time-mode: t
  server-mode: t
  xclip-mode: t
  xterm-mouse-mode: t
  delete-selection-mode: t
  cua-mode: t
  display-battery-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
  minibuffer-regexp-mode: t
  buffer-read-only: 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

Load-path shadows:
~/Projects/ttf-mode/arc-mode-compat hides ~/emacs/arc-mode-compat
/home/benny/.emacs.d/elpa/git-commit-20240730.1355/git-commit hides /home/benny/.emacs.d/elpa/magit-20250125.1132/git-commit
/home/benny/.emacs.d/elpa/transient-20250122.1219/transient hides /usr/local/share/emacs/30.1/lisp/transient

Features:
(shadow emacsbug flow-fill shortdoc cl mailalias smtpmail bbdb-message
gnus-search eieio-opt speedbar ezimage dframe dictionary
external-completion dictionary-connection display-line-numbers misearch
multi-isearch cl-print comp-run comp-common finder finder-inf find-func
thingatpt help-fns sort smiley gnus-cite shr-color color mail-extr
textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check gnus-async gnus-bcklg gnus-dup gnus-ml pp gnus-topic
jka-compr mm-archive url-http url-gw url-cache url-auth qp nndraft nnmh
nnfolder bbdb-gnus bbdb-mua network-stream nsm gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig nntp gnus-cache gnus-sum shr pixel-fill
kinsoku url-file svg message-x pop3 gnus-group gnus-undo nnrss dom
mm-url bbdb-com crm bbdb bbdb-site timezone gnus-start gnus-dbus
gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601
gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822
mml mml-sec epa 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 mail-utils range mm-util
mail-prsvr wid-edit view mule-util imenu sh-script rx smie treesit
executable time-date desktop frameset highline benny-calendar-cfg
ange-ftp generic-x autoinsert cc-mode cc-fonts cc-guess cc-menus
cc-styles cc-align cc-cmds cc-engine cc-vars cc-defs ps-print
ps-print-loaddefs lpr advice cl-extra help-mode dired dired-loaddefs
derived benny-x-clipboard disp-table time server protbuf xclip
term/xterm xterm xt-mouse cal-china lunar solar cal-dst cal-bahai
cal-islam cal-hebrew holidays holiday-loaddefs vc-git diff-mode
track-changes easy-mmode vc-dispatcher diary-lib diary-loaddefs cal-menu
calendar cal-loaddefs delsel grep compile text-property-search comint
ansi-osc ansi-color ring cua-base cus-load format-spec battery dbus xml
.loaddefs benny-tools autoload loaddefs-gen radix-tree lisp-mnt
bbdb-autoloads crontab-mode-autoloads csv-mode-autoloads
debbugs-autoloads elpher-autoloads enwc-autoloads git-commit-autoloads
graphql-autoloads graphql-doc-autoloads graphql-mode-autoloads
jsonian-autoloads lsp-java-autoloads dap-mode-autoloads
lsp-docker-autoloads lsp-treemacs-autoloads lsp-ui-autoloads
lsp-mode-autoloads f-autoloads magit-autoloads pcase
magit-section-autoloads markdown-preview-mode-autoloads
markdown-mode-autoloads mastodon-autoloads monky-autoloads nov-autoloads
esxml-autoloads osm-autoloads persist-autoloads request-autoloads
sly-autoloads sql-indent-autoloads sqlup-mode-autoloads telega-autoloads
tp-autoloads transient-autoloads treemacs-autoloads cfrs-autoloads
posframe-autoloads ht-autoloads hydra-autoloads pfuture-autoloads
ace-window-autoloads avy-autoloads s-autoloads dash-autoloads
vc-fossil-autoloads visual-fill-column-autoloads websocket-autoloads
info with-editor-autoloads x509-mode-autoloads xclip-autoloads
yaml-autoloads yaml-imenu-autoloads yaml-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 icons
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 touch-screen 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 gtk
x-toolkit xinput2 x multi-tty move-toolbar make-network-process
native-compile emacs)

Memory information:
((conses 16 620722 448256) (symbols 48 28797 71)
 (strings 32 161958 21500) (string-bytes 1 10817781)
 (vectors 16 69855) (vector-slots 8 1275932 255292)
 (floats 8 1335 8852) (intervals 56 3909 794) (buffers 992 41))




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 01 Mar 2025 14:08:02 GMT) Full text and rfc822 format available.

Notification sent to Benjamin Riefenstahl <b.riefenstahl <at> turtle-trading.net>:
bug acknowledged by developer. (Sat, 01 Mar 2025 14:08:02 GMT) Full text and rfc822 format available.

Message #10 received at 76641-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Benjamin Riefenstahl <b.riefenstahl <at> turtle-trading.net>
Cc: 76641-done <at> debbugs.gnu.org
Subject: Re: bug#76641: 30.1; M-q fails in makefile-mode
Date: Sat, 01 Mar 2025 16:07:01 +0200
> From: Benjamin Riefenstahl <b.riefenstahl <at> turtle-trading.net>
> Date: Fri, 28 Feb 2025 14:38:55 +0100
> 
> Since Emacs 30, M-q does not work in makefiles for my most common use
> case.
> 
> Reproduction:
> 
> * Create a file "Makefile" with this content (without the indentation)
> 
>     v = 1 2 3 4 5 \
>         6 7 8 9 0
> 
> * Put point inside that expression and press M-q.
> 
> * Expected result:
> 
>     v = 1 2 3 4 5 6 7 8 9 0
> 
> * Actual result: No change.
> 
> Explanation:
> 
> In Emacs 29, M-q was bound to fill-paragraph.  In Emacs 30 it is bound
> to prog-fill-reindent-defun.
> 
> Why that function does not work, I am not sure.  It seems to check
> tree-sitter before falling back to fill-paragraph, but the fallback does
> not happen, at least not in the function prog-fill-reindent-defun
> itself.
> 
> As a workaround I am now binding M-q to fill-paragraph myself in
> makefile-mode. 

Thanks, I've installed a change on the emacs-30 release branch that
binds M-q to fill-paragraph in makefile-mode.

With that, I'm closing this bug.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76641; Package emacs. (Sat, 08 Mar 2025 16:13:02 GMT) Full text and rfc822 format available.

Message #13 received at 76641-done <at> debbugs.gnu.org (full text, mbox):

From: Benjamin Riefenstahl <b.riefenstahl <at> turtle-trading.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 76641-done <at> debbugs.gnu.org
Subject: Re: bug#76641: 30.1; M-q fails in makefile-mode
Date: Sat, 08 Mar 2025 17:09:33 +0100
Eli Zaretskii writes:
> Thanks, I've installed a change on the emacs-30 release branch that
> binds M-q to fill-paragraph in makefile-mode.
>
> With that, I'm closing this bug.

Thanks a lot,
benny




This bug report was last modified 27 days ago.

Previous Next


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