bug-bash
[Top][All Lists]
Advanced

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

Re: completion fails on file names with special characters


From: Chet Ramey
Subject: Re: completion fails on file names with special characters
Date: Thu, 13 Mar 2014 11:43:12 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Thunderbird/24.1.1

On 3/12/14 11:44 PM, Filipus Klutiero wrote:
> Hi Uwe,
> 
> On 2014-03-12 21:37, Uwe Storbeck wrote:
>> A few corrections to my last mail:
>>
>> bash completion before the first letter of the file name fails at
>> all, even for "normal" file names:
>>
>>    $ mkdir /tmp/test && cd /tmp/test && touch a
>>    $ ls <TAB><TAB>
>>
>> Also not all characters where the completion after the first
>> letter fails are characters which bash would escape with a
>> backslash during the completion as the comma actually does not
>> get escaped by bash.
>> Not sure what qualifies "special characters" in this context.
>> Characters where completion does not work for me (when file
>> names share the same beginning, as you have mentioned before)
>> are:
>>
>>    !"$&'()*,:;<=>?[\]^`{|}
>>
>> Interesting is also this example:
>>
>>    $ mkdir /tmp/test && cd /tmp/test && touch aa 'a('
>>    $ ls a<TAB><TAB>
>>    a(  aa
>>
>> So far it's ok. But:
>>
>>    $ ls a(<TAB>
>>
>> results in a wrong completion:
>>
>>    $ ls a(a
>>
>> Uwe
> 
> I can reproduce (only tested the first case). Indeed, bash-completion
> appears to cause quite important bash completion problems with 4.3. This
> has to be related to a similar issue reported by Albert Shih upstream (on
> the mailing list, there is no upstream ITS):
> http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00032.html

That message is a reflection of where things currently are.  It contains a
patch that will allow bash-completion to work unchanged.  (In a nutshell,
bash-completion makes assumptions about what compgen will do with quoted
null arguments that changed between bash-4.2 and bash-4.3.)

I think that patch will fix most, if not all, of the bash-completion
problems.  I need people to test it, since the platforms I commonly use
for development (Mac OS X, RHEL) do not install bash-completion.

For instance, I believe that the problem with these unquoted special
characters is that they break words for readline, and readline passes
an empty argument to the completion function as the word to be completed.
I'm not sure what bash-completion does with that to make it include the
previous word.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/



reply via email to

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