Opened 16 years ago
Last modified 8 years ago
#2951 closed defect
bash_completion doesn't know how to complete directories on a vboxsf mount — at Initial Version
| Reported by: | Yann | Owned by: | |
|---|---|---|---|
| Component: | shared folders | Version: | VirtualBox 2.1.0 |
| Keywords: | bash_completion compgen bash vboxsf | Cc: | |
| Guest type: | Linux | Host type: | Mac OS X |
Description
Hi,
I tend to believe it's a vboxsf defect, but I don't have any proof... I marked this ticket at 'minor', but it's rather annoying.
The problem is that directories under vboxsf mount autocompletes with a space instead of a '/' for certain commands (rm, ls)
and with nothing for cd (instead of '/' again)
Here is what I see:
yann@dev:~/dev$ mkdir -p /tmp/xxx/yyy/zzz
yann@dev:~/dev$ mkdir -p xxx/yyy/zzz
yann@dev:~/dev$ set -x
yann@dev:~/dev$ ls /tmp/xxx/y+ local cur opt
++ _get_cword
++ [[ 10 -eq 0 ]]
++ [[ 13 == \13 ]]
++ echo /tmp/xxx/y
+ cur=/tmp/xxx/y
+ [[ /tmp/xxx/y == --*=* ]]
+ [[ /tmp/xxx/y == -* ]]
+ [[ ls == @(mk|rm)dir ]]
+ _filedir
+ local 'IFS=
' xspec
+ _expand
+ [[ /tmp/xxx/y == \~*/* ]]
+ [[ /tmp/xxx/y == \~* ]]
+ toks=()
+ local toks tmp
+ read -r tmp
+++ quote_readline /tmp/xxx/y
+++ local t=/tmp/xxx/y
+++ echo ''\''/tmp/xxx/y'\'''
++ compgen -d -- ''\''/tmp/xxx/y'\'''
+ [[ -n /tmp/xxx/yyy ]]
+ toks[${#toks[@]}]=/tmp/xxx/yyy
+ read -r tmp
+ [[ '' != -d ]]
+ xspec=
+ read -r tmp
+++ quote_readline /tmp/xxx/y
+++ local t=/tmp/xxx/y
+++ echo ''\''/tmp/xxx/y'\'''
++ compgen -f -X '' -- ''\''/tmp/xxx/y'\'''
+ [[ -n /tmp/xxx/yyy ]]
+ toks[${#toks[@]}]=/tmp/xxx/yyy
+ read -r tmp
+ COMPREPLY=("${COMPREPLY[@]}" "${toks[@]}")
yy/
yann@dev:~/dev$ ls xxx/y+ local cur opt
++ _get_cword
++ [[ 5 -eq 0 ]]
++ [[ 8 == \8 ]]
++ echo xxx/y
+ cur=xxx/y
+ [[ xxx/y == --*=* ]]
+ [[ xxx/y == -* ]]
+ [[ ls == @(mk|rm)dir ]]
+ _filedir
+ local 'IFS=
' xspec
+ _expand
+ [[ xxx/y == \~*/* ]]
+ [[ xxx/y == \~* ]]
+ toks=()
+ local toks tmp
+ read -r tmp
+++ quote_readline xxx/y
+++ local t=xxx/y
+++ echo ''\''xxx/y'\'''
++ compgen -d -- ''\''xxx/y'\'''
+ [[ -n xxx/yyy ]]
+ toks[${#toks[@]}]=xxx/yyy
+ read -r tmp
+ [[ '' != -d ]]
+ xspec=
+ read -r tmp
+++ quote_readline xxx/y
+++ local t=xxx/y
+++ echo ''\''xxx/y'\'''
++ compgen -f -X '' -- ''\''xxx/y'\'''
+ [[ -n xxx/yyy ]]
+ toks[${#toks[@]}]=xxx/yyy
+ read -r tmp
+ COMPREPLY=("${COMPREPLY[@]}" "${toks[@]}")
yy
HTH, let me know if you need more details
yann@dev:~/dev$ uname -a Linux dev 2.6.27-9-server #1 SMP Thu Nov 20 22:53:41 UTC 2008 i686 GNU/Linux yann@dev:~/dev$ cat /etc/issue.net Ubuntu 8.10 yann@dev:~/dev$ bash --version GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) Copyright (C) 2007 Free Software Foundation, Inc. yann@dev:~/dev$ grep RELEASE: /etc/bash_completion # RELEASE: 20060301 yann@dev:~/dev$ mount -t vboxsf devel on /home/yann/dev type vboxsf (uid=1000,gid=1000,rw)
Yann Kerherve
Note:
See TracTickets
for help on using tickets.

