if ($p =~ m/^([a-z]+)(\d+)$/) {
if ($2 == 0) {
$p = "$1\[n\]";
- } else {
- next;
+ } elsif (defined($d->{$1.'0'})) {
+ next; # only handle once for -xx0, but only if -xx0 exists
}
}
$res->{$k}->{$p} = ref($pd) ? clone($pd) : $pd;
# $name: option name
# $display_name: for example "-$name" of "<$name>", pass undef to use "$name:"
# $phash: json schema property hash
-# $format: 'asciidoc', 'pod' or 'text'
+# $format: 'asciidoc', 'short', 'long' or 'full'
# $style: 'config', 'arg' or 'fixed'
my $get_property_description = sub {
my ($name, $style, $phash, $format, $hidepw, $fileparams) = @_;
}
$res .= "\n";
- } elsif ($format eq 'pod' || $format eq 'text') {
+ } elsif ($format eq 'short' || $format eq 'long' || $format eq 'full') {
my $defaulttxt = '';
if (defined(my $dv = $phash->{default})) {
# on the command line (or single parameter name for lists)
# $fixed_param ... do not generate and info about those parameters
# $format:
-# 'long' ... default (list all options)
-# 'short' ... command line only (one line)
-# 'full' ... also include description
+# 'long' ... default (text, list all options)
+# 'short' ... command line only (text, one line)
+# 'full' ... text, include description
# 'asciidoc' ... generate asciidoc for man pages (like 'full')
# $hidepw ... hide password option (use this if you provide a read passwork callback)
# $stringfilemap ... mapping for string parameters to file path parameters
if ($k =~ m/^([a-z]+)(\d+)$/) {
my $name = $1;
next if $idx_param->{$name};
- $idx_param->{$name} = 1;
- $base = "${name}[n]";
+ if ($2 == 0) {
+ $idx_param->{$name} = 1;
+ $base = "${name}[n]";
+ }
}
my $mapping = defined($stringfilemap) ? &$stringfilemap($name) : undef;
if ($k =~ m/^([a-z]+)(\d+)$/) {
my $name = $1;
next if $idx_param->{$name};
- $idx_param->{$name} = 1;
- $base = "${name}[n]";
+ if ($2 == 0) {
+ $idx_param->{$name} = 1;
+ $base = "${name}[n]";
+ }
}
$raw .= &$get_property_description($base, $style, $phash, $format, 0);
}
+
return $raw;
}