diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-01-29 02:35:24 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-01-29 02:35:24 +0000 |
commit | b760b5fcf7fcb75a2df9c1debcc44733dda57244 (patch) | |
tree | f158b3a2a47ec61d7dd2d667469ad29aea5ec39a /scripts/kconfig.pl | |
parent | 024dc6ea5f959565785629253fa306ec3a751fc8 (diff) | |
download | upstream-b760b5fcf7fcb75a2df9c1debcc44733dda57244.tar.gz upstream-b760b5fcf7fcb75a2df9c1debcc44733dda57244.tar.bz2 upstream-b760b5fcf7fcb75a2df9c1debcc44733dda57244.zip |
scripts/kconfig.pl: add a mode to generate a config diff that ignores added undefined config values
SVN-Revision: 25232
Diffstat (limited to 'scripts/kconfig.pl')
-rwxr-xr-x | scripts/kconfig.pl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/scripts/kconfig.pl b/scripts/kconfig.pl index 7073e3b1ae..8113273538 100755 --- a/scripts/kconfig.pl +++ b/scripts/kconfig.pl @@ -80,13 +80,15 @@ sub config_add($$$) { return \%config; } -sub config_diff($$) { +sub config_diff($$$) { my $cfg1 = shift; my $cfg2 = shift; + my $new_only = shift; my %config; foreach my $config (keys %$cfg2) { if (!defined($cfg1->{$config}) or $cfg1->{$config} ne $cfg2->{$config}) { + next if $new_only and !defined($cfg1->{$config}) and $cfg2->{$config} eq '#undef'; $config{$config} = $cfg2->{$config}; } } @@ -146,7 +148,11 @@ sub parse_expr { } elsif ($arg eq '>') { my $arg1 = parse_expr($pos); my $arg2 = parse_expr($pos); - return config_diff($arg1, $arg2); + return config_diff($arg1, $arg2, 0); + } elsif ($arg eq '>+') { + my $arg1 = parse_expr($pos); + my $arg2 = parse_expr($pos); + return config_diff($arg1, $arg2, 1); } elsif ($arg eq '-') { my $arg1 = parse_expr($pos); my $arg2 = parse_expr($pos); |