[Bash-completion-devel] [bash-completion-Bugs][311385] DBTS 427758: filenames starting with =
bash-completion-bugs at alioth.debian.org
bash-completion-bugs at alioth.debian.org
Tue Jan 17 23:59:32 UTC 2012
Bugs item #311385, was changed at 2009-01-30 11:30 by Igor Murzov
You can respond by visiting:
https://alioth.debian.org/tracker/?func=detail&atid=413095&aid=311385&group_id=100114
Status: Open
Priority: 3
Submitted By: David Paleino (hanska-guest)
Assigned to: Nobody (None)
Summary: DBTS 427758: filenames starting with =
Distribution: None
Originally reported in: Debian BTS
Milestone: None
Status: Accepted
Original bug number: 427758
Initial Comment:
$ touch =foo
$ echo =<TAB>
Expansion results in "=\=foo" rather than "\=foo".
----------------------------------------------------------------------
>Comment By: Igor Murzov (garik-guest)
Date: 2012-01-18 03:59
Message:
The problem is caused by the fact that "=" belongs to COMP_WORDBREAKS and bash treats it as special character. All other characters in COMP_WORDBREAKS require escaping, but "=" doesn't. I've tried to workaround the issue, but failed to get reliable fix -- it works fine for most filenames, but for some _filedir() is still fails to produce completions.
----------------------------------------------------------------------
Comment By: Igor Murzov (garik-guest)
Date: 2011-11-05 21:39
Message:
I also see problems with filenames containing brackets.
For example:
$ touch '[x]' 'x'
$ ls \[x<TAB>
gives `ls x`, so brackets are ignored in this situation.
Another example is:
$ rm -r ./*
$ touch '[x]'
$ ls \[x\] \[<TAB>
gives no completion, but it should complete "\[x\]" again.
----------------------------------------------------------------------
Comment By: Ville Skyttä (scop-guest)
Date: 2009-02-15 13:21
Message:
I'm not sure if "echo" is a good way to test this as it appears no bash_completion code is executed with the reproducers (checked with "set -x"). The odd /tmp vs /tmp/foo behaviour seems to come from bash itself with "echo".
On the other hand, with "cat" there are some issues present with the current code in git:
$ mkdir /tmp/foo
$ cd /tmp
$ touch foo/=bar
$ cat foo/<TAB>
$ cat foo/\=bar # ok
$ cat foo/=<TAB>
$ cat foo/=foo/\=bar # not ok
$ cat foo/=b<TAB>
$ cat foo/=foo/\=bar # not ok
----------------------------------------------------------------------
Comment By: David Paleino (hanska-guest)
Date: 2009-01-30 11:32
Message:
It doesn't happen anymore with our bzr revision, but still shows a bug:
$ mkdir /tmp/foo
$ cd /tmp
$ touch foo/=bar
$ echo foo/=<TAB>
$ echo foo/=bar
If there are other files in /tmp/foo/, it behaves oddly:
$ touch foo/buz foo/foo
$ echo foo/=<TAB>
claws-mail-1000 orbit-neo/
foo/ .pcmanfm-socket:0.0-neo
gconfd-neo/ serverauth.lwDVrycexY
gpg-HiLpT3/ ssh-vyyNyO3687/
.ICE-unix/ .X0-lock
liferea.neo.3796948728 .X11-unix/
.lxterminal-socket:0.0-neo
$
(i.e. shows files in /tmp/ and not /tmp/foo/)
----------------------------------------------------------------------
You can respond by visiting:
https://alioth.debian.org/tracker/?func=detail&atid=413095&aid=311385&group_id=100114
More information about the Bash-completion-devel
mailing list