GNU bug report logs -
#67226
30.0.50; Regression in previous-complete-history-element with empty input
Previous Next
Reported by: Ergus <spacibba <at> aol.com>
Date: Thu, 16 Nov 2023 10:46:02 UTC
Severity: normal
Fixed in version 30.0.50
Done: Juri Linkov <juri <at> linkov.net>
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 67226 in the body.
You can then email your comments to 67226 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#67226
; Package
emacs
.
(Thu, 16 Nov 2023 10:46:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ergus <spacibba <at> aol.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 16 Nov 2023 10:46:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
When using previous-complete-history-element like:
The behavior changed sometime recently, because
When the input is empty it shows:
[No earlier matching history item]
Previously it behaved like `previous-history-element` in that case.
Is this intended due to some recent change or is it an issue?
```
Emacs -Q
M-: (keymap-set minibuffer-local-map "<up>" #'previous-complete-history-element)
M-x some-command1
M-x some-command2
M-x some-command3
M-x <up-arrow>
```
In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.38, cairo version 1.18.0) of 2023-11-12 built on Ergus
Repository revision: 0bfe764fe5691a76c1c12557b6b0b5bfa9cbc012
Repository branch: master
System Description: Arch Linux
Configured using:
'configure --prefix=/home/ergo/.local/ --with-mailutils --with-json
--with-x-toolkit=gtk3 --with-xft --with-modules --with-cairo
--with-harfbuzz --with-native-compilation
'--program-transform-name=s/^ctags$/ctags.emacs/''
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBSYSTEMD LIBXML2 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: ELisp/l
Minor modes in effect:
global-auto-revert-mode: t
electric-pair-mode: t
flyspell-mode: t
company-mode: t
flycheck-mode: t
diff-hl-margin-local-mode: t
diff-hl-margin-mode: t
diff-hl-mode: t
fancy-compilation-mode: t
gtags-mode: t
repeat-mode: t
xterm-mouse-mode: t
xclip-mode: t
override-global-mode: t
winner-mode: t
save-place-mode: t
delete-selection-mode: t
savehist-mode: t
global-display-fill-column-indicator-mode: t
display-fill-column-indicator-mode: t
global-display-line-numbers-mode: t
display-line-numbers-mode: t
which-key-mode: t
eldoc-mode: t
show-paren-mode: t
mouse-wheel-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
size-indication-mode: 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
Load-path shadows:
/mnt/casa/gits/emacs_clones/gtags-mode/gtags-mode hides /home/ergo/.config/emacs/elpa/gtags-mode-1.0/gtags-mode
/home/ergo/.config/emacs/elpa/transient-20231103.2312/transient hides /home/ergo/.local/share/emacs/30.0.50/lisp/transient
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny rfc822
mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
time-date autorevert filenotify ffap thingatpt url-parse auth-source
password-cache url-vars misearch multi-isearch elec-pair
flyspell-correct flyspell ispell company-semantic company-template
company-capf company-elisp company flycheck json map find-func dash
pcase diff-hl-margin diff-hl-dired citre-lang-fileref citre-tags
citre-ctags citre-readtags citre-readtags-tables citre-backend-interface
citre-ui-peek color citre-ui-jump citre-common-tag citre-common-util
dired-x dired dired-loaddefs diff-hl log-view pcvs-util vc-dir ewoc vc
cape compat fancy-compilation compile text-property-search comint
ansi-osc ansi-color comp-run comp-common rx gtags-mode subr-x files-x
xref project vc-git diff-mode vc-dispatcher term/tmux term/xterm xterm
init repeat xt-mouse xclip edmacro kmacro use-package-bind-key bind-key
simple-16-theme winner ring saveplace delsel savehist easy-mmode
display-fill-column-indicator display-line-numbers diminish which-key
cl-extra help-mode use-package-diminish use-package-core disp-table info
ac-html-autoloads arduino-cli-mode-autoloads arduino-mode-autoloads
ede/auto eieio-base cl-seq eieio byte-opt bytecomp byte-compile
eieio-core cl-macs gv cl-loaddefs cl-lib auto-complete-autoloads
avy-zap-autoloads avy-autoloads better-shell-autoloads caml-autoloads
cape-autoloads citre-autoloads clang-format-autoloads
cobol-mode-autoloads company-auctex-autoloads auctex-autoloads tex-site
company-c-headers-autoloads company-lua-autoloads
company-nginx-autoloads company-reftex-autoloads company-autoloads
compile-multi-autoloads crdt-autoloads csv-mode-autoloads
cuda-mode-autoloads deadgrep-autoloads debbugs-autoloads
diff-hl-autoloads diminish-autoloads dired-sidebar-autoloads
dired-subtree-autoloads dired-hacks-utils-autoloads dumb-jump-autoloads
e2ansi-autoloads emamux-autoloads esup-autoloads
evil-collection-autoloads annalist-autoloads evil-leader-autoloads
evil-autoloads face-explorer-autoloads fancy-compilation-autoloads
flx-autoloads flycheck-julia-autoloads flycheck-rust-autoloads
flycheck-autoloads flymake-nasm-autoloads flymake-quickdef-autoloads
flyspell-correct-autoloads git-modes-autoloads git-timemachine-autoloads
gnuplot-autoloads google-c-style-autoloads goto-chg-autoloads
groovy-mode-autoloads gtags-mode-autoloads
highlight-indent-guides-autoloads i3wm-config-mode-autoloads
ibuffer-project-autoloads ibuffer-sidebar-autoloads
ibuffer-tramp-autoloads ibuffer-vc-autoloads iedit-autoloads
imenu-list-autoloads julia-ts-mode-autoloads julia-mode-autoloads
languagetool-autoloads lice-autoloads lorem-ipsum-autoloads
lua-mode-autoloads magit-autoloads git-commit-autoloads
magit-section-autoloads markdown-mode-autoloads
modern-cpp-font-lock-autoloads move-dup-autoloads
multiple-cursors-autoloads mutt-mode-autoloads nasm-mode-autoloads
neotree-autoloads nftables-mode-autoloads nginx-mode-autoloads
notmuch-autoloads objed-autoloads opencl-mode-autoloads
paradox-autoloads phi-search-autoloads pkg-info-autoloads epl-autoloads
pkgbuild-mode-autoloads popup-autoloads protobuf-mode-autoloads
protobuf-ts-mode-autoloads ptemplate-templates-autoloads
ptemplate-autoloads scopeline-autoloads shell-command+-autoloads
slime-autoloads macrostep-autoloads sphinx-mode-autoloads f-autoloads
dash-autoloads s-autoloads spinner-autoloads ssh-config-mode-autoloads
string-inflection-autoloads sudo-edit-autoloads systemd-autoloads
tmux-mode-autoloads transient-autoloads tree-sitter-autoloads
tsc-autoloads vdiff-autoloads hydra-autoloads lv-autoloads
vterm-toggle-autoloads vterm-autoloads vundo-autoloads
which-key-autoloads with-editor-autoloads compat-autoloads
xclip-autoloads yasnippet-snippets-autoloads yasnippet-autoloads
early-init 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 233392 53195) (symbols 48 16449 0)
(strings 32 59163 12912) (string-bytes 1 1959263) (vectors 16 31794)
(vector-slots 8 1004548 85430) (floats 8 191 13477)
(intervals 56 6483 821) (buffers 992 15))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#67226
; Package
emacs
.
(Thu, 16 Nov 2023 17:36:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 67226 <at> debbugs.gnu.org (full text, mbox):
> When using previous-complete-history-element like:
>
> The behavior changed sometime recently, because
>
> When the input is empty it shows:
>
> [No earlier matching history item]
>
> Previously it behaved like `previous-history-element` in that case.
>
> Is this intended due to some recent change or is it an issue?
>
> ```
> Emacs -Q
>
> M-: (keymap-set minibuffer-local-map "<up>" #'previous-complete-history-element)
>
> M-x some-command1
> M-x some-command2
> M-x some-command3
> M-x <up-arrow>
> ```
The regression is on this line in `previous-matching-history-element`:
(string-match (concat ".*\\(" regexp "\\)") match-string)
In GNU Emacs 29.1.90
(string-match ".*\\(^\\)" "foo")
=> 0
But in GNU Emacs 30.0.50
(string-match ".*\\(^\\)" "foo")
=> nil
Cc:ing Stefan.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#67226
; Package
emacs
.
(Sat, 25 Nov 2023 09:40:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 67226 <at> debbugs.gnu.org (full text, mbox):
Stefan, any comments?
> Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 67226 <at> debbugs.gnu.org
> From: Juri Linkov <juri <at> linkov.net>
> Date: Thu, 16 Nov 2023 19:32:13 +0200
>
> > When using previous-complete-history-element like:
> >
> > The behavior changed sometime recently, because
> >
> > When the input is empty it shows:
> >
> > [No earlier matching history item]
> >
> > Previously it behaved like `previous-history-element` in that case.
> >
> > Is this intended due to some recent change or is it an issue?
> >
> > ```
> > Emacs -Q
> >
> > M-: (keymap-set minibuffer-local-map "<up>" #'previous-complete-history-element)
> >
> > M-x some-command1
> > M-x some-command2
> > M-x some-command3
> > M-x <up-arrow>
> > ```
>
> The regression is on this line in `previous-matching-history-element`:
>
> (string-match (concat ".*\\(" regexp "\\)") match-string)
>
> In GNU Emacs 29.1.90
>
> (string-match ".*\\(^\\)" "foo")
> => 0
>
> But in GNU Emacs 30.0.50
>
> (string-match ".*\\(^\\)" "foo")
> => nil
>
> Cc:ing Stefan.
>
>
>
>
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#67226
; Package
emacs
.
(Sat, 25 Nov 2023 15:31:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 67226 <at> debbugs.gnu.org (full text, mbox):
> Stefan, any comments?
Looks like a bug in my new regexp code. Hmm...
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#67226
; Package
emacs
.
(Sat, 25 Nov 2023 16:05:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 67226 <at> debbugs.gnu.org (full text, mbox):
> The regression is on this line in `previous-matching-history-element`:
>
> (string-match (concat ".*\\(" regexp "\\)") match-string)
>
> In GNU Emacs 29.1.90
>
> (string-match ".*\\(^\\)" "foo")
> => 0
>
> But in GNU Emacs 30.0.50
>
> (string-match ".*\\(^\\)" "foo")
> => nil
>
> Cc:ing Stefan.
Thanks, I believe this is now fixed on `master`.
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#67226
; Package
emacs
.
(Sat, 25 Nov 2023 18:44:03 GMT)
Full text and
rfc822 format available.
Message #20 received at 67226 <at> debbugs.gnu.org (full text, mbox):
close 67226 30.0.50
thanks
>> The regression is on this line in `previous-matching-history-element`:
>>
>> (string-match (concat ".*\\(" regexp "\\)") match-string)
>>
>> In GNU Emacs 29.1.90
>>
>> (string-match ".*\\(^\\)" "foo")
>> => 0
>>
>> But in GNU Emacs 30.0.50
>>
>> (string-match ".*\\(^\\)" "foo")
>> => nil
>>
>> Cc:ing Stefan.
>
> Thanks, I believe this is now fixed on `master`.
I confirm it's fixed, so closing now.
bug marked as fixed in version 30.0.50, send any further explanations to
67226 <at> debbugs.gnu.org and Ergus <spacibba <at> aol.com>
Request was from
Juri Linkov <juri <at> linkov.net>
to
control <at> debbugs.gnu.org
.
(Sat, 25 Nov 2023 18:44:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 24 Dec 2023 12:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 138 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.