On Thu, Sep 24, 2009 at 3:15 PM, Aaron Griffin <aaronmgriffin@xxxxxxxxx> wrote: > On Thu, Sep 24, 2009 at 2:41 PM, Thomas Göbel <goebel.thomas@xxxxxxx> wrote: >> * <aaronmgriffin@xxxxxxxxx> [24.09.2009 21:27]: >>> On Thu, Sep 24, 2009 at 7:39 AM, Thomas Bächler <thomas@xxxxxxxxxxxxx> wrote: >>> > Xavier schrieb: >>> >> >>> >> I just tried git, before realizing there was a good pkgbuild for it : >>> >> http://aur.archlinux.org/packages.php?ID=27520 >>> >> >>> >> and it does not work either. >>> > >>> > I also checked the git code for dd and it is identical to the 1.0 code. >>> >>> Found the issue. It's not dd specific at all, it has to do with bash's >>> setting of the COMP_WORDBREAKS >>> >>> $ echo $COMP_WORDBREAKS >>> "'><=;|&(: >>> >>> These are word separators for completion words. The command "dd >>> if=<tab>" contains 3 completion words - "dd", "if", and "=" with the >>> current word being "=". >>> >>> If you do the following, it works: >>> >>> $ export COMP_WORDBREAKS=${COMP_WORDBREAKS//=} >>> $ dd if=<tab> >>> >>> I suggest reporting this is a bug in bash_completion, as fixing this >>> is rather complex >> >> Didn`t work for me. dd if=<tab> shows me the content of the actual >> directory. If i now type /ho<tab> "dd if=/ho<tab>" the string if=/ho >> will be displaced to "dd /home". > > Ah, well obviously it's more complicated than I though. > > The point is, that the COMP_WORDBREAKS setting, is splitting "if=" > into "if" and "=", which doesn't match the case statement. > > If we want to fix this just for dd, we need to match the "=" and then > get the previous word in COMP_WORDS > prev="${COMP_WORDS[$(($COMP_CWORD -1))]}" > > Aaaaand... that doesn't work. I dunno, this is confusing, but the > point is, it's splitting on the "if=" and thus can never complete as > is And this appears to be fixed in git http://code.phraktured.net/cgit.cgi/bash-completion/commit/?id=f733e71e1f8d63c072a402346d8162f9c6b63ae2 http://code.phraktured.net/cgit.cgi/bash-completion/commit/?id=f871fe4101ed89cb98e201aed8c975fd3061905b