From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6080 invoked from network); 26 Jun 2006 22:00:18 -0000 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,FORGED_RCVD_HELO autolearn=ham version=3.1.3 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 26 Jun 2006 22:00:18 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 10055 invoked from network); 26 Jun 2006 22:00:09 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 26 Jun 2006 22:00:09 -0000 Received: (qmail 18135 invoked by alias); 26 Jun 2006 22:00:06 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 22519 Received: (qmail 18122 invoked from network); 26 Jun 2006 22:00:05 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 26 Jun 2006 22:00:05 -0000 Received: (qmail 9728 invoked from network); 26 Jun 2006 22:00:05 -0000 Received: from mta08-winn.ispmail.ntl.com (HELO mtaout02-winn.ispmail.ntl.com) (81.103.221.48) by a.mx.sunsite.dk with SMTP; 26 Jun 2006 22:00:04 -0000 Received: from aamtaout04-winn.ispmail.ntl.com ([81.103.221.35]) by mtaout02-winn.ispmail.ntl.com with ESMTP id <20060626220001.SBKF27023.mtaout02-winn.ispmail.ntl.com@aamtaout04-winn.ispmail.ntl.com> for ; Mon, 26 Jun 2006 23:00:01 +0100 Received: from pwslaptop.csr.com ([81.107.41.155]) by aamtaout04-winn.ispmail.ntl.com with SMTP id <20060626220001.TMGY16086.aamtaout04-winn.ispmail.ntl.com@pwslaptop.csr.com> for ; Mon, 26 Jun 2006 23:00:01 +0100 Date: Mon, 26 Jun 2006 22:59:57 +0100 From: Peter Stephenson To: zsh Subject: PATCH: multibyte parameter tests Message-Id: <20060626225957.738034f6.p.w.stephenson@ntlworld.com> X-Mailer: Sylpheed version 2.2.6 (GTK+ 2.8.19; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds a few tests for parameter subscripting of multibyte characters. (r) subscripting with multibyte characters is broken: all those endless bits of getarg() with pattry() in need their indexes fixing up. Yuk. Index: Test/D07multibyte.ztst =================================================================== RCS file: Test/D07multibyte.ztst diff -N Test/D07multibyte.ztst --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Test/D07multibyte.ztst 26 Jun 2006 21:55:39 -0000 @@ -0,0 +1,87 @@ +%prep + +# Find a UTF-8 locale. + setopt multibyte + mb_ok= + langs=(en_US.UTF-8 en_GB.UTF-8 en.UTF-8 + $(locale -a 2>/dev/null | sed -e 's/utf8/UTF-8/' | grep UTF-8)) + for LANG in $langs; do + if [[ é = ? ]]; then + mb_ok=1 + break; + fi + done + if [[ -z $mb_ok ]]; then + ZTST_unimplemented="no UTF-8 locale or multibyte mode is not implemnted" + else + print Testing multibyte with locale $LANG >&8 + fi + +%test + + a=ténébreux + for i in {1..9}; do + print ${a[i]} + for j in {$i..9}; do + print $i $j ${a[i,j]} ${a[-j,-i]} + done + done +0:Basic indexing with multibyte characters +>t +>1 1 t x +>1 2 té ux +>1 3 tén eux +>1 4 téné reux +>1 5 ténéb breux +>1 6 ténébr ébreux +>1 7 ténébre nébreux +>1 8 ténébreu énébreux +>1 9 ténébreux ténébreux +>é +>2 2 é u +>2 3 én eu +>2 4 éné reu +>2 5 énéb breu +>2 6 énébr ébreu +>2 7 énébre nébreu +>2 8 énébreu énébreu +>2 9 énébreux ténébreu +>n +>3 3 n e +>3 4 né re +>3 5 néb bre +>3 6 nébr ébre +>3 7 nébre nébre +>3 8 nébreu énébre +>3 9 nébreux ténébre +>é +>4 4 é r +>4 5 éb br +>4 6 ébr ébr +>4 7 ébre nébr +>4 8 ébreu énébr +>4 9 ébreux ténébr +>b +>5 5 b b +>5 6 br éb +>5 7 bre néb +>5 8 breu énéb +>5 9 breux ténéb +>r +>6 6 r é +>6 7 re né +>6 8 reu éné +>6 9 reux téné +>e +>7 7 e n +>7 8 eu én +>7 9 eux tén +>u +>8 8 u é +>8 9 ux té +>x +>9 9 x t + + print ${a[(i)é]} ${a[(I)é]} ${a[${a[(i)é]},${a[(I)é]}]} +0:Reverse indexing with multibyte characters +>2 4 éné