From 875f506b33ad11f563de4ed710b7a174b0e9fcfc Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sun, 29 Nov 2020 21:38:12 +0100 Subject: [PATCH] libport: Move the char type table back to libwine and stop updating it. Signed-off-by: Alexandre Julliard --- include/wine/unicode.h | 5 +++-- libs/port/Makefile.in | 3 +-- libs/wine/Makefile.in | 3 ++- libs/{port => wine}/wctype.c | 6 ++++++ libs/wine/wine.map | 2 +- tools/make_unicode | 40 ------------------------------------ 6 files changed, 13 insertions(+), 46 deletions(-) rename libs/{port => wine}/wctype.c (99%) diff --git a/include/wine/unicode.h b/include/wine/unicode.h index 011aacf7386..7a9e07fa1bc 100644 --- a/include/wine/unicode.h +++ b/include/wine/unicode.h @@ -58,8 +58,9 @@ WINE_UNICODE_INLINE WCHAR toupperW( WCHAR ch ) /* and the C2_* type in the high 4 bits */ WINE_UNICODE_INLINE unsigned short get_char_typeW( WCHAR ch ) { - extern const unsigned short wine_wctype_table[]; - return wine_wctype_table[wine_wctype_table[ch >> 8] + (ch & 0xff)]; + unsigned short type; + GetStringTypeW( CT_CTYPE1, &ch, 1, &type ); + return type; } WINE_UNICODE_INLINE int iscntrlW( WCHAR wc ) diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in index 5d1019aa801..51cfdb4df54 100644 --- a/libs/port/Makefile.in +++ b/libs/port/Makefile.in @@ -18,5 +18,4 @@ C_SRCS = \ statvfs.c \ strnlen.c \ symlink.c \ - usleep.c \ - wctype.c + usleep.c diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in index f4086b1a763..885a7326568 100644 --- a/libs/wine/Makefile.in +++ b/libs/wine/Makefile.in @@ -84,7 +84,8 @@ C_SRCS = \ sortkey.c \ string.c \ utf8.c \ - wctomb.c + wctomb.c \ + wctype.c config_EXTRADEFS = \ -DBINDIR='"${bindir}"' \ diff --git a/libs/port/wctype.c b/libs/wine/wctype.c similarity index 99% rename from libs/port/wctype.c rename to libs/wine/wctype.c index 9b38bd0a0e2..e384e573f64 100644 --- a/libs/port/wctype.c +++ b/libs/wine/wctype.c @@ -1,6 +1,10 @@ /* Unicode ctype tables */ /* Automatically generated; DO NOT EDIT!! */ +#include "wine/asm.h" + +#ifdef __ASM_OBSOLETE + #include "windef.h" const unsigned short wine_wctype_table[16242] = @@ -2039,3 +2043,5 @@ const unsigned short wine_wctype_table[16242] = 0x0000, 0x0000, 0x0000, 0xb220, 0xb220, 0xb220, 0xb200, 0xb200, 0x0000, 0x0000 }; + +#endif /* __ASM_OBSOLETE */ diff --git a/libs/wine/wine.map b/libs/wine/wine.map index 6147dccc77e..1b0df15eef5 100644 --- a/libs/wine/wine.map +++ b/libs/wine/wine.map @@ -14,7 +14,6 @@ WINE_1.0 wine_mmap_enum_reserved_areas; wine_mmap_is_in_reserved_area; wine_mmap_remove_reserved_area; - wine_wctype_table; /* the following functions are obsolete and only exported for backwards compatibility */ @@ -120,6 +119,7 @@ WINE_1.0 wine_switch_to_stack; wine_utf8_mbstowcs; wine_utf8_wcstombs; + wine_wctype_table; local: *; }; diff --git a/tools/make_unicode b/tools/make_unicode index c454c74440f..02bb0afdb66 100755 --- a/tools/make_unicode +++ b/tools/make_unicode @@ -1753,19 +1753,6 @@ sub compress_array($$@) return @array, unpack "U*", $data; } -################################################################ -# dump a simple char -> 16-bit value mapping table -sub dump_simple_mapping($$@) -{ - my $name = shift; - my $def = shift; - my @array = compress_array( 256, $def, @_[0..65535] ); - - printf OUTPUT "const unsigned short %s[%d] =\n{\n", $name, $#array+1; - printf OUTPUT " /* offsets */\n%s,\n", dump_array( 16, 0, @array[0..255] ); - printf OUTPUT " /* values */\n%s\n};\n", dump_array( 16, 0, @array[256..$#array] ); -} - ################################################################ # dump a char -> 16-bit value mapping table using two-level tables sub dump_two_level_mapping($$@) @@ -1882,32 +1869,6 @@ sub dump_bidi_dir_table($) } -################################################################ -# dump the ctype tables -sub dump_ctype_tables($) -{ - my $filename = shift; - open OUTPUT,">$filename.new" or die "Cannot create $filename"; - printf "Building $filename\n"; - printf OUTPUT "/* Unicode ctype tables */\n"; - printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n"; - printf OUTPUT "#include \"windef.h\"\n\n"; - - my @table = map { ($_ || 0) & 0xffff; } @category_table; - - # add the direction in the high 4 bits of the category - for (my $i = 0; $i < 65536; $i++) - { - $table[$i] |= $directions{$direction_table[$i]} << 12 if defined $direction_table[$i]; - } - - dump_simple_mapping( "wine_wctype_table", 0, @table ); - - close OUTPUT; - save_file($filename); -} - - sub rol($$) { my ($byte, $count) = @_; @@ -2739,7 +2700,6 @@ sub save_file($) chdir ".." if -f "./make_unicode"; load_data(); dump_sortkeys( "dlls/kernelbase/collation.c" ); -dump_ctype_tables( "libs/port/wctype.c" ); dump_bidi_dir_table( "dlls/gdi32/uniscribe/direction.c" ); dump_bidi_dir_table( "dlls/dwrite/direction.c" ); dump_digit_folding( "dlls/kernelbase/digitmap.c" );