For example Fedora uses tigervnc without symlinks from which it could
be recognized, and neither tightvncviewer nor xvnc4viewer completions
seem quite appropriate for it at the moment.
This fixes completing filenames containing single quote (') on bash-4.
Also added emulation of `-o filenames' to _filedir.
Added tests for _filedir.
Fixed array assignment within __reassemble_comp_words_by_ref().
This allows tab-completion of test scripts to run, e.g.:
$ ./run unit/comp<TAB>
$ ./run unit/compgen.exp
Instead of the old way:
$ ./runUnit compgen.exp
The COMP_ settings of the last test of _count_args() were falling through to
the first test of _get_cword(), causing it to fail.
Unset COMP_ variables within the unit tests setup & teardown.
Fixed last test at `_count_args.exp' by solving conflicting settings of
COMP_CWORD and COMP_POINT.
Steps to reproduce the problem:
$ ./runUnit _count_args.exp _get_cword.exp
...
Running ./unit/_count_args.exp ...
Running ./unit/_get_cword.exp ...
ERROR Unexpected output from bash command "_get_cword should run without errors":
bash: $index: substring expression < 0
...
If a word is made up of multiple word separator characters:
$ a b::<TAB> # CWORDS are: a, b, and :: (correct)
__reassemble_comp_words_by_ref() couldn't handle this. It assumed CWORDS were:
$ a b::<TAB> # CWORDS: a, b, : and : (but they're not)
Added test case for this. To run the automated tests:
./runUnit _get_cword.exp
The solution for bash-4 is to remove the colon from COMP_WORDBREAKS:
COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
The workaround for bash-3, or bash-4 with a colon in COMP_WORDBREAKS,
is to call:
__ltrim_colon_completions "$cur"
after completions have been put in COMPREPLY.
See also: E13) Why does filename completion misbehave if a colon appears
in the filename? - Bash FAQ, http://tiswww.case.edu/php/chet/bash/FAQ