Szerkesztő:GumiBot/code6
Megjelenés
A(z) 6. kódú hibát javító kódrészlet[szerkesztés]
sub fix_6 { # DEFAULTSORT with special letters
my ($error_code, $title_str, $text_str) = @_;
my @defsorts;
my $count = 0;
while ($text_str =~ m/^(({{DEFAULTSORT:[^}]*[^~a-z }-][^}]*}}) *)$/gmi) {
my ($pos, $defsort, $len) =
(pos($text_str), $2, length($&));
$pos -= $len;
my $replacement = $defsort;
$replacement =~ tr [\x{00c1}\x{00c7}\x{0106}\x{010c}\x{00c9}\x{0114}\x{011a}\x{00cd}\x{0142}\x{00d1}\x{00d3}\x{0160}\x{00da}\x{016e}\x{00dd}]
[ACCCEEEILNOSUUY];
$replacement =~ tr [\x{00e1}\x{00e7}\x{0107}\x{010d}\x{00e9}\x{0115}\x{011b}\x{00ed}\x{0141}\x{00f1}\x{00f3}\x{0161}\x{00fa}\x{016f}\x{00fd}]
[accceeeilnosuuy];
$replacement =~ s/[\x{00c4}]/A~/g;
$replacement =~ s/[\x{00d0}]/D~/g;
$replacement =~ s/[\x{00cb}]/E~/g;
$replacement =~ s/[\x{00cf}]/I~/g;
$replacement =~ s/[\x{00d4}\x{0150}]/O~/g;
$replacement =~ s/[\x{00d6}\x{0150}]/O~/g;
$replacement =~ s/[\x{00dc}\x{0170}]/U~/g;
$replacement =~ s/[\x{00e4}]/a~/g;
$replacement =~ s/[\x{00f0}]/d~/g;
$replacement =~ s/[\x{00eb}]/e~/g;
$replacement =~ s/[\x{00ef}]/i~/g;
$replacement =~ s/[\x{00f4}\x{0151}]/o~/g;
$replacement =~ s/[\x{00f6}\x{0151}]/o~/g;
$replacement =~ s/[\x{00fc}\x{0171}]/u~/g;
$replacement =~ s/[+]//g;
next if $replacement eq $defsort;
unshift(@defsorts, {
'pos' => $pos,
len => $len,
defsort => $defsort,
replacement => $replacement,
});
$count++;
}
$count or return ('Nincs ekezetes karakter defaultsortban');
foreach (@defsorts) {
substr($text_str, $_->{pos}, $_->{len}) = $_->{replacement};
}
my $summary_str = $latin2->decode(
"Bot: $count DEFAULTSORT-ból törölve az ékezetes betűk. (Hibakód: $error_code)"
);
return ($summary_str, $count, $text_str);
}