Package: emacs;
Reported by: Thierry Volpiatto <thievol <at> posteo.net>
Date: Wed, 31 Jan 2024 13:55:02 UTC
Severity: normal
Found in version 29.2
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 68852 in the body.
You can then email your comments to 68852 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
bug-gnu-emacs <at> gnu.org
:bug#68852
; Package emacs
.
(Wed, 31 Jan 2024 13:55:02 GMT) Full text and rfc822 format available.Thierry Volpiatto <thievol <at> posteo.net>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 31 Jan 2024 13:55:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Thierry Volpiatto <thievol <at> posteo.net> To: bug-gnu-emacs <at> gnu.org Subject: 29.2; Woman + grep fails Date: Wed, 31 Jan 2024 13:54:16 +0000
To reproduce: M-x woman RET grep RET Debugger entered--Lisp error: (search-failed "\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") re-search-forward("\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") (and (re-search-forward "\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") (match-beginning 1)) (while (and (re-search-forward "\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") (match-beginning 1)) (re-search-forward "\\\\}")) (let ((from (point))) (woman-delete-match 0) (while (and (re-search-forward "\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") (match-beginning 1)) (re-search-forward "\\\\}")) (delete-region (if delete from (match-beginning 0)) (point)) (if (looking-at "^$") (delete-char 1))) (cond ((looking-at "[^{\n]*\\(\\\\\n\\)*\\\\{\\s *\\(\\\\\n\\)*") (let ((from (point))) (woman-delete-match 0) (while (and (re-search-forward "\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") (match-beginning 1)) (re-search-forward "\\\\}")) (delete-region (if delete from (match-beginning 0)) (point)) (if (looking-at "^$") (delete-char 1)))) (delete (woman-delete-line 1))) (let ((from (point))) (if to (delete-region (point) to)) (delete-horizontal-space) (cond ((looking-at "[^{\n]*\\(\\\\\n\\)*\\\\{\\s *\\(\\\\\n\\)*") (let ((from (point))) (woman-delete-match 0) (while (and (re-search-forward "\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") (match-beginning 1)) (re-search-forward "\\\\}")) (delete-region (if delete from (match-beginning 0)) (point)) (if (looking-at "^$") (delete-char 1)))) (delete (woman-delete-line 1))) (cond ((string= request "ie") (cond ((re-search-forward "^[.'][ \11]*el[ \11]*" nil t) (woman-delete-match 0) (woman-if-body "el" nil (not delete)))))) (goto-char from)) woman-if-body("ie" #<marker (moves after insertion) at 29338 in *WoMan 1 grep*> t) [...] I could reproduce also on Emacs-30.0.50 Calling re-search-forward with the NOERROR arg in the while loop of woman-if-body seems to fix the problem: diff --git a/lisp/woman.el b/lisp/woman.el index a9af46fa387..2357ba6b132 100644 --- a/lisp/woman.el +++ b/lisp/woman.el @@ -2566,7 +2566,8 @@ If DELETE is non-nil then delete from point." ;; "\\(\\\\{\\)\\|\\(\n[.']\\)?[ \t]*\\\\}[ \t]*" ;; Interpret bogus `el \}' as `el \{', ;; especially for Tcl/Tk man pages: - "\\(\\\\{\\|el[ \t]*\\\\}\\)\\|\\(\n[.']\\)?[ \t]*\\\\}[ \t]*") + "\\(\\\\{\\|el[ \t]*\\\\}\\)\\|\\(\n[.']\\)?[ \t]*\\\\}[ \t]*" + nil t) (match-beginning 1)) (re-search-forward "\\\\}")) (delete-region (if delete from (match-beginning 0)) (point)) In GNU Emacs 29.2 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw3d scroll bars) of 2024-01-18 built on IPad-S340 Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Linux Mint 21.3 Configured using: 'configure --bindir=/usr/local/sbin/emacs-29.1 --with-cairo --with-x-toolkit=lucid --with-modules --without-tree-sitter --without-native-compilation' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XAW3D XDBE XIM XINPUT2 XPM LUCID ZLIB Important settings: value of $LANG: fr_FR.UTF-8 locale-coding-system: utf-8-unix Major mode: Minor modes in effect: emms-mode-line-mode: t emms-playing-time-display-mode: t emms-playing-time-mode: t bug-reference-prog-mode: t server-mode: t psession-mode: t psession-savehist-mode: t register-preview-mode: t global-git-gutter-mode: t git-gutter-mode: t display-time-mode: t winner-mode: t tv-save-place-mode: t helm-epa-mode: t helm-descbinds-mode: t helm-top-poll-mode: t helm-adaptive-mode: t helm-mode: t helm-minibuffer-history-mode: t helm-ff-icon-mode: t shell-dirtrack-mode: t helm-popup-tip-mode: t async-bytecomp-package-mode: t dired-async-mode: t minibuffer-depth-indicate-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-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 Load-path shadows: None found. Features: (shadow epa-mail face-remap emacsbug vc-annotate whitespace cl-indent etags fileloop xref cl-print tabify helm-man tramp-adb tramp-sh isl view jka-compr woman man bash-completion em-unix em-term term ehelp em-script em-prompt em-ls em-hist em-pred em-glob em-extpipe em-cmpl em-dirs esh-var em-basic em-banner em-alias esh-mode esh-toggle helm-firefox smerge-mode diff gnus-async gnus-bcklg gnus-ml disp-table nndraft nnmh nnfolder epa-file network-stream nsm gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache smiley gnus-cite qp mm-archive mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check addressbook-bookmark tv-mu4e-config config-w3m mu4e-contrib mu4e-patch mu4e mu4e-org mu4e-notification notifications mu4e-main smtpmail mu4e-view mu4e-mime-parts gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus mu4e-headers mu4e-thread mu4e-actions mu4e-compose nnheader range mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido message sendmail yank-media rfc822 mml mml-sec gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader mu4e-obsolete helm-skitour shr pixel-fill kinsoku url-file puny svg dom rect cl-extra helm-command wfnames helm-ring helm-elisp helm-eval edebug debug backtrace helm-x-files helm-for-files helm-bookmark helm-info bookmark image-file image-converter char-fold emms-config emms-mpris emms-librefm-stream emms-librefm-scrobbler emms-playlist-limit emms-i18n emms-history emms-score emms-stream-info emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams emms-show-all emms-tag-editor emms-tag-tracktag emms-mark emms-mode-line emms-cache emms-info-native emms-info-native-spc emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool emms-info-tinytag emms-info-metaflac emms-info-opusinfo emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mpv emms-playing-time emms-info emms-later-do emms-player-mplayer emms-player-simple emms-source-playlist emms-source-file locate emms-setup emms emms-compat emms-auto helm-external helm-net tramp-archive tramp-gvfs tramp-cache time-stamp zeroconf dbus xml ffap helm-ls-git vc-git diff-mode vc vc-dispatcher make-mode flymake-shellcheck cus-start flymake-proc flymake project warnings thingatpt sh-script smie treesit executable conf-mode ledger-mode ledger-check ledger-texi ledger-test ledger-sort ledger-report ledger-reconcile ledger-occur ledger-fonts ledger-fontify ledger-state ledger-complete ledger-schedule ledger-init ledger-xact ledger-post ledger-exec ledger-navigate eshell esh-cmd generator esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util ledger-context ledger-commodities org-config ob-gnuplot org-crypt org-protocol 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 ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func org-version org-compat org-macs ledger-regex texinfo texinfo-loaddefs emacs-news-mode noutline outline bug-reference naquadah-theme solar cal-dst holidays holiday-loaddefs appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs server imenu psession frameset register-preview pcase git-gutter mule-util dired-extension time winner describe-variable help-fns radix-tree help-mode tv-utils tv-save-place.el advice init-helm epa derived epg rfc6068 epg-config helm-epa helm-descbinds cus-edit pp icons wid-edit helm-sys popup helm-adaptive helm-mode helm-misc helm-files image-dired image-dired-tags image-dired-external image-dired-util xdg image-mode exif filenotify tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat rx shell pcomplete parse-time iso8601 time-date helm-buffers all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons helm-occur helm-tags helm-locate helm-grep wgrep-helm wgrep grep compile text-property-search comint ansi-osc ring helm-regexp format-spec ansi-color helm-utils helm-help helm-types helm-extensions-autoloads helm-autoloads helm helm-global-bindings helm-easymenu edmacro kmacro helm-core easy-mmode async-bytecomp helm-source helm-multi-match helm-lib dired-async async dired-aux dired dired-loaddefs mb-depth avoid cus-load all-the-icons-autoloads ledger-mode-autoloads markdown-mode-autoloads info sly-autoloads w3m-load w3m-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 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 x-toolkit xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 2099878 213964) (symbols 48 40659 6) (strings 32 351591 50200) (string-bytes 1 13471136) (vectors 16 114511) (vector-slots 8 2389109 161782) (floats 8 5503 7195) (intervals 56 369971 11081) (buffers 976 170)) <#secure method=pgpmime mode=sign> -- Thierry
Eli Zaretskii <eliz <at> gnu.org>
:Thierry Volpiatto <thievol <at> posteo.net>
:Message #10 received at 68852-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Thierry Volpiatto <thievol <at> posteo.net> Cc: 68852-done <at> debbugs.gnu.org Subject: Re: bug#68852: 29.2; Woman + grep fails Date: Thu, 01 Feb 2024 12:37:43 +0200
> From: Thierry Volpiatto <thievol <at> posteo.net> > Date: Wed, 31 Jan 2024 13:54:16 +0000 > > > To reproduce: > > M-x woman RET grep RET > > Debugger entered--Lisp error: (search-failed "\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") > re-search-forward("\\(\\\\{\\|el[ \11]*\\\\}\\)\\|\\(\n[.']\\)?[ \11]*\\\\}[ \11]*") > [...] > > I could reproduce also on Emacs-30.0.50 > > Calling re-search-forward with the NOERROR arg in the while loop of > woman-if-body seems to fix the problem: Hmm... I wonder how this worked until now. But I guess your fix is as good as any, so I installed it on master, and I'm now closing this bug. Thanks.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 29 Feb 2024 12:24:09 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.