From b13ee019d0eed45107aefdbe550c52aaef2bcc93 Mon Sep 17 00:00:00 2001 From: Igor Murzov Date: Sun, 26 Jun 2011 03:38:20 +0400 Subject: [PATCH] make completions that use _command also work with file names --- bash_completion | 3 ++- test/lib/completions/time.exp | 18 +++++++++++++++++- 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