GNU bug report logs - #78001
30.1; `M-x man` errors on macOS 15 after sed(1) RE syntax change

Previous Next

Package: emacs;

Reported by: Justin Flude <justin_flude <at> hotmail.com>

Date: Wed, 23 Apr 2025 01:52:02 UTC

Severity: normal

Found in version 30.1

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 78001 in the body.
You can then email your comments to 78001 AT debbugs.gnu.org in the normal way.

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#78001; Package emacs. (Wed, 23 Apr 2025 01:52:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Justin Flude <justin_flude <at> hotmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 23 Apr 2025 01:52:02 GMT) Full text and rfc822 format available.

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

From: Justin Flude <justin_flude <at> hotmail.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: 30.1; `M-x man` errors on macOS 15 after sed(1) RE syntax change
Date: Tue, 22 Apr 2025 19:04:27 +0000
Steps to reproduce:-

1. On a macOS 15 computer run `emacs -Q -nw` in a terminal
2. Type the command `M-x man` then enter `ls`
3. A `*Man ls*` buffer appears with this error:-

  sed: 1: "/^[\o001-\o032][\o001-\ ...": RE error: invalid character
  range

The command works fine for the same version of Emacs (30.1) on my macOS
Catalina Macbook.

The issue also occurs when Emacs is run as a GUI from the Finder.  It
affects to my knowledge the latest Emacs distributed by Homebrew and
MacPorts.

Analysis: it appears that recent versions of macOS have changed the way
quoting works in sed(1) regular expressions.  The problem can be
reproduced without Emacs when just running sed(1) in a Bash shell, and
with no environment variables set other than PATH and TERM.


In GNU Emacs 30.1 (build 2, aarch64-apple-darwin24.3.0, NS
appkit-2575.40 Version 15.3.1 (Build 24D70)) of 2025-03-06 built on
pickwick
Windowing system distributor 'Apple', version 10.3.2575
System Description:  macOS 15.4.1

Configured using:
'configure --prefix=/opt/local --disable-silent-rules --without-dbus
--without-gconf --without-libotf --without-m17n-flt --with-libgmp
--with-gnutls --with-xml2 --with-modules --with-sqlite3 --with-webp
--with-native-compilation=aot --infodir /opt/local/share/info/emacs
--disable-gc-mark-trace --with-ns --with-lcms2 --without-harfbuzz
--without-xaw3d --with-imagemagick --with-rsvg --with-tree-sitter
'CFLAGS=-pipe -Os -Wno-attributes
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -arch
arm64' 'CPPFLAGS=-I/opt/local/include
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk'
'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-no_pie
-Wl,-rpath /opt/local/lib/gcc14 -Wl,-rpath /opt/local/lib
-Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk
-arch arm64''

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

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

Major mode: Lisp

Minor modes in effect:
  sly-stickers-shortcut-mode: t
  sly-stickers-mode: t
  sly-trace-dialog-shortcut-mode: t
  sly-autodoc-mode: t
  sly-editing-mode: t
  sly-mode: t
  sly-symbol-completion-mode: t
  server-mode: t
  auto-dark-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  display-battery-mode: t
  display-time-mode: t
  paredit-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  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
  minibuffer-regexp-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
  hs-minor-mode: t

Load-path shadows:
/opt/local/share/emacs/site-lisp/cmake-mode hides /Users/justin/.emacs.d/elpa/cmake-mode-20250304.1338/cmake-mode
/Users/justin/.emacs.d/elpa/transient-20250418.2149/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow sort mail-extr tmm emacsbug tabify imenu man wombat-theme
wgsl-mode wgsl-mode-autoloads loaddefs-gen cus-edit cus-start cus-load
lisp-mnt mm-archive url-cache finder-inf pcmpl-git find-dired oc-basic
org-element org-persist org-id org-refile org-element-ast inline
avl-tree 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 sendmail yank-media rfc822
mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader gnus-win gnus nnheader
gnus-util mail-utils range wid-edit ol-docview doc-view filenotify
image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi
vc-annotate vc pcmpl-unix pcmpl-gnu tar-mode jka-compr misearch
multi-isearch display-line-numbers sly-asdf grep sly-macrostep macrostep
sly-fancy sly-tramp tramp trampver tramp-integration tramp-message
tramp-compat xdg parse-time iso8601 tramp-loaddefs sly-indentation
sly-cl-indent sly-stickers cl-extra pulse color hi-lock sly-trace-dialog
sly-fontifying-fu sly-package-fu sly-scratch sly-fancy-trace
sly-fancy-inspector sly-mrepl sly-autodoc sly-parse network-stream
dired-aux dired dired-loaddefs vc-git diff-mode track-changes
vc-dispatcher sly easy-mmode sly-completion sly-buttons sly-messages
sly-common apropos arc-mode archive-mode pp hyperspec go-mode find-file
ffap comp-run comp-common hideshow server tango-theme auto-dark
page-break-lines battery dbus xml time ob-sqlite ob-sql ob-shell shell
ob-sed ob-screen ob-scheme geiser-impl help-fns radix-tree geiser-custom
geiser-base geiser ob-rust ob-ruby ob-R ob-python python compat ob-perl
ob-org ob-octave ob-makefile ob-lisp ob-latex ob-js ob-java ob-http
ob-http-mode s ob-haskell ob-go ob-gnuplot ob-forth ob-eshell eshell
esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-module-loaddefs esh-util files-x ob-dot ob-css ob-calc calc-store
calc-trail calc-ext calc calc-loaddefs rect calc-macs ob-C cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs ob-awk org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src sh-script treesit executable ob-comint org-pcomplete pcomplete
org-list org-footnote org-faces org-entities time-date noutline outline
ob-emacs-lisp ob-core ob-eval org-version org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu
calendar cal-loaddefs org-compat org-macs format-spec wolfram-mode
cobol-mode robe help-mode url-http url-auth mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny etags fileloop
generator xref inf-ruby ruby-mode smie flymake-ruby flymake-easy flymake
project compile text-property-search comint ansi-osc ansi-color ring
warnings thingatpt emmet-mode web-mode advice disp-table paredit edmacro
kmacro exec-path-from-shell auto-dark-autoloads basic-mode-autoloads
chess-autoloads cmake-mode-autoloads cobol-mode-autoloads
company-autoloads csv-mode-autoloads dad-joke-autoloads
dockerfile-mode-autoloads emmet-mode-autoloads
exec-path-from-shell-autoloads fireplace-autoloads flycheck-autoloads
flymake-ruby-autoloads flymake-easy-autoloads forth-mode-autoloads
geiser-chez-autoloads geiser-chibi-autoloads geiser-chicken-autoloads
geiser-gambit-autoloads geiser-guile-autoloads geiser-mit-autoloads
geiser-racket-autoloads geiser-autoloads glsl-mode-autoloads
gnu-elpa-keyring-update-autoloads gnuplot-autoloads go-mode-autoloads
graphviz-dot-mode-autoloads groovy-mode-autoloads
impatient-mode-autoloads htmlize-autoloads json-mode-autoloads rx
json-snatcher-autoloads lsp-ui-autoloads lsp-mode-autoloads ht-autoloads
f-autoloads lv-autoloads magit-autoloads pcase markdown-mode-autoloads
minesweeper-autoloads mustache-mode-autoloads nginx-mode-autoloads
ob-go-autoloads ob-http-autoloads ob-rust-autoloads org-roam-autoloads
magit-section-autoloads llama-autoloads emacsql-autoloads dash-autoloads
page-break-lines-autoloads paredit-autoloads pdf-tools-autoloads
protobuf-mode-autoloads restclient-autoloads robe-autoloads
inf-ruby-autoloads rust-mode-autoloads s-autoloads
simple-httpd-autoloads sly-asdf-autoloads popup-autoloads
sly-macrostep-autoloads macrostep-autoloads sly-autoloads
solidity-mode-autoloads spinner-autoloads tablist-autoloads
transient-autoloads web-mode-autoloads info with-editor-autoloads
wolfram-mode-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/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 kqueue cocoa ns lcms2
multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 755698 1266831) (symbols 48 46982 0)
(strings 32 233125 47890) (string-bytes 1 11129078)
(vectors 16 74739) (vector-slots 8 1637415 155572)
(floats 8 621 1232) (intervals 56 4815 4306) (buffers 992 26))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78001; Package emacs. (Wed, 23 Apr 2025 12:58:03 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Justin Flude <justin_flude <at> hotmail.com>
Cc: 78001 <at> debbugs.gnu.org
Subject: Re: bug#78001: 30.1;
 `M-x man` errors on macOS 15 after sed(1) RE syntax change
Date: Wed, 23 Apr 2025 15:57:02 +0300
> From: Justin Flude <justin_flude <at> hotmail.com>
> Date: Tue, 22 Apr 2025 19:04:27 +0000
> 
> Steps to reproduce:-
> 
> 1. On a macOS 15 computer run `emacs -Q -nw` in a terminal
> 2. Type the command `M-x man` then enter `ls`
> 3. A `*Man ls*` buffer appears with this error:-
> 
>   sed: 1: "/^[\o001-\o032][\o001-\ ...": RE error: invalid character
>   range
> 
> The command works fine for the same version of Emacs (30.1) on my macOS
> Catalina Macbook.

This was solved on the master branch a day or two ago.

> The issue also occurs when Emacs is run as a GUI from the Finder.  It
> affects to my knowledge the latest Emacs distributed by Homebrew and
> MacPorts.
> 
> Analysis: it appears that recent versions of macOS have changed the way
> quoting works in sed(1) regular expressions.  The problem can be
> reproduced without Emacs when just running sed(1) in a Bash shell, and
> with no environment variables set other than PATH and TERM.

I suggest to install GNU Sed as a workaround, it should have no
problem with these regular expressions.




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 10 May 2025 09:17:01 GMT) Full text and rfc822 format available.

Notification sent to Justin Flude <justin_flude <at> hotmail.com>:
bug acknowledged by developer. (Sat, 10 May 2025 09:17:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: justin_flude <at> hotmail.com
Cc: 78001-done <at> debbugs.gnu.org
Subject: Re: bug#78001: 30.1;
 `M-x man` errors on macOS 15 after sed(1) RE syntax change
Date: Sat, 10 May 2025 12:16:39 +0300
> Cc: 78001 <at> debbugs.gnu.org
> Date: Wed, 23 Apr 2025 15:57:02 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> 
> > From: Justin Flude <justin_flude <at> hotmail.com>
> > Date: Tue, 22 Apr 2025 19:04:27 +0000
> > 
> > Steps to reproduce:-
> > 
> > 1. On a macOS 15 computer run `emacs -Q -nw` in a terminal
> > 2. Type the command `M-x man` then enter `ls`
> > 3. A `*Man ls*` buffer appears with this error:-
> > 
> >   sed: 1: "/^[\o001-\o032][\o001-\ ...": RE error: invalid character
> >   range
> > 
> > The command works fine for the same version of Emacs (30.1) on my macOS
> > Catalina Macbook.
> 
> This was solved on the master branch a day or two ago.
> 
> > The issue also occurs when Emacs is run as a GUI from the Finder.  It
> > affects to my knowledge the latest Emacs distributed by Homebrew and
> > MacPorts.
> > 
> > Analysis: it appears that recent versions of macOS have changed the way
> > quoting works in sed(1) regular expressions.  The problem can be
> > reproduced without Emacs when just running sed(1) in a Bash shell, and
> > with no environment variables set other than PATH and TERM.
> 
> I suggest to install GNU Sed as a workaround, it should have no
> problem with these regular expressions.

No further comments, so I presume the bug is indeed solved, and I'm
therefore closing this bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 07 Jun 2025 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 38 days ago.

Previous Next


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