Merge branch 'PAGE_CACHE_SIZE-removal'
[deliverable/linux.git] / Documentation / filesystems / cifs / winucase_convert.pl
1 #!/usr/bin/perl -w
2 #
3 # winucase_convert.pl -- convert "Windows 8 Upper Case Mapping Table.txt" to
4 # a two-level set of C arrays.
5 #
6 # Copyright 2013: Jeff Layton <jlayton@redhat.com>
7 #
8 # This program is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #
21
22 while(<>) {
23 next if (!/^0x(..)(..)\t0x(....)\t/);
24 $firstchar = hex($1);
25 $secondchar = hex($2);
26 $uppercase = hex($3);
27
28 $top[$firstchar][$secondchar] = $uppercase;
29 }
30
31 for ($i = 0; $i < 256; $i++) {
32 next if (!$top[$i]);
33
34 printf("static const wchar_t t2_%2.2x[256] = {", $i);
35 for ($j = 0; $j < 256; $j++) {
36 if (($j % 8) == 0) {
37 print "\n\t";
38 } else {
39 print " ";
40 }
41 printf("0x%4.4x,", $top[$i][$j] ? $top[$i][$j] : 0);
42 }
43 print "\n};\n\n";
44 }
45
46 printf("static const wchar_t *const toplevel[256] = {", $i);
47 for ($i = 0; $i < 256; $i++) {
48 if (($i % 8) == 0) {
49 print "\n\t";
50 } elsif ($top[$i]) {
51 print " ";
52 } else {
53 print " ";
54 }
55
56 if ($top[$i]) {
57 printf("t2_%2.2x,", $i);
58 } else {
59 print "NULL,";
60 }
61 }
62 print "\n};\n\n";
This page took 0.043389 seconds and 5 git commands to generate.