From dbd00086d576debf97d38168749ca294d069b110 Mon Sep 17 00:00:00 2001 From: Sanghoon Park Date: Thu, 11 Mar 2021 14:02:09 +0900 Subject: [PATCH] make_unicode: Add support for codepage 20949 (Korean Wansung). Signed-off-by: Sanghoon Park Signed-off-by: Alexandre Julliard (cherry picked from commit fd3a6402065a057e189d44905f62774bb6a381c6) Signed-off-by: Michael Stefaniuc --- dlls/kernelbase/kernelbase.rgs | 1 + dlls/kernelbase/locale.c | 1 + loader/wine.inf.in | 1 + nls/Makefile.in | 1 + nls/c_20949.nls | Bin 0 -> 177698 bytes tools/make_unicode | 41 +++++++++++++++++++++++++++++++++ 6 files changed, 45 insertions(+) create mode 100644 nls/c_20949.nls diff --git a/dlls/kernelbase/kernelbase.rgs b/dlls/kernelbase/kernelbase.rgs index 629f98ebafa..d35eb0a71a8 100644 --- a/dlls/kernelbase/kernelbase.rgs +++ b/dlls/kernelbase/kernelbase.rgs @@ -76,6 +76,7 @@ HKLM val '28603' = s 'c_28603.nls' val '28605' = s 'c_28605.nls' val '20932' = s 'c_20932.nls' + val '20949' = s 'c_20949.nls' } Normalization { diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c index c60b796aa48..5c043113088 100644 --- a/dlls/kernelbase/locale.c +++ b/dlls/kernelbase/locale.c @@ -161,6 +161,7 @@ static const struct { UINT cp; const WCHAR *name; } codepage_names[] = { 20127, L"US-ASCII (7bit)" }, { 20866, L"Russian KOI8" }, { 20932, L"EUC-JP" }, + { 20949, L"Korean Wansung" }, { 21866, L"Ukrainian KOI8" }, { 28591, L"ISO 8859-1 Latin 1" }, { 28592, L"ISO 8859-2 Latin 2 (East European)" }, diff --git a/loader/wine.inf.in b/loader/wine.inf.in index d5dd2d5b66b..e976a510a37 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in @@ -4103,6 +4103,7 @@ c_1361.nls c_20127.nls c_20866.nls c_20932.nls +c_20949.nls c_21866.nls c_28591.nls c_28592.nls diff --git a/nls/Makefile.in b/nls/Makefile.in index a3c3b69b029..4352becac5f 100644 --- a/nls/Makefile.in +++ b/nls/Makefile.in @@ -30,6 +30,7 @@ SOURCES = \ c_20127.nls \ c_20866.nls \ c_20932.nls \ + c_20949.nls \ c_21866.nls \ c_28591.nls \ c_28592.nls \ diff --git a/nls/c_20949.nls b/nls/c_20949.nls new file mode 100644 index 0000000000000000000000000000000000000000..1ee157af00355df9e5539da91cda687394d43399 GIT binary patch literal 177698 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%0DA1DV3qf8c^$GJs-tYp4Y)E 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 literal 0 HcmV?d00001 diff --git a/tools/make_unicode b/tools/make_unicode index 02bb0afdb66..d71dcecbf3a 100755 --- a/tools/make_unicode +++ b/tools/make_unicode @@ -26,6 +26,7 @@ my $UNIVERSION = "13.0.0"; my $UNIDATA = "https://www.unicode.org/Public/$UNIVERSION/ucd/UCD.zip"; my $IDNADATA = "https://www.unicode.org/Public/idna/$UNIVERSION"; my $JISDATA = "https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS"; +my $KSCDATA = "https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC"; my $REPORTS = "http://www.unicode.org/reports"; my $MSDATA = "https://download.microsoft.com/download/C/F/7/CF713A5E-9FBC-4FD6-9246-275F65C0E498"; my $MSCODEPAGES = "$MSDATA/Windows Supported Code Page Data Files.zip"; @@ -933,6 +934,45 @@ sub dump_eucjp_codepage() output_codepage_file( 20932 ); } +################################################################ +# build Korean Wansung table from the KSX1001 file +# FIXME: compare to Windows we should add extra mappings for +# characters added from Unicode 1.1 to enhance the completeness. +sub dump_krwansung_codepage() +{ + @cp2uni = (); + @glyph2uni = (); + @lead_bytes = (); + @uni2cp = (); + $default_char = 0x3f; + $default_wchar = 0x003f; + + # ASCII and undefined chars + foreach my $i (0x00 .. 0x9f) { add_mapping( $i, $i ); } + add_mapping( 0xa0, 0xf8e6 ); + add_mapping( 0xad, 0xf8e7 ); + add_mapping( 0xae, 0xf8e8 ); + add_mapping( 0xaf, 0xf8e9 ); + add_mapping( 0xfe, 0xf8ea ); + add_mapping( 0xff, 0xf8eb ); + + my $INPUT = open_data_file( $KSCDATA, "KSX1001.TXT" ); + while (<$INPUT>) + { + next if /^\#/; # skip comments + next if /^$/; # skip empty lines + next if /\x1a/; # skip ^Z + if (/^0x([0-9a-fA-F]+)\s+0x([0-9a-fA-F]+)\s+(\#.*)?/) + { + add_mapping( 0x8080 + hex $1, hex $2 ); + next; + } + die "Unrecognized line $_\n"; + } + close $INPUT; + + output_codepage_file( 20949 ); +} ################################################################ # build the sort keys table @@ -2723,6 +2763,7 @@ dump_norm_table( "nls/normidna.nls" ); dump_sortkey_table( "nls/sortdefault.nls", "Windows 10 Sorting Weight Table.txt" ); foreach my $file (@allfiles) { dump_msdata_codepage( $file ); } dump_eucjp_codepage(); +dump_krwansung_codepage(); dump_registry_script( "dlls/kernelbase/kernelbase.rgs", %registry_keys ); exit 0;