summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Murzov <e-mail@date.by>2011-06-26 03:38:20 +0400
committerIgor Murzov <e-mail@date.by>2011-06-26 04:04:53 +0400
commitb13ee019d0eed45107aefdbe550c52aaef2bcc93 (patch)
tree2cf84870f92548fb1d9ef2617e0a1f591bb33922
parent17a316bfca13dcbd7ac432dc368ef18b35494616 (diff)
downloadbash-completion-b13ee019d0eed45107aefdbe550c52aaef2bcc93.tar.gz
make completions that use _command also work with file names
-rw-r--r--bash_completion3
-rw-r--r--test/lib/completions/time.exp18
2 files changed, 19 insertions, 2 deletions
diff --git a/bash_completion b/bash_completion
index 819899ef..e5577e38 100644
--- a/bash_completion
+++ b/bash_completion
@@ -1581,8 +1581,9 @@ _command_offset()
_get_comp_words_by_ref cur
if [[ $COMP_CWORD -eq 0 ]]; then
+ local IFS=$'\n'
compopt -o filenames
- COMPREPLY=( $( compgen -c -- "$cur" ) )
+ COMPREPLY=( $( compgen -d -c -- "$cur" ) )
else
cmd=${COMP_WORDS[0]} compcmd=${COMP_WORDS[0]}
# Do we have full path completion for $cmd?
diff --git a/test/lib/completions/time.exp b/test/lib/completions/time.exp
index 3bed4fdf..d052458c 100644
--- a/test/lib/completions/time.exp
+++ b/test/lib/completions/time.exp
@@ -4,7 +4,7 @@ proc setup {} {
proc teardown {} {
- assert_env_unmodified
+ assert_env_unmodified {/OLDPWD=/d}
}
@@ -17,4 +17,20 @@ assert_complete_any "time set"
sync_after_int
+set test "-p find -typ should complete find's options"
+assert_complete "-type" "time -p find -typ" $test
+
+
+sync_after_int
+
+
+set test "it should be possible to complete file paths"
+set dir $::srcdir/fixtures/shared
+set files [split [exec bash -c "cd $dir/bin && ls -p"] "\n"]
+assert_complete_dir $files "time ./bin/" $dir $test
+
+
+sync_after_int
+
+
teardown