From afabee81e04c52cae5cbf55b8ba4566659505e9b Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 29 Jun 2009 16:10:48 -0400 Subject: Make dh not complain about unknown, command-specific options passed to it and further suppress warnings about such options it passes on to debhelper commands. This was attempted incompletely before in version 7.2.17. --- Debian/Debhelper/Dh_Getopt.pm | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'Debian') diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm index 9868124c..86f3cdba 100644 --- a/Debian/Debhelper/Dh_Getopt.pm +++ b/Debian/Debhelper/Dh_Getopt.pm @@ -72,8 +72,14 @@ sub NonOption { sub getoptions { my $array=shift; my %options=%{shift()} if ref $_[0]; + + my $oldwarn; + if ($ENV{DH_IGNORE_UNKNOWN_OPTIONS}) { + $oldwarn=$SIG{__WARN__}; + $SIG{__WARN__}=sub {}; + } - Getopt::Long::GetOptionsFromArray($array, + my $ret=Getopt::Long::GetOptionsFromArray($array, "v" => \$dh{VERBOSE}, "verbose" => \$dh{VERBOSE}, @@ -136,7 +142,15 @@ sub getoptions { %options, "<>" => \&NonOption, - ) + ); + + if ($ENV{DH_IGNORE_UNKNOWN_OPTIONS}) { + $SIG{__WARN__}=$oldwarn; + return 1; + } + else { + return $ret; + } } sub split_options_string { @@ -155,11 +169,7 @@ sub parseopts { # dh through an override target to a command. if (defined $ENV{DH_INTERNAL_OPTIONS}) { @ARGV_extra=split_options_string($ENV{DH_INTERNAL_OPTIONS}); - # Unknown options will be silently ignored. - my $oldwarn=$SIG{__WARN__}; - $SIG{__WARN__}=sub {}; getoptions(\@ARGV_extra, $options); - $SIG{__WARN__}=$oldwarn; # Avoid forcing acting on packages specified in # DH_INTERNAL_OPTIONS. This way, -p can be specified -- cgit v1.2.3