From 1f0f5b8e62fd73d8e6fc0230ed8bf535db7671f7 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 14 Oct 2008 12:59:03 +0000 Subject: 25893: rescind advice to use m:{[:lower:]}={[:upper:]} matcher for now --- ChangeLog | 7 +++++++ Doc/Zsh/compwid.yo | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 645b278d1..8df4fca33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-10-14 Peter Stephenson + + * 25893: Doc/Zsh/compwid.yo: matcher "m:{a-z}={A-Z}" still + works better than "m:{[:lower:]}={[:upper:]}" in that the + latter can glitch on some multibyte characters with Meta in + (and doesn't yet work on non-ASCII characters anyway). + 2008-10-12 Clint Adams * 25860: Src/Zle/compmatch.c: avoid possible NULL dereferencing in diff --git a/Doc/Zsh/compwid.yo b/Doc/Zsh/compwid.yo index 05b8ab9b2..dcf2d1569 100644 --- a/Doc/Zsh/compwid.yo +++ b/Doc/Zsh/compwid.yo @@ -942,14 +942,16 @@ line match the corresponding upper case character in the trial completion you can use `tt(m:{[:lower:]}={[:upper:]})'. Although the matching system does not yet handle multibyte characters, this is likely to be a future extension, at which point this syntax will handle -arbitrary alphabets; hence this form, rather than the use of explicit -ranges, is the recommended form. In other cases -`tt([:)var(name)tt(:])' forms are allowed. If the two forms on the left -and right are the same, the characters must match exactly. In remaining -cases, the corresponding tests are applied to both characters, but they -are not otherwise constrained; any matching character in one set goes -with any matching character in the other set: this is equivalent to the -behaviour of ordinary character classes. +arbitrary alphabets; until then it is safer to use the older syntax +that only handles ASCII characters, `tt(m:{a-z}={A-Z}) as this does +not have side effects in the case of multibyte characters. + +In other cases `tt([:)var(name)tt(:])' forms are allowed. If the two forms +on the left and right are the same, the characters must match exactly. In +remaining cases, the corresponding tests are applied to both characters, +but they are not otherwise constrained; any matching character in one set +goes with any matching character in the other set: this is equivalent to +the behaviour of ordinary character classes. The pattern var(tpat) may also be one or two stars, `tt(*)' or `tt(**)'. This means that the pattern on the command line can match -- cgit 1.4.1