unicode: Generate a registry script for Nls keys.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d87d4a4a04
commit
712839d581
5 changed files with 170 additions and 72 deletions
|
@ -22,3 +22,5 @@ C_SRCS = \
|
|||
thread.c \
|
||||
version.c \
|
||||
wctype.c
|
||||
|
||||
RC_SRCS = kernelbase.rc
|
||||
|
|
20
dlls/kernelbase/kernelbase.rc
Normal file
20
dlls/kernelbase/kernelbase.rc
Normal file
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Copyright 2020 Alexandre Julliard
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/* @makedep: kernelbase.rgs */
|
||||
1 WINE_REGISTRY kernelbase.rgs
|
91
dlls/kernelbase/kernelbase.rgs
Normal file
91
dlls/kernelbase/kernelbase.rgs
Normal file
|
@ -0,0 +1,91 @@
|
|||
HKLM
|
||||
{
|
||||
NoRemove SYSTEM
|
||||
{
|
||||
NoRemove CurrentControlSet
|
||||
{
|
||||
NoRemove Control
|
||||
{
|
||||
NoRemove Nls
|
||||
{
|
||||
Codepage
|
||||
{
|
||||
val '37' = s 'c_037.nls'
|
||||
val '437' = s 'c_437.nls'
|
||||
val '500' = s 'c_500.nls'
|
||||
val '737' = s 'c_737.nls'
|
||||
val '775' = s 'c_775.nls'
|
||||
val '850' = s 'c_850.nls'
|
||||
val '852' = s 'c_852.nls'
|
||||
val '855' = s 'c_855.nls'
|
||||
val '857' = s 'c_857.nls'
|
||||
val '860' = s 'c_860.nls'
|
||||
val '861' = s 'c_861.nls'
|
||||
val '862' = s 'c_862.nls'
|
||||
val '863' = s 'c_863.nls'
|
||||
val '864' = s 'c_864.nls'
|
||||
val '865' = s 'c_865.nls'
|
||||
val '866' = s 'c_866.nls'
|
||||
val '869' = s 'c_869.nls'
|
||||
val '874' = s 'c_874.nls'
|
||||
val '875' = s 'c_875.nls'
|
||||
val '932' = s 'c_932.nls'
|
||||
val '936' = s 'c_936.nls'
|
||||
val '949' = s 'c_949.nls'
|
||||
val '950' = s 'c_950.nls'
|
||||
val '1026' = s 'c_1026.nls'
|
||||
val '1250' = s 'c_1250.nls'
|
||||
val '1251' = s 'c_1251.nls'
|
||||
val '1252' = s 'c_1252.nls'
|
||||
val '1253' = s 'c_1253.nls'
|
||||
val '1254' = s 'c_1254.nls'
|
||||
val '1255' = s 'c_1255.nls'
|
||||
val '1256' = s 'c_1256.nls'
|
||||
val '1257' = s 'c_1257.nls'
|
||||
val '1258' = s 'c_1258.nls'
|
||||
val '1361' = s 'c_1361.nls'
|
||||
val '10000' = s 'c_10000.nls'
|
||||
val '10001' = s 'c_10001.nls'
|
||||
val '10002' = s 'c_10002.nls'
|
||||
val '10003' = s 'c_10003.nls'
|
||||
val '10004' = s 'c_10004.nls'
|
||||
val '10005' = s 'c_10005.nls'
|
||||
val '10006' = s 'c_10006.nls'
|
||||
val '10007' = s 'c_10007.nls'
|
||||
val '10008' = s 'c_10008.nls'
|
||||
val '10010' = s 'c_10010.nls'
|
||||
val '10017' = s 'c_10017.nls'
|
||||
val '10021' = s 'c_10021.nls'
|
||||
val '10029' = s 'c_10029.nls'
|
||||
val '10079' = s 'c_10079.nls'
|
||||
val '10081' = s 'c_10081.nls'
|
||||
val '10082' = s 'c_10082.nls'
|
||||
val '20127' = s 'c_20127.nls'
|
||||
val '20866' = s 'c_20866.nls'
|
||||
val '21866' = s 'c_21866.nls'
|
||||
val '28591' = s 'c_28591.nls'
|
||||
val '28592' = s 'c_28592.nls'
|
||||
val '28593' = s 'c_28593.nls'
|
||||
val '28594' = s 'c_28594.nls'
|
||||
val '28595' = s 'c_28595.nls'
|
||||
val '28596' = s 'c_28596.nls'
|
||||
val '28597' = s 'c_28597.nls'
|
||||
val '28598' = s 'c_28598.nls'
|
||||
val '28599' = s 'c_28599.nls'
|
||||
val '28603' = s 'c_28603.nls'
|
||||
val '28605' = s 'c_28605.nls'
|
||||
val '20932' = s 'c_20932.nls'
|
||||
}
|
||||
Normalization
|
||||
{
|
||||
val '1' = s 'normnfc.nls'
|
||||
val '2' = s 'normnfd.nls'
|
||||
val '5' = s 'normnfkc.nls'
|
||||
val '6' = s 'normnfkd.nls'
|
||||
val 'd' = s 'normidna.nls'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -764,72 +764,6 @@ HKLM,SOFTWARE\Microsoft\Active Setup\Installed Components\{6BF52A52-394A-11d3-B1
|
|||
HKLM,SOFTWARE\Microsoft\Active Setup\Installed Components\{6BF52A52-394A-11d3-B153-00C04F79FAA6},"Version",2,"12,0,7601,18840"
|
||||
|
||||
[Nls]
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"37",,"c_037.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"437",,"c_437.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"500",,"c_500.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"737",,"c_737.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"775",,"c_775.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"850",,"c_850.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"852",,"c_852.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"855",,"c_855.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"857",,"c_857.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"860",,"c_860.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"861",,"c_861.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"862",,"c_862.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"863",,"c_863.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"864",,"c_864.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"865",,"c_865.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"866",,"c_866.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"869",,"c_869.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"874",,"c_874.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"875",,"c_875.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"932",,"c_932.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"936",,"c_936.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"949",,"c_949.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"950",,"c_950.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1026",,"c_1026.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1250",,"c_1250.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1251",,"c_1251.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1252",,"c_1252.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1253",,"c_1253.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1254",,"c_1254.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1255",,"c_1255.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1256",,"c_1256.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1257",,"c_1257.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1258",,"c_1258.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"1361",,"c_1361.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10000",,"c_10000.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10001",,"c_10001.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10002",,"c_10002.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10003",,"c_10003.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10004",,"c_10004.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10005",,"c_10005.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10006",,"c_10006.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10007",,"c_10007.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10008",,"c_10008.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10010",,"c_10010.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10017",,"c_10017.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10021",,"c_10021.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10029",,"c_10029.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10079",,"c_10079.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10081",,"c_10081.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"10082",,"c_10082.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"20127",,"c_20127.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"20866",,"c_20866.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"20932",,"c_20932.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"21866",,"c_21866.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28591",,"c_28591.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28592",,"c_28592.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28593",,"c_28593.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28594",,"c_28594.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28595",,"c_28595.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28596",,"c_28596.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28597",,"c_28597.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28598",,"c_28598.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28599",,"c_28599.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28603",,"c_28603.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Codepage,"28605",,"c_28605.nls"
|
||||
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Language,"0401",,"l_intl.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Language,"0402",,"l_intl.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Language,"0403",,"l_intl.nls"
|
||||
|
@ -1153,12 +1087,6 @@ HKLM,System\CurrentControlSet\Control\Nls\Locale\Alternate Sorts,"00021004",,"a"
|
|||
HKLM,System\CurrentControlSet\Control\Nls\Locale\Alternate Sorts,"00021404",,"9"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Locale\Alternate Sorts,"00030404",,"9"
|
||||
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Normalization,"1",,"normnfc.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Normalization,"2",,"normnfd.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Normalization,"5",,"normnfkc.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Normalization,"6",,"normnfkd.nls"
|
||||
HKLM,System\CurrentControlSet\Control\Nls\Normalization,"d",,"normidna.nls"
|
||||
|
||||
[OLE]
|
||||
HKLM,"Software\Microsoft\OLE","EnableDCOM",,"Y"
|
||||
HKLM,"Software\Microsoft\OLE","EnableRemoteConnect",,"N"
|
||||
|
|
|
@ -440,6 +440,7 @@ my @decomp_compat_table = ();
|
|||
my @comp_exclusions = ();
|
||||
my @idna_decomp_table = ();
|
||||
my @idna_disallowed = ();
|
||||
my %registry_keys;
|
||||
my $default_char;
|
||||
my $default_wchar;
|
||||
|
||||
|
@ -800,6 +801,23 @@ sub load_data()
|
|||
}
|
||||
|
||||
|
||||
################################################################
|
||||
# add a new registry key
|
||||
sub add_registry_key($$)
|
||||
{
|
||||
my ($key, $defval) = @_;
|
||||
$registry_keys{$key} = [ $defval ] unless defined $registry_keys{$key};
|
||||
}
|
||||
|
||||
################################################################
|
||||
# add a new registry value
|
||||
sub add_registry_value($$$)
|
||||
{
|
||||
my ($key, $name, $value) = @_;
|
||||
add_registry_key( $key, undef );
|
||||
push @{$registry_keys{$key}}, "'$name' = s '$value'";
|
||||
}
|
||||
|
||||
################################################################
|
||||
# define a new lead byte
|
||||
sub add_lead_byte($)
|
||||
|
@ -2218,6 +2236,8 @@ sub dump_norm_table($)
|
|||
|
||||
close OUTPUT;
|
||||
save_file($filename);
|
||||
|
||||
add_registry_value( "Normalization", sprintf( "%x", $forms{$type} ), "norm$type.nls" );
|
||||
}
|
||||
|
||||
|
||||
|
@ -2236,6 +2256,8 @@ sub output_codepage_file($)
|
|||
|
||||
close OUTPUT;
|
||||
save_file($output);
|
||||
|
||||
add_registry_value( "Codepage", sprintf( "%d", $codepage ), sprintf( "c_%03d.nls", $codepage ));
|
||||
}
|
||||
|
||||
################################################################
|
||||
|
@ -2335,6 +2357,40 @@ sub dump_msdata_codepage($)
|
|||
}
|
||||
|
||||
|
||||
################################################################
|
||||
# build the script to create registry keys
|
||||
sub dump_registry_script($%)
|
||||
{
|
||||
my ($filename, %keys) = @_;
|
||||
my $indent = 1;
|
||||
|
||||
printf "Building %s\n", $filename;
|
||||
open OUTPUT, ">$filename.new" or die "Cannot create $filename";
|
||||
print OUTPUT "HKLM\n{\n";
|
||||
foreach my $k (split /\\/, "SYSTEM\\CurrentControlSet\\Control\\Nls")
|
||||
{
|
||||
printf OUTPUT "%*sNoRemove %s\n%*s{\n", 4 * $indent, "", $k, 4 * $indent, "";
|
||||
$indent++;
|
||||
}
|
||||
foreach my $k (sort keys %keys)
|
||||
{
|
||||
my @subkeys = split /\\/, $k;
|
||||
my ($def, @vals) = @{$keys{$k}};
|
||||
for (my $i = 0; $i < @subkeys; $i++)
|
||||
{
|
||||
printf OUTPUT "%*s%s%s\n%*s{\n", 4 * $indent, "", $subkeys[$i],
|
||||
$i == $#subkeys && $def ? " = s '$def'" : "", 4 * $indent, "";
|
||||
$indent++;
|
||||
}
|
||||
foreach my $v (@vals) { printf OUTPUT "%*sval $v\n", 4 * $indent, ""; }
|
||||
for (my $i = 0; $i < @subkeys; $i++) { printf OUTPUT "%*s}\n", 4 * --$indent, ""; }
|
||||
}
|
||||
while ($indent) { printf OUTPUT "%*s}\n", 4 * --$indent, ""; }
|
||||
close OUTPUT;
|
||||
save_file($filename);
|
||||
}
|
||||
|
||||
|
||||
################################################################
|
||||
# save a file if modified
|
||||
sub save_file($)
|
||||
|
@ -2383,6 +2439,7 @@ dump_norm_table( "nls/normnfkd.nls" );
|
|||
dump_norm_table( "nls/normidna.nls" );
|
||||
foreach my $file (@allfiles) { dump_msdata_codepage( $file ); }
|
||||
dump_eucjp_codepage();
|
||||
dump_registry_script( "dlls/kernelbase/kernelbase.rgs", %registry_keys );
|
||||
|
||||
exit 0;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue