Subject: bug#27844: 26.0.50; Dired w/ eshell-ls doesn't support wildcards in file name

From: Tino Calancha <[email-masked]>
Date: Wed, 2 Aug 2017 01:04:20 +0900 (JST)

On Tue, 1 Aug 2017, Eli Zaretskii wrote:

>> From: Tino Calancha <[email-masked]>
>> Date: Tue, 1 Aug 2017 23:06:01 +0900 (JST)
>> cc: Tino Calancha <[email-masked]>, [email-masked]
>>
>>> If eshell-extended-glob already signals an error when it's TRT, why do
>>> you need to signal an error if Eshell doesn't?  What am I missing?
>> I prefer to throw an error because looks familiar compared with
>> what i see when using GNU/ls.
>> If i try:
>> C-x d ~/emacs-master/lisp/*.Z RET
>>
>> I) with GNU/ls or with ls-lisp:
>> i get an error and i read in the echo area:
>> Reading directory: No such file or directory, ~/emacs-master/lisp/*Z
>>
>> II) with eshell-ls:
>> I actualy get a Dired buffer with an entry (the directory itself).
>>
>> I rather prefer if II) behaves as I) regardless on
>> 'eshell-error-if-no-glob', that means, my second patch with the
>> user-error.
>
> So we are back to the same issue: this is IMO a user preference, and
> you are accustomed to one of the possible behaviors.  And since you
> want the behavior to be independent on an already existing user
> option, I'm not sure how to proceed.  Maybe you could start by
> explaining why you don't want eshell-error-if-no-glob to control this?
1) I am imaging one user in a system without an external 'ls' installed.

2) This hypothetical user wants to use Dired;  after searching the web,
    find s?he could do it via eshell.

3) I assume this user is not interested in the eshell internals: just want
    to have Dired running without complications.  That means
    'eshell-error-if-no-glob' keeps its default, nil.

For this guy is more informative to get an error after s?he dired
~/emacs/lisp/*.Z saying that nothing matched the wildcard.  Getting the
Dired buffer with the listing of '~/emacs/lisp' is confuse and requires 
some time to understand the situation.  Furthermore, s?he could do the
same operation in another machine, one with an external "ls" installed,
and observe a different result.

I like the idea that Dired behaves uniformsly regardless on if we are 
using an external 'ls' or an elisp emulation of it.

That said, i am OK with showing the Dired buffer ie, let 
eshell-error-if-no-glob to decide the situation, if you like more.