Subject: bug#18950: closed (Re: bug#18950: [PATCH] 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 16 Jan 2015 02:38:02 +0000

Your bug report

#18950: 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
18950: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18950
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#18950: [PATCH] 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled
From: Dmitry Gutov <[email-masked]>
To: Stefan Monnier <[email-masked]>, samer <[email-masked]>
Cc: [email-masked]
Date: Fri, 16 Jan 2015 05:36:57 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

On 01/15/2015 06:06 PM, Stefan Monnier wrote:
>> -	(if (and pcomplete-cycle-completions
>> -		 (listp pcomplete-stub) ;??
>> +	(if (and (listp pcomplete-stub) ;??
>
> I haven't had time to look more closely at the bug and the code, but
> if this indeed works, then it looks like a good change.

It does. Installed and marked as "tiny change".

Thanks, Samer!

Subject: 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled
From: Dmitry Gutov <[email-masked]>
To: [email-masked]
Date: Wed, 05 Nov 2014 07:27:56 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

1. M-x eshell
2. (setq pcomplete-cycle-completions nil)
3. Type `*', press TAB.
4. See an error, like:

Debugger entered--Lisp error: (wrong-type-argument stringp ("Anki/" "Audiobooks/" "Desktop/" "Documents/" "Downloads/" ...))
  file-name-directory(("Anki/" "Audiobooks/" "Desktop/" "Documents/" "Downloads/" ...))
  (if (file-name-directory filename) (pcomplete-executables) (if (and (> (length filename) 0) (eq (aref filename 0) eshell-explicit-command-char)) (setq filename (substring filename 1) pcomplete-stub filename glob-name t)) (let* ((paths (eshell-parse-colon-path eshell-path-env)) (cwd (file-name-as-directory (expand-file-name default-directory))) (path "") (comps-in-path nil) (file "") (filepath "") (completions nil)) (while paths (setq path (file-name-as-directory (expand-file-name (or (car paths) "."))) comps-in-path (and (file-accessible-directory-p path) (file-name-all-completions filename path))) (while comps-in-path (setq file (car comps-in-path) filepath (concat path file)) (if (and (not (member file completions)) (or (string-equal path cwd) (not ...)) (file-executable-p filepath)) (setq completions (cons file completions))) (setq comps-in-path (cdr comps-in-path))) (setq paths (cdr paths))) (pcomplete-uniqify-list (if glob-name completions (setq completions (append (and (eshell-using-module ...) (funcall ... filename)) (eshell-winnow-list (mapcar ... ...) nil (quote ...)) completions)) (append (and (or eshell-show-lisp-completions (and eshell-show-lisp-alternatives ...)) (all-completions filename obarray (quote functionp))) completions)))))
  (let ((filename (pcomplete-arg)) glob-name) (if (file-name-directory filename) (pcomplete-executables) (if (and (> (length filename) 0) (eq (aref filename 0) eshell-explicit-command-char)) (setq filename (substring filename 1) pcomplete-stub filename glob-name t)) (let* ((paths (eshell-parse-colon-path eshell-path-env)) (cwd (file-name-as-directory (expand-file-name default-directory))) (path "") (comps-in-path nil) (file "") (filepath "") (completions nil)) (while paths (setq path (file-name-as-directory (expand-file-name (or ... "."))) comps-in-path (and (file-accessible-directory-p path) (file-name-all-completions filename path))) (while comps-in-path (setq file (car comps-in-path) filepath (concat path file)) (if (and (not ...) (or ... ...) (file-executable-p filepath)) (setq completions (cons file completions))) (setq comps-in-path (cdr comps-in-path))) (setq paths (cdr paths))) (pcomplete-uniqify-list (if glob-name completions (setq completions (append (and ... ...) (eshell-winnow-list ... nil ...) completions)) (append (and (or eshell-show-lisp-completions ...) (all-completions filename obarray ...)) completions))))))
  eshell-complete-commands-list()
  ...

5. (setq pcomplete-cycle-completions t) -> and it works fine again.

In GNU Emacs 24.4.51.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2014-11-03 on axl
Repository revision: 117658 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04.1 LTS