diff options
Diffstat (limited to 'libtests/qtest/arg_parser/completion_helpers.pm')
-rw-r--r-- | libtests/qtest/arg_parser/completion_helpers.pm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libtests/qtest/arg_parser/completion_helpers.pm b/libtests/qtest/arg_parser/completion_helpers.pm new file mode 100644 index 00000000..328673e5 --- /dev/null +++ b/libtests/qtest/arg_parser/completion_helpers.pm @@ -0,0 +1,36 @@ +# This is also used by qpdf.test. + +sub bash_completion +{ + my ($x, $line, $point) = @_; + if (! defined $point) + { + $point = length($line); + } + my $before_point = substr($line, 0, $point); + my $first = ''; + my $sep = ''; + my $cur = ''; + if ($before_point =~ m/^(.*)([ =])([^= ]*)$/) + { + ($first, $sep, $cur) = ($1, $2, $3); + } + my $prev = ($sep eq '=' ? $sep : $first); + $prev =~ s/.* (\S+)$/$1/; + my $this = $first; + $this =~ s/(\S+)\s.*/$1/; + ['env', "COMP_LINE=$line", "COMP_POINT=$point", + $x, $this, $cur, $prev]; +} + +sub zsh_completion +{ + my ($x, $line, $point) = @_; + if (! defined $point) + { + $point = length($line); + } + ['env', "COMP_LINE=$line", "COMP_POINT=$point", $x]; +} + +1; |