my $cmdline = substr($ENV{COMP_LINE}, 0, $ENV{COMP_POINT});
print STDERR "\nCMDLINE: $ENV{COMP_LINE}\n" if $debug;
- my @args = PVE::Tools::split_args($cmdline);
- my $pos = scalar(@args) - 2;
+ my $args = PVE::Tools::split_args($cmdline);
+ my $pos = scalar(@$args) - 2;
$pos += 1 if $cmdline =~ m/\s+$/;
print STDERR "CMDLINE:$pos:$cmdline\n" if $debug;
&$print_result(keys %$cmddef);
return;
}
- $cmd = $args[1];
+ $cmd = $args->[1];
}
my $def = $cmddef->{$cmd};
$arg_param //= [];
$uri_param //= {};
+ $arg_param = [ $arg_param ] if !ref($arg_param);
+
map { $skip_param->{$_} = 1; } @$arg_param;
map { $skip_param->{$_} = 1; } keys %$uri_param;
if ($d->{completion}) {
my $vt = ref($d->{completion});
if ($vt eq 'CODE') {
- my $res = $d->{completion}->($cmd, $pname, $cur, [@args]);
+ my $res = $d->{completion}->($cmd, $pname, $cur, $args);
&$print_result(@$res);
}
} elsif ($d->{type} eq 'boolean') {