File: ascii_order.pl

package info (click to toggle)
perl 5.24.1-3%2Bdeb9u7
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 107,108 kB
  • sloc: perl: 559,649; ansic: 293,918; sh: 67,316; pascal: 7,632; cpp: 3,895; makefile: 2,436; xml: 2,410; yacc: 989; sed: 6; lisp: 1
file content (26 lines) | stat: -rw-r--r-- 839 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 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