Bugs item #312613, was changed at 2010-06-28 19:12 by Freddy Vulto You can respond by visiting: https://alioth.debian.org/tracker/?func=detail&atid=413095&aid=312613&group_id=100114
Status: Closed Priority: 3 Submitted By: Ville Skyttä (scop-guest) Assigned to: Freddy Vulto (fvu-guest) Summary: DBTS 587095: no longer does ~username completion Distribution: --Distribution-Agnostic-- Originally reported in: Debian BTS Milestone: None Status: None Original bug number: 587095 Initial Comment: From Debian #587095: > Since the most recent upload in sid, bash-completion does no longer to > ~username completion (to homedirectories). Simple test case: ls ~<TAB> Looks like this was broken in commit c9c98da36edeb9305e24e7ea2d8ccf8b0934ce70. Freddy, it was committed by you, could you have a look? ---------------------------------------------------------------------- >Comment By: Freddy Vulto (fvu-guest) Date: 2010-07-02 08:18 Message: The fix wasn't working on another computer and I found out Acrobat Reader (at least version 9) is shipping its own completion, including its own `_filedir' function, which conflicts with ours: $ shopt -s extdebug $ declare -F _filedir _filedir 3 /etc/bash_completion.d/acroread.sh $ ls -l /etc/bash_completion.d/acroread.sh lrwxrwxrwx 1 root root 46 2009-10-14 14:31 /etc/bash_completion.d/acroread.sh -> /opt/Adobe/Reader9/Resource/Shell/acroread_tab $ declare -f _filedir _filedir () { local IFS=' ' xspec; xspec=${1:+"!*.$1"}; COMPREPLY=(${comprep...@]:-} $( compgen -f -X "$xspec" -- "$cur" ) $( compgen -d -- "$cur" )) } The problem becomes apparent when you don't set BASH_COMPLETION_COMPAT_DIR. It then gets a default value of `/etc/bash_completion.d' and will include _filedir of Acrobat. The workaround is to disable BASH_COMPLETION_COMPAT_DIR by setting: BASH_COMPLETION_COMPAT_DIR=$BASH_COMPLETION_DIR or to remove the _filedir definition from acroread.sh. Anyway, the more reason to work on our roadmap: create a namespace and a new directory layout... ---------------------------------------------------------------------- Comment By: Freddy Vulto (fvu-guest) Date: 2010-07-02 07:12 Message: Fixed in commit 7b67991: Fix ls test Append slash (/) or space (" ") to completion depending on whether `~user' home directory exists or not. ---------------------------------------------------------------------- Comment By: Ville Skyttä (scop-guest) Date: 2010-07-01 19:19 Message: The fix does not seem quite complete, it causes a test suite failure (ls.exp) for me with bash 4.1.7. My dbg.log for it is attached. $ ls ~<TAB> ~abrt/ ~avahi-autoipd ~ftp ~halt/ ~mysql/ ~ntp/ ~root/ ~saslauth ~smolt/ ~usbmuxd/ ~adm ~bin/ ~games/ ~lp/ ~nfsnobody/ ~openvpn/ ~rpc/ ~scop/ ~sshd/ ~uucp ~apache/ ~daemon/ ~gopher ~mail/ ~nobody/ ~operator/ ~rpcuser/ ~shutdown/ ~sync/ ~vcsa/ ~avahi/ ~dbus/ ~haldaemon/ ~mailnull ~nscd/ ~pulse ~rtkit/ ~smmsp ~tcpdump/ Notice how the ~adm, ~avahi-autoipd, ~ftp, ~gopher, ~mailnull, ~pulse, ~saslauth, ~smmsp, and ~uucp entries lack the trailing slash. And they actually complete to those strings instead of the dirs. On a brief look it seems that this happens for users whose home dirs don't exist. Not sure if there's anything that can be sanely done about that, but IMO the test suite shouldn't fail. ---------------------------------------------------------------------- Comment By: Freddy Vulto (fvu-guest) Date: 2010-06-30 23:29 Message: Fixed in commit ccbf141: Fix tilde (~) completion with _filedir ---------------------------------------------------------------------- You can respond by visiting: https://alioth.debian.org/tracker/?func=detail&atid=413095&aid=312613&group_id=100114 _______________________________________________ Bash-completion-devel mailing list Bash-completion-devel@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/bash-completion-devel