View | Details | Raw Unified | Return to bug 9770
Collapse All | Expand All

(-)a/C4/ClassSortRoutine/Dewey.pm (-2 / +5 lines)
Lines 67-75 sub get_class_sort_key { Link Here
67
    $init =~ s/^([\p{IsAlpha}]+)/$1 /;
67
    $init =~ s/^([\p{IsAlpha}]+)/$1 /;
68
    my @tokens = split /\.|\s+/, $init;
68
    my @tokens = split /\.|\s+/, $init;
69
    my $digit_group_count = 0;
69
    my $digit_group_count = 0;
70
    my $first_digit_group_idx;
70
    for (my $i = 0; $i <= $#tokens; $i++) {
71
    for (my $i = 0; $i <= $#tokens; $i++) {
71
        if ($tokens[$i] =~ /^\d+$/) {
72
        if ($tokens[$i] =~ /^\d+$/) {
72
            $digit_group_count++;
73
            $digit_group_count++;
74
            if (1 == $digit_group_count) {
75
                $first_digit_group_idx = $i;
76
            }
73
            if (2 == $digit_group_count) {
77
            if (2 == $digit_group_count) {
74
                $tokens[$i] = sprintf("%-15.15s", $tokens[$i]);
78
                $tokens[$i] = sprintf("%-15.15s", $tokens[$i]);
75
                $tokens[$i] =~ tr/ /0/;
79
                $tokens[$i] =~ tr/ /0/;
Lines 78-84 sub get_class_sort_key { Link Here
78
    }
82
    }
79
    # Pad the first digit_group if there was only one
83
    # Pad the first digit_group if there was only one
80
    if (1 == $digit_group_count) {
84
    if (1 == $digit_group_count) {
81
        $tokens[0] .= '_000000000000000'
85
        $tokens[$first_digit_group_idx] .= '_000000000000000'
82
    }
86
    }
83
    my $key = join("_", @tokens);
87
    my $key = join("_", @tokens);
84
    $key =~ s/[^\p{IsAlnum}_]//g;
88
    $key =~ s/[^\p{IsAlnum}_]//g;
85
- 

Return to bug 9770