* bug#18950: 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled
@ 2014-11-05 5:27 Dmitry Gutov
2015-01-15 4:12 ` bug#18950: [PATCH] " samer
0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Gutov @ 2014-11-05 5:27 UTC (permalink / raw)
To: 18950
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 michael.albinus@gmx.de-20141102112256-548dk6al63uy76uh
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description: Ubuntu 14.04.1 LTS
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#18950: [PATCH] 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled
2014-11-05 5:27 bug#18950: 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled Dmitry Gutov
@ 2015-01-15 4:12 ` samer
2015-01-15 15:06 ` Stefan Monnier
0 siblings, 1 reply; 4+ messages in thread
From: samer @ 2015-01-15 4:12 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 18950
Hi,
The function pcomplete-parse-arguments wasn't completing the input when
pcomplete-cycle-completions was nil, and so pcomplete would pass control
to one of eshell's completion functions, which would blow up when given
a list by pcomplete-arg (which is strange, because it's valid for
pcomplete-arg to return a list). But there is no reason for
pcomplete-parse-arguments to care about whether the user wants to cycle
completions, as only really matters in pcomplete-stub. The following
patch fixes the bug by making pcomplete-parse-arguments not care about
the value of pcomplete-cycle-completions.
Best,
Samer
Changes from HEAD~1 to working tree
2 files changed, 6 insertions(+), 2 deletions(-)
lisp/ChangeLog | 5 +++++
lisp/pcomplete.el | 3 +--
Modified lisp/ChangeLog
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f413526..c904e03 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-15 Samer Masterson <samer@samertm.com>
+
+ * pcomplete.el (pcomplete-parse-arguments): Parse arguments
+ regardless of pcomplete-cycle-completions's value. (bug#18950)
+
2015-01-04 Dmitry Gutov <dgutov@yandex.ru>
Add mouse interaction to xref.
Modified lisp/pcomplete.el
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index 17327ea..7bcf2c1 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -755,8 +755,7 @@ this is `comint-dynamic-complete-functions'."
pcomplete-index 0
pcomplete-stub (pcomplete-arg 'last))
(let ((begin (pcomplete-begin 'last)))
- (if (and pcomplete-cycle-completions
- (listp pcomplete-stub) ;??
+ (if (and (listp pcomplete-stub) ;??
(not pcomplete-expand-only-p))
(let* ((completions pcomplete-stub) ;??
(common-stub (car completions))
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#18950: [PATCH] 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled
2015-01-15 4:12 ` bug#18950: [PATCH] " samer
@ 2015-01-15 15:06 ` Stefan Monnier
2015-01-16 2:36 ` Dmitry Gutov
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier @ 2015-01-15 15:06 UTC (permalink / raw)
To: samer; +Cc: 18950, Dmitry Gutov
> - (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.
Stefan
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#18950: [PATCH] 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled
2015-01-15 15:06 ` Stefan Monnier
@ 2015-01-16 2:36 ` Dmitry Gutov
0 siblings, 0 replies; 4+ messages in thread
From: Dmitry Gutov @ 2015-01-16 2:36 UTC (permalink / raw)
To: Stefan Monnier, samer; +Cc: 18950-done
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!
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-01-16 2:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-05 5:27 bug#18950: 24.4.51; Wrong type argument: stringp on completing an asterisk in eshell with pcomplete-cycle-completions disabled Dmitry Gutov
2015-01-15 4:12 ` bug#18950: [PATCH] " samer
2015-01-15 15:06 ` Stefan Monnier
2015-01-16 2:36 ` Dmitry Gutov
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).