Configuration Information [Automatically generated, do not change]:
Machine: i486
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='i486'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i486-pc-linux-gnu'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash'
-DSHELL -DHAVE_CONFIG_H   -I.  -I../bash -I../bash/include
-I../bash/lib   -g -O2 -Wall
uname output: Linux myhost 2.6.26-2-686 #1 SMP Wed Aug 19 06:06:52 UTC
2009 i686 GNU/Linux
Machine Type: i486-pc-linux-gnu

Bash Version: 3.2
Patch Level: 39
Release Status: release

When completing command substitution:

    $ a $(b c<TAB>

the command completion for `a' is invoked, whereas I'd expect the
command completion for `b' to be invoked.
I would expect the same behaviour as with process substitution, which
invokes the completion for `b':

    $ a <(b c<TAB>

Steps to reproduce:

1.  Create functions `_a' and `_b' to complete `a' and `b':

    _a() { echo a; }
    _b() { echo b; }
    complete -F _a a
    complete -F _b b

2.  Complete `b' within command substition:

    $ a $(b c<TAB>  # This returns `a', where I'd expected `b'?

3.  Complete `b' within process substitution:

    $ a <(b c<TAB>  # This returns `b' all right.


Regards,

Freddy Vulto
http://fvue.nl


Reply via email to