Merge tag 'backlight-next-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee...
[sfrench/cifs-2.6.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";