emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#52794: closed (28.0.90; Eshell: error while completing)


From: GNU bug Tracking System
Subject: bug#52794: closed (28.0.90; Eshell: error while completing)
Date: Mon, 27 Dec 2021 15:08:02 +0000

Your message dated Mon, 27 Dec 2021 16:07:43 +0100
with message-id <87bl12qe68.fsf@telefonica.net>
and subject line Re: bug#52794: 28.0.90; Eshell: error while completing
has caused the debbugs.gnu.org bug report #52794,
regarding 28.0.90; Eshell: error while completing
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
52794: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=52794
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 28.0.90; Eshell: error while completing Date: Sat, 25 Dec 2021 18:50:53 +0100
emacs -Q

M-x eshell

Go to a directory with two or more files with the same prefix. The Emacs
build directory, for instance. Let's suppose the prefix is `c'.

mv c* foo[TAB]

Debugger entered--Lisp error: (wrong-type-argument stringp ("config.log" 
"config.log~" "config.status"))
  string-match("\\.\\.\\.+/" ("config.log" "config.log~" "config.status"))
  #f(compiled-function (arg) #<bytecode 
0x18cd73f57cbbd741>)((eshell-extended-glob (eshell-convert (concat "c" "*"))))
  mapcar(#f(compiled-function (arg) #<bytecode 0x18cd73f57cbbd741>) ("mv" 
(eshell-extended-glob (eshell-convert (concat "c" "*"))) "l"))
  eshell-complete-parse-arguments()
  pcomplete-parse-arguments(nil)
  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)


The patch below fixes the problem, which if my analysis is correct, was
introduced by:

commit 9224a863192b1317ef307bcc76abfdfbad73b796
Author: Michalis V <mvar.40k@gmail.com>
Date:   Fri Aug 27 18:46:04 2021 +0200

    Fix completion of extended "..." syntax in eshell
    
    * lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Expand
    "..." (bug#19626).


emacs/lisp/eshell/em-cmpl.el
@@ -380,7 +380,7 @@
                       (setq val (number-to-string val)))
                      ;; expand .../ etc that only eshell understands to
                      ;; standard ../../
-                     ((string-match "\\.\\.\\.+/" val)
+                     ((and (stringp val) (string-match "\\.\\.\\.+/" val))
                       (setq val (eshell-expand-multiple-dots val))))
                (or val "")))
           args)

The problem is that `val' is a list when more than one file matches the
glob, and then `string-match' errors-out.

Ok to commit in emacs-28 ?



--- End Message ---
--- Begin Message --- Subject: Re: bug#52794: 28.0.90; Eshell: error while completing Date: Mon, 27 Dec 2021 16:07:43 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Lars Ingebrigtsen <larsi@gnus.org> writes:

>> Ok to commit in emacs-28 ?
>
> Yup.

Thanks. Pushed as ea65de757766fa4cb5a090012e2f6a0aeef0b9f8.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]