From bbcfdffbc33b79688f6daa478bfd9c1171989d15 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 9 Jul 2019 09:22:01 +0100 Subject: unposted: FAQ updates. Typo from previous change; also update old notes on multibyte support. --- Etc/FAQ.yo | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) (limited to 'Etc') diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo index be4e1f8a8..a9ce754b5 100644 --- a/Etc/FAQ.yo +++ b/Etc/FAQ.yo @@ -2023,7 +2023,7 @@ sect(Why doesn't the expansion mytt(*.{tex,aux,pdf}) do what I expect?) echo *.(tex|aux|pdf) ) This is now a pattern matching expression, so is considered as a - single pattern. Now any file that exists will supress the + single pattern. Now any file that exists will suppress the mytt(NOMATCH) behaviour, but you'll still get all the files that do match. @@ -2263,22 +2263,21 @@ sect(How does zsh handle multibyte input and output?) cause all sorts of odd effects. (It was possible to edit in zsh using single-byte extensions of ASCII such as the ISO 8859 family, however.) - From version 4.3.4, multibyte input is handled in the line editor if zsh - has been compiled with the appropriate definitions, and is automatically - activated. This is indicated by the option tt(MULTIBYTE), which is - set by default on shells that support multibyte mode. Hence you - can test this with a standard option test: `tt([[ -o multibyte ]])'. + From version 4.3.4 (stable versions starting from 5.0), multibyte + input is handled in the line editor if zsh has been compiled with the + appropriate definitions, and is automatically activated. This is + indicated by the option tt(MULTIBYTE), which is set by default on + shells that support multibyte mode. Hence you can test this with a + standard option test: `tt([[ -o multibyte ]])'. The tt(MULTIBYTE) option affects the entire shell: parameter expansion, pattern matching, etc. count valid multibyte character strings as a single character. You can unset the option locally in a function to revert to single-byte operation. - Note that if the shell is emulating a Bourne shell the tt(MULTIBYTE) - option is unset by default. This allows various POSIX modes to - work normally (POSIX does not deal with multibyte characters). If - you use a "sh" or "ksh" emulation interactively you should probably - set the tt(MULTIBYTE) option. + As multibyte characters are nowadays standard across most utilities, + since 5.1 the tt(MULTBYTE) option has been turned on when emulating + other shells. The other option that affects multibyte support is tt(COMBINING_CHARS), new in version 4.3.9. When this is set, any zero-length punctuation @@ -2311,17 +2310,19 @@ sect(How do I ensure multibyte input and output work on my system?) itemization( it() The locale. This describes a whole series of features specific - to countries or regions of which the character set is one. Usually - it is controlled by the environment variable tt(LANG) (there are - others but this is the one to start with). You need to find a - locale whose name contains mytt(UTF-8). This will be a variant on - your usual locale, which typically indicates the language and - country; for example, mine is mytt(en_GB.UTF-8). Luckily, zsh can - complete locale names, so if you have the new completion system - loaded you can type mytt(export LANG=) and attempt to complete a - suitable locale. It's the locale that tells the shell to expect the - right form of multibyte input. (However, there's no guarantee that - the shell is actually going to get this input: for example, if you + to countries or regions of which the character set is one. + Usually it is controlled by the environment variable tt(LANG) + (there are others but this is the one to start with). If you have + a recent operating system, very likely it is already set + appropriately. Otherwise, you need to find a locale whose name + contains mytt(UTF-8). This will be a variant on your usual + locale, which typically indicates the language and country; for + example, mine is mytt(en_GB.UTF-8). Luckily, zsh can complete + locale names, so if you have the new completion system loaded you + can type mytt(export LANG=) and attempt to complete a suitable + locale. It's the locale that tells the shell to expect the right + form of multibyte input. (However, there's no guarantee that the + shell is actually going to get this input: for example, if you edit file names that have been created using a different character set it won't work properly.) it() The terminal emulator. Those that are supplied with a recent -- cgit 1.4.1