diff options
author | Avi Halachmi (:avih) <avihpit@yahoo.com> | 2023-06-27 14:41:47 +0300 |
---|---|---|
committer | Avi Halachmi (:avih) <avihpit@yahoo.com> | 2023-07-22 09:40:16 +0300 |
commit | 0efc74740ebc0d98af79ba4a5dfa73bfb5db3df0 (patch) | |
tree | c21fd8650e8c197abb317831c1f84e6fcf021f8e /arch | |
parent | 4fe7e7cdd0441e9455cc93c17b40a7a96704e61f (diff) | |
download | busybox-w32-0efc74740ebc0d98af79ba4a5dfa73bfb5db3df0.tar.gz busybox-w32-0efc74740ebc0d98af79ba4a5dfa73bfb5db3df0.tar.bz2 busybox-w32-0efc74740ebc0d98af79ba4a5dfa73bfb5db3df0.zip |
win32: support build with FEATURE_UNICODE_SUPPORT
FEATURE_UTF8_MANIFEST enables Unicode args and filenames on Win 10+.
FEATURE_UTF8_INPUT allows the shell prompt to digest correctly
Unicode strings (as UTF8) which are typed or pasted.
This commit adds support for building with FEATURE_UNICODE_SUPPORT
(mostly by supporting 32 bit wchar_t which busybox expects):
- Unicode-aware line-edit - for the most part cursor movement/del
being (UTF8) codepoint-aware rather than assuming that one-byte
equals one-char-on-screen.
- Codepoint-aware operations in some other utils, like rev or wc -c.
- When UNICODE_COMBINING_WCHARS and UNICODE_WIDE_WCHARS are enabled,
some screen-width-aware operations, like with fold, ls, expand, etc.
The busybox Unicode support is incomplete, and even less so with the
builtin libc replacement functions, like wcwidth, which are active
when UNICODE_USING_LOCALE is unset (mingw lacks those functions).
FEATURE_CHECK_UNICODE_IN_ENV should be set so that Unicode is not
hardcoded but rather depends on the ANSI codepage and some env vars:
LC_ALL=C disables Unicode support, else it's enabled if ACP is UTF8.
There's at least one known issue where the tab-completion-prefix-case
is not updated correctly, e.g. ~/desk<tab> completes to ~/desktop/
instead of ~/Desktop/, because the code which handles it exists
only at the non-unicode code paths, but that's not very critical.
That seems to be the only case where mingw-specific code is disabled
when Unicode is enabled, but there could be other unknown issues.
None of the Unicode options is enabled by default, and the next
commit will make it easier to create a build which supports Unicode.
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions