X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bin%2Fwanna-build;h=af3ace755400dd8319c48a2518c00a0622dcc908;hb=9b69d1208fdef1d4ae72f71d9323544510e9de74;hp=ffdbcfc531004ae811d5ea1e2468f6f47aa87832;hpb=12553100c9f4b4ac2b8f382d442d246c955603b1;p=wannabuild.git diff --git a/bin/wanna-build b/bin/wanna-build index ffdbcfc..af3ace7 100755 --- a/bin/wanna-build +++ b/bin/wanna-build @@ -1444,21 +1444,21 @@ sub sort_list_func { 'C' => ['<->', sub { return $_[0]->{'calprio'}; }], 'W' => ['<->', sub { return $_[0]->{'state_days'}; }], 'P' => ['<->', sub { return $_[0]->{'buildpri'}; }], - 'p' => ['<=>', sub { return $prioval{$_[0]->{'priority'}}; }], - 's' => ['<=>', sub { return $sectval{$_[0]->{'section'}}; }], + 'p' => ['<=>', sub { return $prioval{$_[0]->{'priority'}//""}//0; }], + 's' => ['<=>', sub { return $sectval{$_[0]->{'section'}//""}//0; }], 'n' => ['cmp', sub { return $_[0]->{'package'}; }], 'b' => ['cmp', sub { return $_[0]->{'builder'}; }], - 'c' => ['<=>', sub { return ($_[0]->{'notes'} =~ /^(out-of-date|partial)/) ? 0: ($_[0]->{'notes'} =~ /^uncompiled/) ? 2 : 1; }], + 'c' => ['<=>', sub { return ($_[0]->{'notes'}//"" =~ /^(out-of-date|partial)/) ? 0: ($_[0]->{'notes'}//"" =~ /^uncompiled/) ? 2 : 1; }], 'f' => ['<=>', sub { return $catval{ $_[0]->{'failed_category'} ? $_[0]->{'failed_category'}: "none" }; }], - 'S' => ['<=>', sub { return $prioval{$_[0]->{'priority'}} > $prioval{'standard'}; }], + 'S' => ['<->', sub { return isin($_[0]->{'priority'}, qw(required important standard)); }], 'T' => ['<->', sub { return $_[0]->{'state_time'} % 86400;} ], # Fractions of a day }; foreach my $letter (split( //, $list_order )) { my $r; - $r = &{$map_funcs->{$letter}[1]}($b) <=> &{$map_funcs->{$letter}[1]}($a) if $map_funcs->{$letter}[0] eq '<->'; - $r = &{$map_funcs->{$letter}[1]}($a) <=> &{$map_funcs->{$letter}[1]}($b) if $map_funcs->{$letter}[0] eq '<=>'; - $r = &{$map_funcs->{$letter}[1]}($a) cmp &{$map_funcs->{$letter}[1]}($b) if $map_funcs->{$letter}[0] eq 'cmp'; + $r = (&{$map_funcs->{$letter}[1]}($b)//0 ) <=> (&{$map_funcs->{$letter}[1]}($a)//0 ) if $map_funcs->{$letter}[0] eq '<->'; + $r = (&{$map_funcs->{$letter}[1]}($a)//0 ) <=> (&{$map_funcs->{$letter}[1]}($b)//0 ) if $map_funcs->{$letter}[0] eq '<=>'; + $r = (&{$map_funcs->{$letter}[1]}($a)//"") cmp (&{$map_funcs->{$letter}[1]}($b)//"") if $map_funcs->{$letter}[0] eq 'cmp'; return $r if $r != 0; } return 0;