Blame view

kernel/linux-rt-4.4.41/Documentation/filesystems/cifs/winucase_convert.pl 1.58 KB
5113f6f70   김현기   kernel add
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  #!/usr/bin/perl -w
  #
  # winucase_convert.pl -- convert "Windows 8 Upper Case Mapping Table.txt" to
  #                        a two-level set of C arrays.
  #
  #   Copyright 2013: Jeff Layton <jlayton@redhat.com>
  #
  #   This program is free software: you can redistribute it and/or modify
  #   it under the terms of the GNU General Public License as published by
  #   the Free Software Foundation, either version 3 of the License, or
  #   (at your option) any later version.
  #
  #   This program is distributed in the hope that it will be useful,
  #   but WITHOUT ANY WARRANTY; without even the implied warranty of
  #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  #   GNU General Public License for more details.
  #
  #   You should have received a copy of the GNU General Public License
  #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  #
  
  while(<>) {
  	next if (!/^0x(..)(..)\t0x(....)\t/);
  	$firstchar = hex($1);
  	$secondchar = hex($2);
  	$uppercase = hex($3);
  
  	$top[$firstchar][$secondchar] = $uppercase;
  }
  
  for ($i = 0; $i < 256; $i++) {
  	next if (!$top[$i]);
  
  	printf("static const wchar_t t2_%2.2x[256] = {", $i);
  	for ($j = 0; $j < 256; $j++) {
  		if (($j % 8) == 0) {
  			print "
  \t";
  		} else {
  			print " ";
  		}
  		printf("0x%4.4x,", $top[$i][$j] ? $top[$i][$j] : 0);
  	}
  	print "
  };
  
  ";
  }
  
  printf("static const wchar_t *const toplevel[256] = {", $i);
  for ($i = 0; $i < 256; $i++) {
  	if (($i % 8) == 0) {
  		print "
  \t";
  	} elsif ($top[$i]) {
  		print " ";
  	} else {
  		print "  ";
  	}
  
  	if ($top[$i]) {
  		printf("t2_%2.2x,", $i);
  	} else {
  		print "NULL,";
  	}
  }
  print "
  };
  
  ";