chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
9647587
)
Option parsing: Redo .opts-CMD parsing to use insertpos
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sun, 26 Jul 2015 19:32:40 +0000
(20:32 +0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sun, 26 Jul 2015 21:42:03 +0000
(22:42 +0100)
dgit
patch
|
blob
|
history
diff --git
a/dgit
b/dgit
index f9a67ce4ff7939a9c00e0b05e49a2e0c6dd4c26f..7d2023e5c91ab266d3c94a81b9cd8f8ad5497c44 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-98,7
+98,11
@@
our %opts_opt_map = ('dget' => \@dget, # accept for compatibility
'mergechanges' => \@mergechanges);
our %opts_opt_cmdonly = ('gpg' => 1);
'mergechanges' => \@mergechanges);
our %opts_opt_cmdonly = ('gpg' => 1);
-our %opts_opt_cmdline_opts;
+our %opts_cfg_insertpos = map {
+ $_,
+ scalar @{ $opts_opt_map{$_} }
+} keys %opts_opt_map;
+
sub finalise_opts_opts();
our $keyid;
sub finalise_opts_opts();
our $keyid;
@@
-3056,7
+3060,7
@@
sub parseopts () {
!$opts_opt_cmdonly{$1} &&
($om = $opts_opt_map{$1})) {
push @ropts, $_;
!$opts_opt_cmdonly{$1} &&
($om = $opts_opt_map{$1})) {
push @ropts, $_;
- push @
{ $opts_opt_cmdline_opts{$1} }
, $2;
+ push @
$om
, $2;
} elsif (m/^--existing-package=(.*)/s) {
push @ropts, $_;
$existing_package = $1;
} elsif (m/^--existing-package=(.*)/s) {
push @ropts, $_;
$existing_package = $1;
@@
-3181,7
+3185,10
@@
sub finalise_opts_opts () {
if ($?==0) {
badcfg "cannot configure options for $k"
if $opts_opt_cmdonly{$k};
if ($?==0) {
badcfg "cannot configure options for $k"
if $opts_opt_cmdonly{$k};
- push @$om, split /\0/, $vs;
+ my $insertpos = $opts_cfg_insertpos{$k};
+ @$om = ( @$om[0..$insertpos-1],
+ (split /\0/, $vs),
+ @$om[$insertpos..$#$om] );
} elsif ($?==256) {
die "$k $c ?" if length $vs;
} else {
} elsif ($?==256) {
die "$k $c ?" if length $vs;
} else {
@@
-3189,10
+3196,6
@@
sub finalise_opts_opts () {
}
}
}
}
}
}
-
- foreach my $k (keys %opts_opt_cmdline_opts) {
- push @{ $opts_opt_map{$k} }, @{ $opts_opt_cmdline_opts{$k} };
- }
}
if ($ENV{$fakeeditorenv}) {
}
if ($ENV{$fakeeditorenv}) {