GNU bug report logs - #61308
28.2; icomplete --- Error in post-command-hook: wrong-type-argument

Previous Next

Package: emacs;

Reported by: Fernando de Morais <fernandodemorais.jf <at> gmail.com>

Date: Mon, 6 Feb 2023 02:33:02 UTC

Severity: normal

Found in version 28.2

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 61308 in the body.
You can then email your comments to 61308 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#61308; Package emacs. (Mon, 06 Feb 2023 02:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Fernando de Morais <fernandodemorais.jf <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 06 Feb 2023 02:33:02 GMT) Full text and rfc822 format available.

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

From: Fernando de Morais <fernandodemorais.jf <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.2; icomplete --- Error in post-command-hook: wrong-type-argument
Date: Sun, 05 Feb 2023 23:32:42 -0300
To reproduce, which is possible with 'emacs -Q', please:

1. Evaluate the following snippet:

  (progn
    (with-eval-after-load 'icomplete
      (customize-set-variable 'enable-recursive-minibuffers t)
      (customize-set-variable 'help-window-select t)
      (customize-set-variable 'icomplete-show-matches-on-no-input t))
    (icomplete-mode))

2. C-x C-f
3. C-h v
4. Then RET (to select any candidate).

Results in:

  - The window displaying the *Help* buffer is selected, but an error[1]
    is raised and I am left with the default Emacs completion system
    when I return to the minibuffer.

[1]  "Error in post-command-hook (icomplete-post-command-hook): (wrong-type-argument number-or-marker-p nil)"


In GNU Emacs 28.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.36, cairo version 1.17.6)
 of 2023-01-02 built on 2
Windowing system distributor 'The X.Org Foundation', version 11.0.12101006
System Description: Arch Linux

Configured using:
 'configure --with-x-toolkit=gtk3 --with-native-compilation
 --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib
 --localstatedir=/var --with-cairo --with-harfbuzz --with-libsystemd
 --with-modules 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt
 -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -g
 -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs -flto=auto'
 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
X11 XDBE XIM XPM GTK3 ZLIB

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

Major mode: Lisp Interaction

Minor modes in effect:
  pdf-occur-global-minor-mode: t
  shell-dirtrack-mode: t
  corfu-mode: t
  flymake-mode: t
  flyspell-mode: t
  goto-address-prog-mode: t
  hl-line-mode: t
  yas-minor-mode: t
  rainbow-delimiters-mode: t
  recentf-mode: t
  savehist-mode: t
  minions-mode: t
  movemail-auto-fetch-mode: t
  marginalia-mode: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  minibuffer-electric-default-mode: t
  minibuffer-depth-indicate-mode: t
  display-time-mode: t
  global-so-long-mode: t
  electric-pair-mode: t
  delete-selection-mode: t
  display-battery-mode: t
  gcmh-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  hs-minor-mode: t

Load-path shadows:
None found.

Features:
(pdf-sync pdf-annot pdf-outline pdf-links pdf-history pdf-occur
ibuffer-vc ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw cedet pdf-isearch pdf-misc pdf-loader pdf-tools pdf-view
pdf-cache pdf-info tq pdf-util pdf-macs mode-local tramp-cache tramp-sh
tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
ls-lisp consult-dir ielm dabbrev skeleton eglot external-completion
array filenotify jsonrpc ert ewoc debug backtrace imenu sh-script smie
executable gnus-uu yenc timezone sgml-mode facemenu cc-awk cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs gnus-html gnus-dired diredfl completion mailalias smtpmail
shadow footnote emacsbug sendmail modus-vivendi-theme flow-fill qp
smiley gnus-cite mm-archive mail-extr gnus-bcklg embark-org
embark-consult embark sort gnus-ml disp-table nnmaildir nnagent nnml
nnnil nnrss gnus-topic mairix gnus-dup gnus-draft nndraft nnmh
gnus-demon gnus-async gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg nntp gnus-cache flyspell-correct comp comp-cstr etags
fileloop pulse color view vc-svn misearch multi-isearch vc denote xref
diff shortdoc cl-print help-fns radix-tree org-agenda org-refile
consult-org conf-mode vc-git diff-mode vc-dispatcher org-eldoc
org-indent image-file image-converter gnutls network-stream url-http
url-gw nsm url-cache url-auth ol-eww eww-lnum eww xdg url-queue mm-url
ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt
speedbar ezimage dframe gnus-art mm-uu mml2015 mm-view mml-smime smime
dig gnus-sum shr-tag-pre-highlight language-detection shr kinsoku svg
dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
message rmc puny rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail
rmail-loaddefs mail-utils ol-docview doc-view jka-compr image-mode exif
ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi ob-octave org-superstar
org-element avl-tree generator org-contrib org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint
org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex
iso8601 ol org-keys oc org-compat advice org-macs org-loaddefs find-func
holidays hol-loaddefs cal-menu calendar cal-loaddefs rx
consult-icomplete consult bookmark cape-keyword cape mule-util shell
pcmpl-args pcmpl-gnu pcmpl-linux pcmpl-unix pcomplete corfu time-date
checkdoc lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr dired-x dired-aux dired dired-loaddefs flymake-proc flymake
project compile text-property-search exec-path-from-shell comint
ansi-color ring warnings display-line-numbers epa-file epa derived epg
rfc6068 epg-config cl-extra flyspell ispell goto-addr hl-line hideshow
yasnippet help-mode rainbow-delimiters recentf tree-widget cus-start
savehist server minions easy-mmode let-alist ibuf-macs marginalia
icomplete minibuf-eldef mb-depth orderless time so-long edmacro kmacro
elec-pair delsel format-spec battery dbus xml auth-source-pass
modus-operandi-theme modus-themes pcase ffap thingatpt no-littering
compat compat-29 gcmh system-packages tex-site info package browse-url
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cus-edit pp
cus-load wid-edit cl-loaddefs cl-lib iso-transl tooltip 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 cl-generic 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 simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 1409864 204754)
 (symbols 48 60790 113)
 (strings 32 292283 20290)
 (string-bytes 1 11042012)
 (vectors 16 282913)
 (vector-slots 8 3690436 280728)
 (floats 8 91534 1156)
 (intervals 56 64998 4143)
 (buffers 992 68))

-- 
Regards,
Fernando de Morais.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61308; Package emacs. (Wed, 08 Feb 2023 07:37:03 GMT) Full text and rfc822 format available.

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

From: Juri Linkov <juri <at> linkov.net>
To: Fernando de Morais <fernandodemorais.jf <at> gmail.com>
Cc: 61308 <at> debbugs.gnu.org
Subject: Re: bug#61308: 28.2; icomplete --- Error in post-command-hook:
 wrong-type-argument
Date: Wed, 08 Feb 2023 09:20:57 +0200
>   (progn
>     (with-eval-after-load 'icomplete
>       (customize-set-variable 'enable-recursive-minibuffers t)
>       (customize-set-variable 'help-window-select t)
>       (customize-set-variable 'icomplete-show-matches-on-no-input t))
>     (icomplete-mode))
>
> 2. C-x C-f
> 3. C-h v
> 4. Then RET (to select any candidate).
>
> Results in:
>
>   - The window displaying the *Help* buffer is selected, but an error[1]
>     is raised and I am left with the default Emacs completion system
>     when I return to the minibuffer.
>
> [1]  "Error in post-command-hook (icomplete-post-command-hook): (wrong-type-argument number-or-marker-p nil)"

Interesting bug report.  I guess we need to double-check
if we are still in the right buffer after help-window-select
selects another window and thus confuses icomplete-mode:

diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 014f38b2024..97457832e2c 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -686,6 +686,8 @@ icomplete-exhibit
 Should be run via minibuffer `post-command-hook'.
 See `icomplete-mode' and `minibuffer-setup-hook'."
   (when (and icomplete-mode
+             ;; Check if still in the right buffer (bug#61308)
+             (or (window-minibuffer-p) completion-in-region--data)
              (icomplete-simple-completing-p)) ;Shouldn't be necessary.
     (let ((saved-point (point)))
       (save-excursion




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61308; Package emacs. (Wed, 08 Feb 2023 22:10:01 GMT) Full text and rfc822 format available.

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

From: Fernando de Morais <fernandodemorais.jf <at> gmail.com>
To: Juri Linkov <juri <at> linkov.net>
Cc: 61308 <at> debbugs.gnu.org
Subject: Re: bug#61308: 28.2; icomplete --- Error in post-command-hook:
 wrong-type-argument
Date: Wed, 08 Feb 2023 19:09:09 -0300
Hello Juri,

Juri Linkov <juri <at> linkov.net> writes:

> Interesting bug report.  I guess we need to double-check
> if we are still in the right buffer after help-window-select
> selects another window and thus confuses icomplete-mode:
>
> diff --git a/lisp/icomplete.el b/lisp/icomplete.el
> index 014f38b2024..97457832e2c 100644
> --- a/lisp/icomplete.el
> +++ b/lisp/icomplete.el
> @@ -686,6 +686,8 @@ icomplete-exhibit
>  Should be run via minibuffer `post-command-hook'.
>  See `icomplete-mode' and `minibuffer-setup-hook'."
>    (when (and icomplete-mode
> +             ;; Check if still in the right buffer (bug#61308)
> +             (or (window-minibuffer-p) completion-in-region--data)
>               (icomplete-simple-completing-p)) ;Shouldn't be necessary.
>      (let ((saved-point (point)))
>        (save-excursion

This solved the problem, thank you!  🤝

I hope this path gets merged upstream.

-- 
Regards,
Fernando de Morais.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61308; Package emacs. (Thu, 09 Feb 2023 18:11:02 GMT) Full text and rfc822 format available.

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

From: Juri Linkov <juri <at> linkov.net>
To: Fernando de Morais <fernandodemorais.jf <at> gmail.com>
Cc: 61308 <at> debbugs.gnu.org
Subject: Re: bug#61308: 28.2; icomplete --- Error in post-command-hook:
 wrong-type-argument
Date: Thu, 09 Feb 2023 20:09:34 +0200
close 61308 30.0.50
thanks

>> diff --git a/lisp/icomplete.el b/lisp/icomplete.el
>> index 014f38b2024..97457832e2c 100644
>> --- a/lisp/icomplete.el
>> +++ b/lisp/icomplete.el
>> @@ -686,6 +686,8 @@ icomplete-exhibit
>>  Should be run via minibuffer `post-command-hook'.
>>  See `icomplete-mode' and `minibuffer-setup-hook'."
>>    (when (and icomplete-mode
>> +             ;; Check if still in the right buffer (bug#61308)
>> +             (or (window-minibuffer-p) completion-in-region--data)
>>               (icomplete-simple-completing-p)) ;Shouldn't be necessary.
>>      (let ((saved-point (point)))
>>        (save-excursion
>
> This solved the problem, thank you!  🤝
>
> I hope this path gets merged upstream.

Now merged to master.  Thanks for the bug report.




bug marked as fixed in version 30.0.50, send any further explanations to 61308 <at> debbugs.gnu.org and Fernando de Morais <fernandodemorais.jf <at> gmail.com> Request was from Juri Linkov <juri <at> linkov.net> to control <at> debbugs.gnu.org. (Thu, 09 Feb 2023 18:11:02 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. (Fri, 10 Mar 2023 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 48 days ago.

Previous Next


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