On Tue, 14 Oct 2008 10:46:29 +0900 Morita Sho <[EMAIL PROTECTED]> wrote: > zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}' > > After removing the above line, the completion Ą/[TAB] works again.
Thanks for narrowing it down... I'm aware that that syntax still needs some work on it, it's only half-converted to supporting non-ASCII characters, so it's probably not surprising this sort of thing happens. The problem is the way characters are stored is quite specific to a single-byte representation; I've made it so that it can be extended to multibyte/wide characters, but it hasn't been. I'm not going to get it properly converted before the next release since it's a big job (I started it once back in June and got bogged down). When I get a chance, I'll look and see if there's any thing obvious I can do with Meta-encoded characters that will work round the problem for now. Until then you should be able to get away with the old syntax, zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' since before I finish the job it won't actually handle non-ASCII character conversions properly anyway. I will document my way round this as follows... Index: Doc/Zsh/compwid.yo =================================================================== RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compwid.yo,v retrieving revision 1.43 diff -u -r1.43 compwid.yo --- Doc/Zsh/compwid.yo 14 Jul 2008 17:39:26 -0000 1.43 +++ Doc/Zsh/compwid.yo 14 Oct 2008 12:01:54 -0000 @@ -942,14 +942,16 @@ 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 -- Peter Stephenson <[EMAIL PROTECTED]> Software Engineer CSR PLC, Churchill House, Cambridge Business Park, Cowley Road Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]