--- R.bash_completion.orig 2012-06-21 23:02:49.455157440 +0200 +++ R.bash_completion 2012-06-21 23:37:15.664043970 +0200 @@ -66,7 +66,7 @@ _R() { local cur loneOpts helpOpts stdOpts argOpts versOpts cmds cmd furtherOpts - local fileNames dirNames i lastToken + local i lastToken # local IFS=$'\t\n' COMPREPLY=() @@ -95,12 +95,6 @@ Rdconv Rd2dvi Rd2txt Sd2Rd Sweave Stangle config' - - - fileNames='' # possible to have files in certain commands (e.g. BATCH) - dirNames='' - - if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "CMD $loneOpts $helpOpts $stdOpts" -- $cur ) @@ -154,14 +148,12 @@ [[ $lastToken != -* ]] ; then furtherOpts="" - fileNames=$( compgen -f -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir else furtherOpts="$versOpts $helpOpts $stdOpts $argOpts" - fileNames=$( compgen -f -X '!*.@(R|r|S|s)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(r|s)' fi ;; @@ -171,14 +163,12 @@ [[ $lastToken != -* ]] ; then furtherOpts="" - fileNames=$( compgen -f -X '!*.@(c|cc|cpp|C|f)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(c|cc|cpp|f)' else furtherOpts="$versOpts $helpOpts -D" - fileNames=$( compgen -f -X '!*.@(c|cc|cpp|C|f)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(c|cc|cpp|f)' fi ;; @@ -188,14 +178,12 @@ [[ $lastToken != -* ]] ; then furtherOpts="" - fileNames=$( compgen -f -X '!*.@(a|o)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(a|o)' else furtherOpts="$versOpts $helpOpts -o --output" - fileNames=$( compgen -f -X '!*.@(a|o)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(a|o)' fi @@ -206,7 +194,7 @@ [[ $lastToken == @(-l|--library) ]] ; then furtherOpts="" - dirNames=$( compgen -d -- "$cur" ) + _filedir -d else @@ -215,8 +203,7 @@ --lazy-data --no-lazy-data -d --debug -l --library --no-configure \ --no-docs --with-package-versions --use-zip-data --use-zip-help \ --use-zip --fake --no-lock --build" - fileNames=$( compgen -f -X '!*.@(tar.gz|tgz)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(tar.gz|tgz)' fi ;; @@ -225,7 +212,7 @@ furtherOpts="$versOpts $helpOpts -l --library" if [[ $COMP_CWORD -gt 3 ]] && \ [[ $lastToken == @(-l|--library) ]] ; then - dirNames=$( compgen -d -- "$cur" ) + _filedir -d fi ;; @@ -234,7 +221,7 @@ furtherOpts="$versOpts $helpOpts --force \ --no-vignettes --binary --no-docs --use-zip-data \ --use-zip-help --use-zip" - dirNames=$( compgen -d -- "$cur" ) + _filedir -d ;; check) @@ -244,8 +231,7 @@ --no-install --no-tests --no-vignettes --no-latex \ --use-gct --use-valgrind --rcfile" - fileNames=$( compgen -f -X '!*.@(tar.gz|tgz)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(tar.gz|tgz)' ;; LINK) @@ -254,8 +240,7 @@ Rprof) furtherOpts="$versOpts $helpOpts" - fileNames=$( compgen -f -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir ;; Rdconv) @@ -263,8 +248,7 @@ furtherOpts="$versOpts $helpOpts -d --debug -t \ --type -o --output --os --OS" - fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(Rd)' ;; Rd2dvi) @@ -273,20 +257,17 @@ --no-clean --no-preview --os --OS -o --output \ --pdf --title -V --verbose" - fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(Rd)' ;; Rd2txt) furtherOpts="$versOpts $helpOpts" - fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(Rd)' ;; Sd2Rd) furtherOpts="$versOpts $helpOpts -n -x" - fileNames=$( compgen -f -X '!*.@(Sd)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(Sd)' ;; Sweave) @@ -302,8 +283,7 @@ else furtherOpts="" - fileNames=$( compgen -f -X '!*.@(Rnw|rnw|Snw|snw)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(rnw|snw)' fi ;; @@ -321,8 +301,7 @@ else furtherOpts="" - fileNames=$( compgen -f -X '!*.@(Rnw|rnw|Snw|snw)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(rnw|snw)' fi ;; @@ -352,15 +331,13 @@ ## R [options] < furtherOpts="" - fileNames=$( compgen -f -X '!*.@(R|r|S|s)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir '@(r|s)' elif [[ $lastToken == ">" ]] ; then ## R [options] > furtherOpts="" - fileNames=$( compgen -f -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) + _filedir else @@ -476,9 +453,7 @@ ## and finally: - COMPREPLY=( - $( compgen -W "$allOpts $fileNames $dirNames" -- $cur ) - ) + COMPREPLY+=( $( compgen -W "$allOpts" -- $cur ) ) return 0