27 lines
839 B
Raku
27 lines
839 B
Raku
# Helper for some of the .t's in this directory
|
|
|
|
sub native_to_uni($) { # Convert from platform character set to Unicode
|
|
# (which is the same as ASCII)
|
|
my $string = shift;
|
|
|
|
return $string if ord("A") == 65
|
|
|| $] lt 5.007_003; # Doesn't work on early EBCDIC Perls
|
|
my $output = "";
|
|
for my $i (0 .. length($string) - 1) {
|
|
$output .= chr(utf8::native_to_unicode(ord(substr($string, $i, 1))));
|
|
}
|
|
# Preserve utf8ness of input onto the output, even if it didn't need to be
|
|
# utf8
|
|
utf8::upgrade($output) if utf8::is_utf8($string);
|
|
|
|
return $output;
|
|
}
|
|
|
|
|
|
sub ascii_order { # Sort helper. Causes the order to be the same as ASCII
|
|
# no matter what the platform's character set is.
|
|
return native_to_uni($a) cmp native_to_uni($b);
|
|
}
|
|
|
|
1
|