unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#51858: 29.0.50; pcomplete not ignoring case
@ 2021-11-15  5:47 Carlos Pita
  2021-11-15  5:59 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Carlos Pita @ 2021-11-15  5:47 UTC (permalink / raw)
  To: 51858

Hi all,

the docstring for pcomplete-ignore-case (which is now an alias for
completion-ignore-case) says:

    Non-nil means don’t consider case significant in completion.
    For file-name completion, ‘read-file-name-completion-ignore-case’
    controls the behavior, rather than this variable.

But if I set read-file-name-completion-ignore-case to t I'm still unable
to complete, for example, "cd ~/desk<tab>" to "cd ~/Desktop" in a
shell. OTOH setting pcomplete-ignore-case to t gives the desired
completion.

I'm not sure whether something like "cd ~/desk<tab>" in a M-x shell
counts as "file-name completion" or not, but it seems to me that it
should.

Best regards,
Carlos

---


In GNU Emacs 29.0.50 (build 1, x86_64-apple-darwin20.6.0, NS appkit-2022.60 Version 11.6 (Build 20G165))
 of 2021-11-14 built on Carloss-MacBook-Pro.local
Repository revision: 370d4038c5a671d3b9e3a4d28d849948c1a96f53
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.6

Configured using:
 'configure --with-native-compilation'

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

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

Major mode: Lisp Interaction

Minor modes in effect:
  outline-minor-mode: t
  display-line-numbers-mode: t
  electric-pair-mode: t
  windmove-mode: t
  corfu-global-mode: t
  corfu-mode: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  fido-mode: t
  winner-mode: t
  recentf-mode: t
  ns-auto-titlebar-mode: t
  minions-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Users/carlos/.emacs.d/elpa/transient-20211105.100/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient
~/Install/Source/org-mode/lisp/ob-exp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp
~/Install/Source/org-mode/lisp/ob-emacs-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
~/Install/Source/org-mode/lisp/oc hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc
~/Install/Source/org-mode/lisp/ob-css hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-css
~/Install/Source/org-mode/lisp/ob-lob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob
~/Install/Source/org-mode/lisp/ol-irc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-irc
~/Install/Source/org-mode/lisp/ob-forth hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-forth
~/Install/Source/org-mode/lisp/org-macs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macs
~/Install/Source/org-mode/lisp/ob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob
~/Install/Source/org-mode/lisp/org-version hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-version
~/Install/Source/org-mode/lisp/ob-scheme hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme
~/Install/Source/org-mode/lisp/ox hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox
~/Install/Source/org-mode/lisp/ob-C hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-C
~/Install/Source/org-mode/lisp/org-capture hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-capture
~/Install/Source/org-mode/lisp/ob-ref hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref
~/Install/Source/org-mode/lisp/ob-clojure hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure
~/Install/Source/org-mode/lisp/org-mouse hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse
~/Install/Source/org-mode/lisp/org-ctags hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags
~/Install/Source/org-mode/lisp/org-entities hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-entities
~/Install/Source/org-mode/lisp/org-archive hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-archive
~/Install/Source/org-mode/lisp/ob-screen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen
~/Install/Source/org-mode/lisp/ol-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-bibtex
~/Install/Source/org-mode/lisp/ob-haskell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell
~/Install/Source/org-mode/lisp/org-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-table
~/Install/Source/org-mode/lisp/ol-eww hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-eww
~/Install/Source/org-mode/lisp/ol-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-man
~/Install/Source/org-mode/lisp/ox-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-org
~/Install/Source/org-mode/lisp/org-num hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-num
~/Install/Source/org-mode/lisp/org-plot hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-plot
~/Install/Source/org-mode/lisp/ol-rmail hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-rmail
~/Install/Source/org-mode/lisp/ob-awk hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk
~/Install/Source/org-mode/lisp/ob-groovy hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-groovy
~/Install/Source/org-mode/lisp/ob-octave hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave
~/Install/Source/org-mode/lisp/org-faces hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-faces
~/Install/Source/org-mode/lisp/oc-biblatex hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-biblatex
~/Install/Source/org-mode/lisp/org-colview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-colview
~/Install/Source/org-mode/lisp/ob-R hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-R
~/Install/Source/org-mode/lisp/org-refile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-refile
~/Install/Source/org-mode/lisp/org-timer hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-timer
~/Install/Source/org-mode/lisp/org-mobile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile
~/Install/Source/org-mode/lisp/ob-fortran hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran
~/Install/Source/org-mode/lisp/ob-shell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-shell
~/Install/Source/org-mode/lisp/ob-perl hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl
~/Install/Source/org-mode/lisp/ob-sqlite hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
~/Install/Source/org-mode/lisp/oc-basic hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-basic
~/Install/Source/org-mode/lisp/ob-sed hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sed
~/Install/Source/org-mode/lisp/org-list hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-list
~/Install/Source/org-mode/lisp/ob-ruby hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby
~/Install/Source/org-mode/lisp/ob-eval hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval
~/Install/Source/org-mode/lisp/org-habit hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-habit
~/Install/Source/org-mode/lisp/org-clock hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-clock
~/Install/Source/org-mode/lisp/org-goto hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-goto
~/Install/Source/org-mode/lisp/ox-html hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-html
~/Install/Source/org-mode/lisp/org-src hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-src
~/Install/Source/org-mode/lisp/ob-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp
~/Install/Source/org-mode/lisp/ol-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-eshell
~/Install/Source/org-mode/lisp/ob-ditaa hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
~/Install/Source/org-mode/lisp/org-pcomplete hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
~/Install/Source/org-mode/lisp/org-lint hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-lint
~/Install/Source/org-mode/lisp/ox-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-latex
~/Install/Source/org-mode/lisp/ob-sass hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass
~/Install/Source/org-mode/lisp/ob-tangle hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle
~/Install/Source/org-mode/lisp/ob-calc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc
~/Install/Source/org-mode/lisp/ob-java hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-java
~/Install/Source/org-mode/lisp/ox-icalendar hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
~/Install/Source/org-mode/lisp/ol-mhe hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-mhe
~/Install/Source/org-mode/lisp/org-attach-git hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach-git
~/Install/Source/org-mode/lisp/ox-md hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-md
~/Install/Source/org-mode/lisp/ox-beamer hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-beamer
~/Install/Source/org-mode/lisp/org-element hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-element
~/Install/Source/org-mode/lisp/oc-natbib hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-natbib
~/Install/Source/org-mode/lisp/org-protocol hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol
~/Install/Source/org-mode/lisp/ob-gnuplot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
~/Install/Source/org-mode/lisp/org-tempo hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-tempo
~/Install/Source/org-mode/lisp/ob-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex
~/Install/Source/org-mode/lisp/ol-w3m hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-w3m
~/Install/Source/org-mode/lisp/org-id hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-id
~/Install/Source/org-mode/lisp/ox-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-man
~/Install/Source/org-mode/lisp/ol-doi hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-doi
~/Install/Source/org-mode/lisp/org-feed hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-feed
~/Install/Source/org-mode/lisp/ob-julia hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-julia
~/Install/Source/org-mode/lisp/ob-lua hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lua
~/Install/Source/org-mode/lisp/ob-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-table
~/Install/Source/org-mode/lisp/ob-ocaml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
~/Install/Source/org-mode/lisp/oc-csl hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-csl
~/Install/Source/org-mode/lisp/ol-gnus hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-gnus
~/Install/Source/org-mode/lisp/org-indent hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-indent
~/Install/Source/org-mode/lisp/ob-lilypond hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
~/Install/Source/org-mode/lisp/ob-matlab hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab
~/Install/Source/org-mode/lisp/org-datetree hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree
~/Install/Source/org-mode/lisp/ol-docview hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-docview
~/Install/Source/org-mode/lisp/ob-python hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-python
~/Install/Source/org-mode/lisp/ob-makefile hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-makefile
~/Install/Source/org-mode/lisp/org-duration hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-duration
~/Install/Source/org-mode/lisp/org-agenda hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda
~/Install/Source/org-mode/lisp/ob-dot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot
~/Install/Source/org-mode/lisp/ob-js hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-js
~/Install/Source/org-mode/lisp/ox-publish hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-publish
~/Install/Source/org-mode/lisp/org-inlinetask hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
~/Install/Source/org-mode/lisp/ob-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-org
~/Install/Source/org-mode/lisp/org-keys hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-keys
~/Install/Source/org-mode/lisp/ob-core hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-core
~/Install/Source/org-mode/lisp/org-compat hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-compat
~/Install/Source/org-mode/lisp/ol hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol
~/Install/Source/org-mode/lisp/ox-odt hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-odt
~/Install/Source/org-mode/lisp/ol-info hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-info
~/Install/Source/org-mode/lisp/ob-plantuml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
~/Install/Source/org-mode/lisp/ob-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eshell
~/Install/Source/org-mode/lisp/ox-ascii hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-ascii
~/Install/Source/org-mode/lisp/org-loaddefs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
~/Install/Source/org-mode/lisp/ox-koma-letter hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-koma-letter
~/Install/Source/org-mode/lisp/ob-maxima hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima
~/Install/Source/org-mode/lisp/org hides /Applications/Emacs.app/Contents/Resources/lisp/org/org
~/Install/Source/org-mode/lisp/ol-bbdb hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-bbdb
~/Install/Source/org-mode/lisp/org-macro hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macro
~/Install/Source/org-mode/lisp/ob-sql hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql
~/Install/Source/org-mode/lisp/org-attach hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach
~/Install/Source/org-mode/lisp/ob-processing hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-processing
~/Install/Source/org-mode/lisp/ox-texinfo hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
~/Install/Source/org-mode/lisp/org-crypt hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt
~/Install/Source/org-mode/lisp/org-footnote hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote
~/Install/Source/org-mode/lisp/org-install hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-install
~/Install/Source/org-mode/lisp/ob-comint hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint

Features:
(shadow sort mail-extr emacsbug message yank-media rmc puny rfc822 mml
mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils help-mode
noutline outline display-line-numbers elec-pair server dired-x dired
dired-loaddefs exec-path-from-shell eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-groups esh-util windmove corfu
icomplete winner ring recentf tree-widget wid-edit ns-auto-titlebar
minions pcase easy-mmode modus-operandi-theme modus-themes finder-inf
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 map url-vars seq gv subr-x byte-opt bytecomp
byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer 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 kqueue
cocoa ns lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 346006 8237)
 (symbols 48 18661 0)
 (strings 32 85868 2513)
 (string-bytes 1 2323310)
 (vectors 16 26712)
 (vector-slots 8 505345 19072)
 (floats 8 130 803)
 (intervals 56 338 0)
 (buffers 992 10))





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

* bug#51858: 29.0.50; pcomplete not ignoring case
  2021-11-15  5:47 bug#51858: 29.0.50; pcomplete not ignoring case Carlos Pita
@ 2021-11-15  5:59 ` Lars Ingebrigtsen
  2021-11-15  7:16   ` Carlos Pita
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-15  5:59 UTC (permalink / raw)
  To: Carlos Pita; +Cc: 51858

Carlos Pita <carlosjosepita2@gmail.com> writes:

> the docstring for pcomplete-ignore-case (which is now an alias for
> completion-ignore-case) says:
>
>     Non-nil means don’t consider case significant in completion.
>     For file-name completion, ‘read-file-name-completion-ignore-case’
>     controls the behavior, rather than this variable.
>
> But if I set read-file-name-completion-ignore-case to t I'm still unable
> to complete, for example, "cd ~/desk<tab>" to "cd ~/Desktop" in a
> shell. OTOH setting pcomplete-ignore-case to t gives the desired
> completion.
>
> I'm not sure whether something like "cd ~/desk<tab>" in a M-x shell
> counts as "file-name completion" or not, but it seems to me that it
> should.

Just to clarify -- read-file-name-completion-ignore-case works
everywhere else, but doesn't work in a *shell* buffer?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#51858: 29.0.50; pcomplete not ignoring case
  2021-11-15  5:59 ` Lars Ingebrigtsen
@ 2021-11-15  7:16   ` Carlos Pita
  2021-11-15  8:00     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Carlos Pita @ 2021-11-15  7:16 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51858

> Just to clarify -- read-file-name-completion-ignore-case works
> everywhere else, but doesn't work in a *shell* buffer?

C-x C-f ~/desk<tab>  --> ~/Desktop

M-x shell<enter> cd ~/desk<tab>  --> no completion

M-x shell<enter> cd ~/Desk<tab>  --> ~/Desktop

This is with default settings:

    read-file-name-completion-ignore-case t
    completion/pcomplete-ignore-case nil





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

* bug#51858: 29.0.50; pcomplete not ignoring case
  2021-11-15  7:16   ` Carlos Pita
@ 2021-11-15  8:00     ` Lars Ingebrigtsen
  2021-11-19  5:06       ` Carlos Pita
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-15  8:00 UTC (permalink / raw)
  To: Carlos Pita; +Cc: 51858

Carlos Pita <carlosjosepita2@gmail.com> writes:

>> Just to clarify -- read-file-name-completion-ignore-case works
>> everywhere else, but doesn't work in a *shell* buffer?
>
> C-x C-f ~/desk<tab>  --> ~/Desktop
>
> M-x shell<enter> cd ~/desk<tab>  --> no completion
>
> M-x shell<enter> cd ~/Desk<tab>  --> ~/Desktop

I think that's a "yes".  😀

Following the call sequence here is quite complicated.  The following
fixes the issue, but is it the correct solution here?

diff --git a/lisp/comint.el b/lisp/comint.el
index 544f0b8b82..0182839d5c 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -3289,22 +3289,23 @@ comint-filename-completion
     (comint--complete-file-name-data)))
 
 (defun comint-completion-file-name-table (string pred action)
-  (if (not (file-name-absolute-p string))
-      (completion-file-name-table string pred action)
-    (cond
-     ((memq action '(t lambda))
-      (completion-file-name-table
-       (concat comint-file-name-prefix string) pred action))
-     ((null action)
-      (let ((res (completion-file-name-table
-                  (concat comint-file-name-prefix string) pred action)))
-        (if (and (stringp res)
-                 (string-match
-                  (concat "\\`" (regexp-quote comint-file-name-prefix))
-                  res))
-            (substring res (match-end 0))
-          res)))
-     (t (completion-file-name-table string pred action)))))
+  (let ((completion-ignore-case read-file-name-completion-ignore-case))
+    (if (not (file-name-absolute-p string))
+        (completion-file-name-table string pred action)
+      (cond
+       ((memq action '(t lambda))
+        (completion-file-name-table
+         (concat comint-file-name-prefix string) pred action))
+       ((null action)
+        (let ((res (completion-file-name-table
+                    (concat comint-file-name-prefix string) pred action)))
+          (if (and (stringp res)
+                   (string-match
+                    (concat "\\`" (regexp-quote comint-file-name-prefix))
+                    res))
+              (substring res (match-end 0))
+            res)))
+       (t (completion-file-name-table string pred action))))))
 
 (defvar comint-unquote-function #'comint--unquote-argument
   "Function to use for completion of quoted data.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#51858: 29.0.50; pcomplete not ignoring case
  2021-11-15  8:00     ` Lars Ingebrigtsen
@ 2021-11-19  5:06       ` Carlos Pita
  2021-11-19  5:32         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Carlos Pita @ 2021-11-19  5:06 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51858

Hi Lars,

Thanks! Your fix works for me. I'm not sure if this is the best place to set
completion-ignore-case though. If you look at the code for
comint--complete-file-name-data you will find that
completion-ignore-case is set in the same way that you did. But perhaps
too late because at that point comint-completion-file-name-table has
already been called. Perhaps the best fix is to bind completion-ignore-case
earlier in comint--complete-file-name-data. But if
comint-completion-file-name-table is intended to be called from other places,
then it's better to set completion-ignore-case there as you did.

Best regards,
Carlos





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

* bug#51858: 29.0.50; pcomplete not ignoring case
  2021-11-19  5:06       ` Carlos Pita
@ 2021-11-19  5:32         ` Lars Ingebrigtsen
  2022-09-20 13:32           ` bug#51858: Completion in shell buffers " Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-19  5:32 UTC (permalink / raw)
  To: Carlos Pita; +Cc: 51858

Carlos Pita <carlosjosepita2@gmail.com> writes:

> Thanks! Your fix works for me. I'm not sure if this is the best place to set
> completion-ignore-case though.

Yeah, me neither.  The completion machinery is hard to grok -- there's
so many magical wrappers and stuff that reasoning about it is a challenge.

> If you look at the code for comint--complete-file-name-data you will
> find that completion-ignore-case is set in the same way that you
> did. But perhaps too late because at that point
> comint-completion-file-name-table has already been called.

Yes, I think so.

> Perhaps the best fix is to bind completion-ignore-case
> earlier in comint--complete-file-name-data. But if
> comint-completion-file-name-table is intended to be called from other places,
> then it's better to set completion-ignore-case there as you did.

I think I tried doing that, and it didn't do the right thing, but I may
be mistaken.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#51858: Completion in shell buffers not ignoring case
  2021-11-19  5:32         ` Lars Ingebrigtsen
@ 2022-09-20 13:32           ` Lars Ingebrigtsen
  0 siblings, 0 replies; 7+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-20 13:32 UTC (permalink / raw)
  To: Carlos Pita; +Cc: Stefan Monnier, 51858

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> Perhaps the best fix is to bind completion-ignore-case
>> earlier in comint--complete-file-name-data. But if
>> comint-completion-file-name-table is intended to be called from other places,
>> then it's better to set completion-ignore-case there as you did.
>
> I think I tried doing that, and it didn't do the right thing, but I may
> be mistaken.

I bet Stefan has some insights here; added to the CCs.





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

end of thread, other threads:[~2022-09-20 13:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-15  5:47 bug#51858: 29.0.50; pcomplete not ignoring case Carlos Pita
2021-11-15  5:59 ` Lars Ingebrigtsen
2021-11-15  7:16   ` Carlos Pita
2021-11-15  8:00     ` Lars Ingebrigtsen
2021-11-19  5:06       ` Carlos Pita
2021-11-19  5:32         ` Lars Ingebrigtsen
2022-09-20 13:32           ` bug#51858: Completion in shell buffers " Lars Ingebrigtsen

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).