unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#58921: Tab completion hangs in eshell
       [not found] <2cb2b8aa-0813-5eae-3bfc-27831b3d50dd@housseini.me>
@ 2022-10-31  9:04 ` reza via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-11-02  7:28   ` Gerd Möllmann
  2023-02-10  7:34   ` Jim Porter
  0 siblings, 2 replies; 10+ messages in thread
From: reza via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-10-31  9:04 UTC (permalink / raw)
  To: 58921

[-- Attachment #1: Type: text/plain, Size: 39563 bytes --]


Open an eshell:

     M-x eshell <enter>

Type this command in the eshell

     tab --warning=no-timestamp -xf <tab>

emacs will hang and has to be killed.

This behavior does not occur when only typing

     tar -xf <tab>


In GNU Emacs 28.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, 
cairo version 1.16.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Guix System

Configured using:
  'configure
 
CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
 
SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
  --prefix=/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2
  --enable-fast-install --with-modules --with-cairo
  --with-native-compilation --disable-build-details'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX 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 $EMACSLOADPATH: 
/home/reza/.guix-home/profile/share/emacs/site-lisp:/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp
   value of $EMACSNATIVELOADPATH: 
/home/reza/.guix-home/profile/lib/emacs/native-site-lisp
   value of $LANG: en_US.utf8
   locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
   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
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   indent-tabs-mode: t
   transient-mark-mode: t

Load-path shadows:
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-workspaces 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-workspaces
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-visuals 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-visuals
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-treelib 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-treelib
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-themes 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-themes
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-tags 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-tags
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-tag-follow-mode 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-tag-follow-mode
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-rendering 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-rendering
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-scope 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-scope
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-persistence 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-persistence
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-mouse-interface 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-mouse-interface
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-mode 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-mode
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-macros 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-macros
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-interface 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-interface
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-hydras 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-hydras
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-git-commit-diff-mode 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-git-commit-diff-mode
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-filewatch-mode 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-filewatch-mode
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-file-management 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-file-management
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-extensions 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-extensions
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-dom 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-dom
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-customization 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-customization
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-bookmarks 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-bookmarks
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-annotations 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-annotations
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-project-follow-mode 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-project-follow-mode
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-pkg 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-pkg
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-peek-mode 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-peek-mode
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-logging 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-logging
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-icons 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-icons
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-header-line 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-header-line
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-fringe-indicator 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-fringe-indicator
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-follow-mode 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-follow-mode
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-faces 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-faces
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-diagnostics 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-diagnostics
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-core-utils 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-core-utils
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-compatibility 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-compatibility
/gnu/store/4mz3ky3wbgxh4hpbnb9madqax2l28gvc-emacs-treemacs-3.0/share/emacs/site-lisp/treemacs-3.0/treemacs-async 
hides 
/gnu/store/rrf5s2grgpbyjhk8133nvihig1m51l99-emacs-treemacs-extra-3.0/share/emacs/site-lisp/treemacs-extra-3.0/treemacs-async
/gnu/store/h0wqx3hffd3p4d3vkyr3kgzxqgnnq9d9-emacs-jsonrpc-1.0.15-0.50654cf/share/emacs/site-lisp/jsonrpc-1.0.15-0.50654cf/jsonrpc 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/jsonrpc
/gnu/store/4548rknhkpg4x4dxjfin87h7v3xfpw2a-emacs-auth-source-pass-5.0.0-2.847a1f5/share/emacs/site-lisp/auth-source-pass-5.0.0-2.847a1f5/auth-source-pass 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/auth-source-pass
/gnu/store/pgxr2l2y1hjn38j0qaw21h19p351s933-emacs-xref-1.5.1/share/emacs/site-lisp/xref-1.5.1/xref 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/progmodes/xref
/gnu/store/y2xv4l96w1995s29kgkvgalvyj37nrnv-emacs-project-0.8.2/share/emacs/site-lisp/project-0.8.2/project 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/progmodes/project
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-texinfo 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-texinfo
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-publish 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-publish
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-org 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-org
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-odt 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-odt
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-man 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-man
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-md 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-md
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-latex 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-latex
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-koma-letter 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-koma-letter
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-icalendar 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-icalendar
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-html 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-html
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-beamer 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-beamer
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ox-ascii 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ox-ascii
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-timer 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-timer
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-table 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-table
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-src 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-src
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-refile 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-refile
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-protocol 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-protocol
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-plot 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-plot
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-pcomplete 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-pcomplete
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-num 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-num
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-mouse 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-mouse
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-mobile 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-mobile
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-macs 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-macs
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-macro 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-macro
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-loaddefs 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-loaddefs
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-list 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-list
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-lint 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-lint
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-keys 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-keys
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-inlinetask 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-inlinetask
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-indent 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-indent
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-id 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-id
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-habit 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-habit
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-goto 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-goto
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-footnote 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-footnote
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-feed 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-feed
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-faces 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-faces
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-entities 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-entities
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-element 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-element
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-duration 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-duration
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-ctags 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-ctags
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-compat 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-compat
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-colview 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-colview
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-clock 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-clock
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-capture 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-capture
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-attach 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-attach
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-archive 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-archive
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-agenda 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-agenda
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-bibtex 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-bibtex
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-bbdb 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-bbdb
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/oc 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/oc
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/oc-csl 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/oc-csl
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/oc-basic 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/oc-basic
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-tangle 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-tangle
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-sql 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-sql
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-shell 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-shell
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-ruby 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-ruby
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-python 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-python
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-octave 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-octave
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-lua 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-lua
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-lilypond 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-lilypond
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-julia 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-julia
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-java 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-java
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-haskell 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-haskell
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-gnuplot 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-gnuplot
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-exp 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-exp
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-core 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-core
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-comint 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-comint
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-R 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-R
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-C 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-C
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-version 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-version
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-tempo 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-tempo
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-install 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-install
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-datetree 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-datetree
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-crypt 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-crypt
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/org-attach-git 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/org-attach-git
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-w3m 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-w3m
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-rmail 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-rmail
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-mhe 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-mhe
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-irc 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-irc
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-man 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-man
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-info 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-info
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-doi 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-doi
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-eww 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-eww
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-gnus 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-gnus
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-eshell 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-eshell
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ol-docview 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ol-docview
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/oc-natbib 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/oc-natbib
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/oc-biblatex 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/oc-biblatex
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-table 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-table
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-sqlite 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-sqlite
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-sed 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-sed
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-screen 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-screen
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-scheme 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-scheme
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-sass 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-sass
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-ref 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-ref
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-processing 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-processing
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-perl 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-perl
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-plantuml 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-plantuml
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-org 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-org
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-ocaml 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-ocaml
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-maxima 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-maxima
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-matlab 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-matlab
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-makefile 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-makefile
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-lob 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-lob
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-lisp 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-lisp
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-latex 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-latex
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-js 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-js
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-groovy 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-groovy
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-fortran 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-fortran
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-forth 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-forth
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-eval 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-eval
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-eshell 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-eshell
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-emacs-lisp 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-emacs-lisp
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-dot 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-dot
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-ditaa 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-ditaa
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-css 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-css
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-clojure 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-clojure
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-calc 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-calc
/gnu/store/l0875pf7r4vr3g5x7fc1g58n387k1v1c-emacs-org-9.5.5/share/emacs/site-lisp/org-9.5.5/ob-awk 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/org/ob-awk
/gnu/store/gcvj3grb55ic034b9a56p6m182b2qfdr-emacs-nadvice-0.3/share/emacs/site-lisp/nadvice-0.3/nadvice 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/emacs-lisp/nadvice
/gnu/store/647vafv4sxcs30qh566bdabhxh5iiw9v-emacs-eldoc-1.13.0/share/emacs/site-lisp/eldoc-1.13.0/eldoc 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/emacs-lisp/eldoc
/gnu/store/xn6s0vh7i0pk5p5kq7hc5w89fgmp02j8-emacs-let-alist-1.0.6/share/emacs/site-lisp/let-alist-1.0.6/let-alist 
hides 
/gnu/store/8n3sgdlylaxns28g9kldmfp3b3rah5dv-emacs-28.2/share/emacs/28.2/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
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 69045 3570)
  (symbols 48 6639 0)
  (strings 32 19789 2469)
  (string-bytes 1 706002)
  (vectors 16 14959)
  (vector-slots 8 305735 7624)
  (floats 8 22 31)
  (intervals 56 223 0)
  (buffers 992 10))

[-- Attachment #2: OpenPGP_0xC375C6AF05125C52.asc --]
[-- Type: application/pgp-keys, Size: 15557 bytes --]

[-- Attachment #3: OpenPGP_signature --]
[-- Type: application/pgp-signature, Size: 499 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2022-10-31  9:04 ` bug#58921: Tab completion hangs in eshell reza via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-11-02  7:28   ` Gerd Möllmann
  2023-02-10  7:34   ` Jim Porter
  1 sibling, 0 replies; 10+ messages in thread
From: Gerd Möllmann @ 2022-11-02  7:28 UTC (permalink / raw)
  To: reza; +Cc: 58921

reza <reza@housseini.me> writes:

> Open an eshell:
>
>      M-x eshell <enter>
>
> Type this command in the eshell
>
>      tab --warning=no-timestamp -xf <tab>
>
> emacs will hang and has to be killed.
>
> This behavior does not occur when only typing
>
>      tar -xf <tab>

Didn't check 28.  On master, it gets into a loop which can be
interrupted with C-g.  Backtrace is

Debugger entered--Lisp error: (quit)
  pcomplete-match("\\`--suffix=" 0)
  pcomplete/tar()
  pcomplete-completions()
  pcomplete-completions-at-point()
  completion--capf-wrapper(pcomplete-completions-at-point all)
  run-hook-wrapped(completion--capf-wrapper pcomplete-completions-at-point all)
  completion-at-point()
  funcall-interactively(completion-at-point)
  call-interactively(completion-at-point nil nil)
  command-execute(completion-at-point)

Maybe this helps someone knowing pcomplete.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2022-10-31  9:04 ` bug#58921: Tab completion hangs in eshell reza via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-11-02  7:28   ` Gerd Möllmann
@ 2023-02-10  7:34   ` Jim Porter
  2023-02-23  6:57     ` Jim Porter
  2023-02-23 18:08     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 2 replies; 10+ messages in thread
From: Jim Porter @ 2023-02-10  7:34 UTC (permalink / raw)
  To: reza, 58921; +Cc: monnier

[-- Attachment #1: Type: text/plain, Size: 563 bytes --]

X-Debbugs-Cc: monnier@iro.umontreal.ca

On 10/31/2022 2:04 AM, reza via Bug reports for GNU Emacs, the Swiss 
army knife of text editors wrote:
> Open an eshell:
> 
>       M-x eshell <enter>
> 
> Type this command in the eshell
> 
>       tab --warning=no-timestamp -xf <tab>
> 
> emacs will hang and has to be killed.
> 
> This behavior does not occur when only typing
> 
>       tar -xf <tab>

I believe the attached patch fixes this. It ensures that even when 
'pcomplete/tar' encounters an option it doesn't recognize, it continues 
to make forward progress.

[-- Attachment #2: 0001-Fix-Pcompletion-of-tar-when-using-unrecognized-argum.patch --]
[-- Type: text/plain, Size: 3556 bytes --]

From b11cfb6fc1cbb52b88425f66b4dc503b9e3cd543 Mon Sep 17 00:00:00 2001
From: Jim Porter <jporterbugs@gmail.com>
Date: Thu, 9 Feb 2023 23:27:50 -0800
Subject: [PATCH] Fix Pcompletion of "tar" when using unrecognized arguments

Previously, arguments to tar like "--warning=no-timestamp" would cause
Pcompletion to hang (bug#58921).

* lisp/pcmpl-gnu.el (pcomplete/tar): Properly handle completion of
arguments that look like "--ARG=", even if they're not recognized by
this function.  (This also lets us coalesce a lot of the different
cases into one.)
---
 lisp/pcmpl-gnu.el | 24 +++---------------------
 1 file changed, 3 insertions(+), 21 deletions(-)

diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el
index 7d270ea789f..00e9af3a974 100644
--- a/lisp/pcmpl-gnu.el
+++ b/lisp/pcmpl-gnu.el
@@ -276,20 +276,12 @@ pcomplete/tar
       (cond
        ((pcomplete-match "\\`-\\'" 0)
         (pcomplete-here*))
-       ((pcomplete-match "\\`--after-date=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--backup=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--blocking-factor=" 0)
-        (pcomplete-here*))
        ((pcomplete-match "\\`--directory=\\(.*\\)" 0)
         (pcomplete-here* (pcomplete-dirs)
                          (pcomplete-match-string 1 0)))
        ((pcomplete-match "\\`--exclude-from=\\(.*\\)" 0)
         (pcomplete-here* (pcomplete-entries)
                          (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--exclude=" 0)
-        (pcomplete-here*))
        ((pcomplete-match "\\`--\\(extract\\|list\\)\\'" 0)
         (setq complete-within t))
        ((pcomplete-match "\\`--file=\\(.*\\)" 0)
@@ -304,36 +296,26 @@ pcomplete/tar
        ((pcomplete-match "\\`--info-script=\\(.*\\)" 0)
         (pcomplete-here* (pcomplete-entries)
                          (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--label=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--mode=" 0)
-        (pcomplete-here*))
        ((pcomplete-match "\\`--new-volume-script=\\(.*\\)" 0)
         (pcomplete-here* (pcomplete-entries)
                          (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--newer=" 0)
-        (pcomplete-here*))
        ((pcomplete-match "\\`--owner=\\(.*\\)" 0)
         (pcomplete-here* (pcmpl-unix-user-names)
                          (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--record-size=" 0)
-        (pcomplete-here*))
        ((pcomplete-match "\\`--rsh-command=\\(.*\\)" 0)
         (pcomplete-here* (funcall pcomplete-command-completion-function)
                          (pcomplete-match-string 1 0)))
        ((pcomplete-match "\\`--starting-file=\\(.*\\)" 0)
         (pcomplete-here* (pcomplete-entries)
                          (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--suffix=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--tape-length=" 0)
-        (pcomplete-here*))
        ((pcomplete-match "\\`--use-compress-program=\\(.*\\)" 0)
         (pcomplete-here* (funcall pcomplete-command-completion-function)
                          (pcomplete-match-string 1 0)))
        ((pcomplete-match "\\`--volno-file=\\(.*\\)" 0)
         (pcomplete-here* (pcomplete-entries)
-                         (pcomplete-match-string 1 0)))))
+                         (pcomplete-match-string 1 0)))
+       ((pcomplete-match "\\`--.*=" 0)
+        (pcomplete-here*))))
     (unless saw-option
       (pcomplete-here
        (mapcar #'char-to-string
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2023-02-10  7:34   ` Jim Porter
@ 2023-02-23  6:57     ` Jim Porter
  2023-02-23 18:08     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 10+ messages in thread
From: Jim Porter @ 2023-02-23  6:57 UTC (permalink / raw)
  To: reza, 58921; +Cc: monnier

On 2/9/2023 11:34 PM, Jim Porter wrote:
> I believe the attached patch fixes this. It ensures that even when 
> 'pcomplete/tar' encounters an option it doesn't recognize, it continues 
> to make forward progress.

Stefan, any thoughts on this patch? I think it's pretty safe, but maybe 
there's a better way to do all this...





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2023-02-10  7:34   ` Jim Porter
  2023-02-23  6:57     ` Jim Porter
@ 2023-02-23 18:08     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-02-23 19:25       ` Jim Porter
  1 sibling, 1 reply; 10+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-02-23 18:08 UTC (permalink / raw)
  To: Jim Porter; +Cc: 58921, reza

> @@ -304,36 +296,26 @@ pcomplete/tar
>         ((pcomplete-match "\\`--info-script=\\(.*\\)" 0)
>          (pcomplete-here* (pcomplete-entries)
>                           (pcomplete-match-string 1 0)))
> -       ((pcomplete-match "\\`--label=" 0)
> -        (pcomplete-here*))
> -       ((pcomplete-match "\\`--mode=" 0)
> -        (pcomplete-here*))
>         ((pcomplete-match "\\`--new-volume-script=\\(.*\\)" 0)
>          (pcomplete-here* (pcomplete-entries)
>                           (pcomplete-match-string 1 0)))
> -       ((pcomplete-match "\\`--newer=" 0)
> -        (pcomplete-here*))
>         ((pcomplete-match "\\`--owner=\\(.*\\)" 0)
>          (pcomplete-here* (pcmpl-unix-user-names)
>                           (pcomplete-match-string 1 0)))
> -       ((pcomplete-match "\\`--record-size=" 0)
> -        (pcomplete-here*))
>         ((pcomplete-match "\\`--rsh-command=\\(.*\\)" 0)
>          (pcomplete-here* (funcall pcomplete-command-completion-function)
>                           (pcomplete-match-string 1 0)))
>         ((pcomplete-match "\\`--starting-file=\\(.*\\)" 0)
>          (pcomplete-here* (pcomplete-entries)
>                           (pcomplete-match-string 1 0)))
> -       ((pcomplete-match "\\`--suffix=" 0)
> -        (pcomplete-here*))
> -       ((pcomplete-match "\\`--tape-length=" 0)
> -        (pcomplete-here*))
>         ((pcomplete-match "\\`--use-compress-program=\\(.*\\)" 0)
>          (pcomplete-here* (funcall pcomplete-command-completion-function)
>                           (pcomplete-match-string 1 0)))
>         ((pcomplete-match "\\`--volno-file=\\(.*\\)" 0)
>          (pcomplete-here* (pcomplete-entries)
> -                         (pcomplete-match-string 1 0)))))
> +                         (pcomplete-match-string 1 0)))
> +       ((pcomplete-match "\\`--.*=" 0)
> +        (pcomplete-here*))))
>      (unless saw-option
>        (pcomplete-here
>         (mapcar #'char-to-string

This looks good, but doesn't that still leave an inf-loop bug when the
input doesn't (pcomplete-match "\\`--.*=" 0)?


        Stefan






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2023-02-23 18:08     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-02-23 19:25       ` Jim Porter
  2023-02-23 19:34         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 10+ messages in thread
From: Jim Porter @ 2023-02-23 19:25 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: reza, 58921

On 2/23/2023 10:08 AM, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> This looks good, but doesn't that still leave an inf-loop bug when the
> input doesn't (pcomplete-match "\\`--.*=" 0)?

Testing this manually, I think it's ok. Prior to my patch, the following 
works ok:

   1)  tar potato <TAB>
   2)  tar --potato <TAB>

However, this would hang:

   3)  tar --potato=russet <TAB>

So we just need to fix the case where the argument matches "\\`--.*=". 
I'm still not really clear on all the details of how Pcomplete works, 
but I think case (2) works because of this code just before my diff:

   (if (pcomplete-match "^--\\([^= \t\n\f]*\\)\\'" 0)
       ;; FIXME: Extract this list from "tar --help".
       (pcomplete-here*
        '("--absolute-names"
          ;; ...
          "--volno-file=")))

That is, if we have an arg starting with "--" and without an "=", call 
'pcomplete-here*'. Even the arg doesn't match anything in that list, it 
should still move forward (I think). However, when we have an "=" in the 
arg, the function instead evaluates the 'cond' block that I modified, so 
it needs to be sure to call 'pcomplete-here*' (or some other function) 
to make forward progress.

Maybe this should have some regression tests...





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2023-02-23 19:25       ` Jim Porter
@ 2023-02-23 19:34         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-02-23 20:43           ` Jim Porter
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-02-23 19:34 UTC (permalink / raw)
  To: Jim Porter; +Cc: reza, 58921

> So we just need to fix the case where the argument matches "\\`--.*=". I'm
> still not really clear on all the details of how Pcomplete works, but
> I think case (2) works because of this code just before my diff:
>
>   (if (pcomplete-match "^--\\([^= \t\n\f]*\\)\\'" 0)
>       ;; FIXME: Extract this list from "tar --help".
>       (pcomplete-here*
>        '("--absolute-names"
>          ;; ...
>          "--volno-file=")))
>
> That is, if we have an arg starting with "--" and without an "=", call
> 'pcomplete-here*'. Even the arg doesn't match anything in that list, it
> should still move forward (I think). However, when we have an "=" in the
> arg, the function instead evaluates the 'cond' block that I modified, so it
> needs to be sure to call 'pcomplete-here*' (or some other function) to make
> forward progress.

The way I see it, either we still have an inf-loop or your
(pcomplete-match "\\`--.*=" 0) condition is redundant.

From what you say the inf-loop should only manifest if we match neither

    (pcomplete-match "^--\\([^= \t\n\f]*\\)\\'" 0)

nor

    (pcomplete-match "\\`--.*=" 0)

and indeed:

    tar --pot\ <TAB>

seems to hang.


        Stefan






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2023-02-23 19:34         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-02-23 20:43           ` Jim Porter
  2023-03-04  5:37             ` Jim Porter
  0 siblings, 1 reply; 10+ messages in thread
From: Jim Porter @ 2023-02-23 20:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 58921, reza

[-- Attachment #1: Type: text/plain, Size: 987 bytes --]

On 2/23/2023 11:34 AM, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> The way I see it, either we still have an inf-loop or your
> (pcomplete-match "\\`--.*=" 0) condition is redundant.
> 
>  From what you say the inf-loop should only manifest if we match neither
> 
>      (pcomplete-match "^--\\([^= \t\n\f]*\\)\\'" 0)
> 
> nor
> 
>      (pcomplete-match "\\`--.*=" 0)
> 
> and indeed:
> 
>      tar --pot\ <TAB>
> 
> seems to hang.

Ah, good point. Instead of '(pcomplete-match "\\`--.*=" 0)', I think we 
want to handle all args starting with "--", but not matching "^--\\([^= 
\t\n\f]*\\)\\'". The goal is to call 'pcomplete-here*' exactly once per 
option.

I did this a slightly different way in the updated patch by moving all 
the "--" cases into a single place (likewise with the "-" options). I 
think this is easier to follow than before, and makes it more obvious 
that we're calling 'pcomplete-here*' the right number of times.

[-- Attachment #2: 0001-Fix-Pcompletion-of-tar-when-using-unrecognized-argum.patch --]
[-- Type: text/plain, Size: 11413 bytes --]

From 1b84e2cbf2fbfa0acde84d6fd5298a9997f6c8b8 Mon Sep 17 00:00:00 2001
From: Jim Porter <jporterbugs@gmail.com>
Date: Thu, 9 Feb 2023 23:27:50 -0800
Subject: [PATCH] Fix Pcompletion of "tar" when using unrecognized arguments

Previously, arguments to tar like "--warning=no-timestamp" would cause
Pcompletion to hang (bug#58921).

This simplifies the logic flow by moving all the cases for "--"
arguments inside the THEN form of '(if (pcomplete-match "^--" 0)', and
for all "-" arguments inside the ELSE form.

* lisp/pcmpl-gnu.el (pcmpl-gnu--tar-long-options): New variable.
(pcomplete/tar): Properly handle completion of arguments that look
like "--ARG=", even if they're not recognized by this function.
---
 lisp/pcmpl-gnu.el | 269 ++++++++++++++++++++++------------------------
 1 file changed, 127 insertions(+), 142 deletions(-)

diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el
index 7d270ea789f..1553c3efed7 100644
--- a/lisp/pcmpl-gnu.el
+++ b/lisp/pcmpl-gnu.el
@@ -184,6 +184,86 @@ pcmpl-gnu-with-file-buffer
          (when (and (not ,exist) (buffer-live-p ,buf))
            (kill-buffer ,buf))))))
 
+(defvar pcmpl-gnu--tar-long-options
+  ;; FIXME: Extract this list from "tar --help".
+  '("--absolute-names"
+    "--after-date="
+    "--append"
+    "--atime-preserve"
+    "--backup"
+    "--block-number"
+    "--blocking-factor="
+    "--catenate"
+    "--checkpoint"
+    "--compare"
+    "--compress"
+    "--concatenate"
+    "--confirmation"
+    "--create"
+    "--delete"
+    "--dereference"
+    "--diff"
+    "--directory="
+    "--exclude="
+    "--exclude-from="
+    "--extract"
+    "--file="
+    "--files-from="
+    "--force-local"
+    "--get"
+    "--group="
+    "--gzip"
+    "--help"
+    "--ignore-failed-read"
+    "--ignore-zeros"
+    "--incremental"
+    "--info-script="
+    "--interactive"
+    "--keep-old-files"
+    "--label="
+    "--list"
+    "--listed-incremental"
+    "--mode="
+    "--modification-time"
+    "--multi-volume"
+    "--new-volume-script="
+    "--newer="
+    "--newer-mtime"
+    "--no-recursion"
+    "--null"
+    "--numeric-owner"
+    "--old-archive"
+    "--one-file-system"
+    "--owner="
+    "--portability"
+    "--posix"
+    "--preserve"
+    "--preserve-order"
+    "--preserve-permissions"
+    "--read-full-records"
+    "--record-size="
+    "--recursive-unlink"
+    "--remove-files"
+    "--rsh-command="
+    "--same-order"
+    "--same-owner"
+    "--same-permissions"
+    "--sparse"
+    "--starting-file="
+    "--suffix="
+    "--tape-length="
+    "--to-stdout"
+    "--totals"
+    "--uncompress"
+    "--ungzip"
+    "--unlink-first"
+    "--update"
+    "--use-compress-program="
+    "--verbose"
+    "--verify"
+    "--version"
+    "--volno-file="))
+
 ;;;###autoload
 (defun pcomplete/tar ()
   "Completion for the GNU tar utility."
@@ -192,148 +272,53 @@ pcomplete/tar
     (while (pcomplete-match "^-" 0)
       (setq saw-option t)
       (if (pcomplete-match "^--" 0)
-          (if (pcomplete-match "^--\\([^= \t\n\f]*\\)\\'" 0)
-              ;; FIXME: Extract this list from "tar --help".
-              (pcomplete-here*
-               '("--absolute-names"
-                 "--after-date="
-                 "--append"
-                 "--atime-preserve"
-                 "--backup"
-                 "--block-number"
-                 "--blocking-factor="
-                 "--catenate"
-                 "--checkpoint"
-                 "--compare"
-                 "--compress"
-                 "--concatenate"
-                 "--confirmation"
-                 "--create"
-                 "--delete"
-                 "--dereference"
-                 "--diff"
-                 "--directory="
-                 "--exclude="
-                 "--exclude-from="
-                 "--extract"
-                 "--file="
-                 "--files-from="
-                 "--force-local"
-                 "--get"
-                 "--group="
-                 "--gzip"
-                 "--help"
-                 "--ignore-failed-read"
-                 "--ignore-zeros"
-                 "--incremental"
-                 "--info-script="
-                 "--interactive"
-                 "--keep-old-files"
-                 "--label="
-                 "--list"
-                 "--listed-incremental"
-                 "--mode="
-                 "--modification-time"
-                 "--multi-volume"
-                 "--new-volume-script="
-                 "--newer="
-                 "--newer-mtime"
-                 "--no-recursion"
-                 "--null"
-                 "--numeric-owner"
-                 "--old-archive"
-                 "--one-file-system"
-                 "--owner="
-                 "--portability"
-                 "--posix"
-                 "--preserve"
-                 "--preserve-order"
-                 "--preserve-permissions"
-                 "--read-full-records"
-                 "--record-size="
-                 "--recursive-unlink"
-                 "--remove-files"
-                 "--rsh-command="
-                 "--same-order"
-                 "--same-owner"
-                 "--same-permissions"
-                 "--sparse"
-                 "--starting-file="
-                 "--suffix="
-                 "--tape-length="
-                 "--to-stdout"
-                 "--totals"
-                 "--uncompress"
-                 "--ungzip"
-                 "--unlink-first"
-                 "--update"
-                 "--use-compress-program="
-                 "--verbose"
-                 "--verify"
-                 "--version"
-                 "--volno-file=")))
-        (pcomplete-opt "01234567ABCFGKLMNOPRSTUVWXZbcdfghiklmoprstuvwxz"))
-      (cond
-       ((pcomplete-match "\\`-\\'" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--after-date=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--backup=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--blocking-factor=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--directory=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-dirs)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--exclude-from=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-entries)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--exclude=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--\\(extract\\|list\\)\\'" 0)
-        (setq complete-within t))
-       ((pcomplete-match "\\`--file=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-dirs-or-entries pcmpl-gnu-tarfile-regexp)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--files-from=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-entries)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--group=\\(.*\\)" 0)
-        (pcomplete-here* (pcmpl-unix-group-names)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--info-script=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-entries)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--label=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--mode=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--new-volume-script=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-entries)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--newer=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--owner=\\(.*\\)" 0)
-        (pcomplete-here* (pcmpl-unix-user-names)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--record-size=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--rsh-command=\\(.*\\)" 0)
-        (pcomplete-here* (funcall pcomplete-command-completion-function)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--starting-file=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-entries)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--suffix=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--tape-length=" 0)
-        (pcomplete-here*))
-       ((pcomplete-match "\\`--use-compress-program=\\(.*\\)" 0)
-        (pcomplete-here* (funcall pcomplete-command-completion-function)
-                         (pcomplete-match-string 1 0)))
-       ((pcomplete-match "\\`--volno-file=\\(.*\\)" 0)
-        (pcomplete-here* (pcomplete-entries)
-                         (pcomplete-match-string 1 0)))))
+          (cond
+           ((pcomplete-match "^--\\([^= \t\n\f]*\\)\\'" 0)
+            (pcomplete-here* pcmpl-gnu--tar-long-options))
+           ((pcomplete-match "\\`--directory=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-dirs)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--exclude-from=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-entries)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--\\(extract\\|list\\)\\'" 0)
+            (setq complete-within t))
+           ((pcomplete-match "\\`--file=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-dirs-or-entries
+                              pcmpl-gnu-tarfile-regexp)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--files-from=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-entries)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--group=\\(.*\\)" 0)
+            (pcomplete-here* (pcmpl-unix-group-names)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--info-script=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-entries)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--new-volume-script=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-entries)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--owner=\\(.*\\)" 0)
+            (pcomplete-here* (pcmpl-unix-user-names)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--rsh-command=\\(.*\\)" 0)
+            (pcomplete-here* (funcall pcomplete-command-completion-function)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--starting-file=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-entries)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--use-compress-program=\\(.*\\)" 0)
+            (pcomplete-here* (funcall pcomplete-command-completion-function)
+                             (pcomplete-match-string 1 0)))
+           ((pcomplete-match "\\`--volno-file=\\(.*\\)" 0)
+            (pcomplete-here* (pcomplete-entries)
+                             (pcomplete-match-string 1 0)))
+           (t
+            (pcomplete-here*)))
+        (pcomplete-opt "01234567ABCFGKLMNOPRSTUVWXZbcdfghiklmoprstuvwxz")
+        (when (pcomplete-match "\\`-\\'" 0)
+          (pcomplete-here*))))
     (unless saw-option
       (pcomplete-here
        (mapcar #'char-to-string
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2023-02-23 20:43           ` Jim Porter
@ 2023-03-04  5:37             ` Jim Porter
  2023-03-08 23:53               ` Jim Porter
  0 siblings, 1 reply; 10+ messages in thread
From: Jim Porter @ 2023-03-04  5:37 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: reza, 58921

On 2/23/2023 12:43 PM, Jim Porter wrote:
> Ah, good point. Instead of '(pcomplete-match "\\`--.*=" 0)', I think we 
> want to handle all args starting with "--", but not matching "^--\\([^= 
> \t\n\f]*\\)\\'". The goal is to call 'pcomplete-here*' exactly once per 
> option.
> 
> I did this a slightly different way in the updated patch by moving all 
> the "--" cases into a single place (likewise with the "-" options). I 
> think this is easier to follow than before, and makes it more obvious 
> that we're calling 'pcomplete-here*' the right number of times.

Any other thoughts before I merge this patch?





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#58921: Tab completion hangs in eshell
  2023-03-04  5:37             ` Jim Porter
@ 2023-03-08 23:53               ` Jim Porter
  0 siblings, 0 replies; 10+ messages in thread
From: Jim Porter @ 2023-03-08 23:53 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 58921-done, reza

On 3/3/2023 9:37 PM, Jim Porter wrote:
> Any other thoughts before I merge this patch?

Merged as 38427494d5b, and closing this bug now. Of course, if there are 
any remaining issues, just let me know and I'll take a look.





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-03-08 23:53 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <2cb2b8aa-0813-5eae-3bfc-27831b3d50dd@housseini.me>
2022-10-31  9:04 ` bug#58921: Tab completion hangs in eshell reza via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-02  7:28   ` Gerd Möllmann
2023-02-10  7:34   ` Jim Porter
2023-02-23  6:57     ` Jim Porter
2023-02-23 18:08     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-23 19:25       ` Jim Porter
2023-02-23 19:34         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-23 20:43           ` Jim Porter
2023-03-04  5:37             ` Jim Porter
2023-03-08 23:53               ` Jim Porter

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).