Commit Graph

151 Commits

Author SHA1 Message Date
Piotr Caban f09f686538 Revert "kernel32: Restore C locale for LC_CTYPE category.".
This reverts commit c8e195e179.

There's still lots of code that works incorrectly in tr_TR.UTF-8 locale
but I think it's good to revert this patch before next release.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-27 22:01:39 +01:00
Piotr Caban 2eb1849100 kernel32: Don't use strcasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-27 22:01:31 +01:00
Piotr Caban c8e195e179 kernel32: Restore C locale for LC_CTYPE category.
In tr_TR.UTF-8 locale tolower('I') != 'i' (this is not a bug in glibc,
tolower('I') is suppossed to return dotless i that is 2-byte long).
Because of that strcasemp("i", "I") returns that the strings are
different.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 21:43:00 +01:00
Jacek Caban 5bb4212397 kernel32: Support MUI_LANGUAGE_ID flag in EnumUILanguages.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-13 19:45:24 +01:00
Huw Davies 2d2e935190 kernel32: Implement canonical composing.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-11 11:52:00 +01:00
Huw Davies dc919db2bf kernel32: Implement canonical reordering.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-11 11:52:00 +01:00
Huw Davies e4a9e2ff2e kernel32: Initial support for canonical decomposition in NormalizeString().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-11 11:52:00 +01:00
Zhiyi Zhang 3ebd2f0be3 kernel32: Implement FindStringOrdinal.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46035
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 10:53:50 +01:00
Akihiro Sagawa b02cdd3615 kernel32: Fix LCMapString buffer calculation with LCMAP_KATAKANA and LCMAP_HALFWIDTH.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45982
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 20:13:51 +02:00
Michael Stefaniuc fe70e0e58f kernel32: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Akihiro Sagawa a5da525229 kernel32: Fix LCMapString(LCMAP_HALFWIDTH) in some cases.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45439
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-12 17:01:45 +02:00
Matej Špindler da5112c743 kernel32: Check for LOCALE_NOUSEROVERRIDE for neutral locales.
Signed-off-by: Matej Špindler <spindler.matej@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-22 21:58:02 +02:00
Louis Lenders e0f9ff9eb0 kernel32: Improve stub for SetThreadUILanguage.
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-02 20:47:11 +02:00
Jarkko Korpi dc5b22963b kernel32: Silence repeated LocaleNameToLCID unsupported flags.
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:14:44 +01:00
Sergio Gómez Del Real 2d74a4ff43 kernel32: Implement FindNLSStringEx.
Signed-off-by: Sergio Gómez Del Real <sdelreal@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-13 20:58:07 +01:00
Alexandre Julliard c63a08586f kernel32: Don't return a parent locale for neutral locales in GetLocaleInfoEx.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-28 20:32:52 +01:00
Alexandre Julliard c5a39bd98f kernel32: Keep the sublanguage specified by the script name when looking for the default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-13 19:43:13 +01:00
Alexandre Julliard de7e687801 kernel32: Also match script name when looking for a locale.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-13 19:04:04 +01:00
Jactry Zeng b9a9fe4a04 kernel32: Add stub for ResolveLocaleName.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-19 19:13:30 +02:00
Aric Stewart 9dc5d299f1 kernel32: Improve locale detection on Android.
setlocale is coded to just return 'C' for all inquiries ignoring locale
that may be set in the environment.

Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-03 17:59:09 +02:00
Alex Henrie 0b95ebd283 kernel32: Check for invalid flags in codepage conversion functions.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 10:31:46 +02:00
Andrew Eikum 72b9acd94b kernel32: Don't care about case when finding matching locale.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:51 +01:00
Andrew Eikum 7737693693 kernel32: Use different default sublangs for Spanish and Chinese.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:49 +01:00
Jacek Caban 26d0105cd8 kernel32: Improved GetUserPreferredUILanguages stub.
Implementation and tests are based on GetSystemPreferredUILanguages.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-19 08:16:54 -07:00
Akihiro Sagawa 429ca40fc8 kernel32: Implement LCMAP_HALFWIDTH.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-03 11:59:57 +02:00
Akihiro Sagawa 85cff1717d kernel32: Implement LCMAP_FULLWIDTH.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-03 11:59:41 +02:00
Akihiro Sagawa 12c547919f kernel32: Implement LCMAP_KATAKANA.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-23 21:02:58 +09:00
Akihiro Sagawa c4af608845 kernel32: Implement LCMAP_HIRAGANA.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-23 21:02:53 +09:00
Akihiro Sagawa 659e161d7e kernel32: Refactor the codepath and a variable usage.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-23 20:56:53 +09:00
Akihiro Sagawa 5d907050e2 kernel32: Short circuit required length calculation.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-23 20:52:34 +09:00
Akihiro Sagawa 5fbdd644d6 kernel32: Zero is an invalid flag value.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-23 20:50:38 +09:00
Akihiro Sagawa 70a6546753 kernel32: Do not allow to combine NORM_IGNORENONSPACE and/or NORM_IGNORESYMBOLS with other LCMAP flags.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-23 20:50:21 +09:00
Jacek Caban 505406fc83 kernel32: Fixed handling LOCALE_NAME_USER_DEFAULT in GetLocaleInfoEx.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-27 13:23:33 +09:00
Francois Gouget c8d1fbc6d2 kernel32: Fix typos in a couple of comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-04 11:01:42 +09:00
Ken Thomases d90f29d817 kernel32: Overhaul the locale determination on the Mac.
The C library locale is inadequate for conveying the Mac user settings between
LOCALE_Init() and setup_unix_locales().  The set of locales supported by the C
library can't express the combinations allowed in user settings.

Setting LANG to a user-settings-derived locale when there's no corresponding C
library locale is actually worse than leaving it unset.  It will prevent the
C library from honoring the LC_* variables (other than LC_ALL).  That's why
Terminal.app won't set LANG in that case, it just sets LC_CTYPE=UTF-8.  This
commit makes Wine follow similar logic in not setting LANG if the C library
doesn't support the Mac user settings.

Rather, it uses a wrapper around setlocale() to query the locale.  That wrapper
returns a value representing the Mac user settings if the C library comes up
empty.  It also has logic to handle Terminal's setting LC_CTYPE=UTF-8, since
parse_locale_name() can't handle that properly.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 00:09:19 +09:00
Alexandre Julliard 73d9e2ebff kernel32: Use RtlCompareUnicodeStrings in CompareStringOrdinal for consistent results.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-14 17:09:54 +09:00
Piotr Caban 4fdfa29e60 kernel32: Use utf8 for filenames encoding if different encoding was not specified on Mac.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-01 00:21:47 +09:00
Nikolay Sivov 632266e5b5 kernel32: Set C3_KASHIDA only for kashida character.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-16 15:28:55 +09:00
Nikolay Sivov 73f7bf57cb kernel32: Handle NULL locale name in IsValidLocaleName().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-16 15:28:42 +09:00
Hans Leidekker c90845cf93 kernel32: Improve the stub for GetThreadPreferredUILanguages.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-29 20:30:57 +09:00
Louis Lenders a6e1adb8b7 kernel32: Print a FIXME only once in LCMapStringEx.
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-26 23:30:16 +09:00
Alexandre Julliard 0bbeaae678 make_unicode: Mark most data tables as hidden.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-25 00:25:01 +09:00
Stefan Leichter 9cd67d2a5e kernel32: Return a dummy value in GetSystemPreferredUILanguages.
Signed-off-by: Stefan Leichter <Stefan.Leichter@camLine.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 21:30:05 +09:00
Alex Henrie 6e841fdb75 kernel32: Set error if dstlen < 0 in codepage conversion functions.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 18:49:49 +09:00
Stefan Leichter 1c3c9f06c5 kernel32: Add stub for GetSystemPreferredUILanguages.
Signed-off-by: Stefan Leichter <Stefan.Leichter@camLine.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-19 23:00:51 +09:00
Austin English 5d186034c1 kernel32: Make CompareStringEx semi-stub flag FIXME only show once.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 12:04:05 +01:00
Jacek Caban 6a7363b694 kernel32: Call registry functions with full key path.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 23:56:39 +09:00
Nikolay Sivov 982c3ede72 kernel32: GetLocaleInfoA() doesn't support LOCALE_SSHORTTIME.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-11 00:07:43 +09:00
Daniel Lehman 5bf1423c2c kernel32: Return LOCALE_INVARIANT from ConvertDefaultLocale. 2015-08-25 17:41:35 +09:00
Jacek Caban 09176c3aa0 kernel32: Treat empty locale name as LOCALE_INVARIANT. 2015-06-10 15:00:15 +09:00