From 79f2da57cdc751a4d9cd624dc4472343a0a87acd Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Wed, 4 Sep 2002 15:59:35 +0000 Subject: (same_entries): compare kernel options sorted (this is an approximation of reality since order can matter, but...). An example is "quiet devfs=mount hdc=ide-scsi" vs "devfs=mount hdc=ide-scsi quiet" (thanks to Gabriel Phoenix) --- perl-install/bootloader.pm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'perl-install/bootloader.pm') diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index 743d8aafd..8aa6850be 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -135,10 +135,16 @@ sub same_entries { my ($a, $b) = @_; foreach (uniq(keys %$a, keys %$b)) { - next if $_ eq 'label'; - next if $a->{$_} eq $b->{$_}; - my ($inode_a, $inode_b) = map { (stat "$::prefix$_")[1] } ($a->{$_}, $b->{$_}); - next if $inode_a && $inode_b && $inode_a == $inode_b; + if ($_ eq 'label') { + next; + } elsif ($_ eq 'append') { + next if join(' ', sort split(' ', $a->{$_})) eq join(' ', sort split(' ', $b->{$_})) + } else { + next if $a->{$_} eq $b->{$_}; + + my ($inode_a, $inode_b) = map { (stat "$::prefix$_")[1] } ($a->{$_}, $b->{$_}); + next if $inode_a && $inode_b && $inode_a == $inode_b; + } log::l("entries $a->{label} don't have same $_: $a->{$_} ne $b->{$_}"); return; -- cgit v1.2.1