From owner-ports-jp@jp.FreeBSD.org Thu May  6 18:59:41 2004
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id i469xfP39374;
	Thu, 6 May 2004 18:59:41 +0900 (JST)
	(envelope-from owner-ports-jp@jp.FreeBSD.org)
Received: from takehiko.zive.net (p2936ce.tokynt01.ap.so-net.ne.jp [218.41.54.206])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id i469xf939369
	for <ports-jp@jp.FreeBSD.org>; Thu, 6 May 2004 18:59:41 +0900 (JST)
	(envelope-from st@be.to)
Received: by takehiko.zive.net (Postfix, from userid 4013)
	id 5A4C51B50F5; Thu,  6 May 2004 19:01:51 +0900 (JST)
From: SHIOZAKI Takehiko <st@be.to>
To: ports-jp@jp.FreeBSD.org
Message-ID: <20040506100149.GA50590%st@be.to>
References: <20040427081535.GA2102%st@be.to> <040428193108.M0153871@arts.kikansha.jp> <20040430015955.GA52106%st@be.to>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Disposition: inline
In-Reply-To: <20040430015955.GA52106%st@be.to>
User-Agent: Mutt/1.5.6i
Reply-To: ports-jp@jp.FreeBSD.org
Precedence: list
Date: Thu, 6 May 2004 19:01:50 +0900
X-Sequence: ports-jp 14686
Subject: [ports-jp 14686] Re: mblen() used in vim
Sender: owner-ports-jp@jp.FreeBSD.org
X-Originator: st@be.to
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+040430

$B:G?7$N(Bvim port$B$,$&$^$/%3%s%Q%$%k$G$-$^$;$s$M!#(B502$B$b(BBADPATCHES$B$G(B
$B$h$$$N$G$O!"$H$$$&5$$,$7$^$9!#(B
$B$=$l$O$5$F$*$-!"$b$&>/$7G4Ce$7$FD4$Y$F$_$^$7$?!#(B

[On Apr 30, SHIOZAKI Takehiko <st@be.to> wrote:]

>>vim $B$r(B ports $B$+$i$G$J$/!"(Bcvs $B$N%=!<%9$+$i!"$D$^$j$9$Y$F$N%Q%C%A$,(B
>>$B$"$?$C$?>uBV$G%$%s%9%H!<%k$7$F$$$k;d$N4D6-(B
>>
>>( uname -> 5.2.1-RELEASE-p4 FreeBSD 5.2.1-RELEASE-p4 #2
>>  kinput2 + FreeWnn )
>>
>>$B$G$O!"F1MM$NLdBj$O@8$8$F$$$^$;$s!#(B

$B$3$l$O!"(Blibc$B$N(Blocale$B<~$j$N%3!<%I$,$^$@8E$$$+$i$G$O$J$$$+$H;W$$$^$9!#(B
http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/locale/mblen.c
$B$N<BAu$G$"$k(B
http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/locale/mbtowc.c
$B$N<BAu$G$"$k(B
http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/locale/mbrtowc.c
$B$N<BBN$G$"$k(B
http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/locale/euc.c
$B$N(BRevision 1.14$B$K$*$1$k!"(B

|Allow partial multibyte characters to accumulate in conversion state
|objects passed to mbrtowc(), mbsrtowcs(), and mbrlen(), as required
|by C99.

$B$H$$$&$N$,Hs>o$K=-$$5$$,$7$^$9!#(B
# $B$G$b!"!V(Bas required by C99$B!W$H8@$o$l$k$H!"$+$J$jIT0B!#(B

$B<B:]!"(Bmblen()$B$N@N$N<BAu$G$"$k(Bsgetrune()$B$G$N5sF0$rD4$Y$F$_$k$H!"(B
$B;d$N4|BT$9$k$h$&$KF0$$$F$$$k$h$&$G$9!#(B
$B"-$3$N$h$&$J%W%m%0%i%`$N7k2L$r8+$k$H!"(B
========================================================================
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <rune.h>

int main()
{
	setlocale(LC_ALL, "");
	int i;
	char str[2];
	char const *e;
	for (i = 0; i < 256; ++i)
	{
		str[0] = i;
		str[1] = 0;
		printf("%02x:%d\n", i, (sgetrune(str, (size_t)1, &e) == _INVALID_RUNE));
		printf("%02x:%d\n", i, mblen(str, (size_t)1));
	}
}
========================================================================

env LC_CTYPE=ja_JP.UTF-8 ./a.out
$B$G$O!"(B
	:
80:1
80:-1
81:1
81:-1
82:1
82:-1
	:
$B$H$$$&$h$&$K!"(B
	sgetrune()$B$NLa$jCM$O(B_INVALID_RUNE
	mblen()$B$NLa$jCM$O(B-1
$B$H0l4S@-$,$H$l$F$^$9$,!"(B

env LC_CTYPE=ja_JP.eucJP ./a.out
$B$G$O!"(B
	:
80:1
80:-1
81:1
81:1
82:1
82:-1
	:
$B$H$$$&$h$&$K!"(B
	sgetrune()$B$NLa$jCM$O(B_INVALID_RUNE
	mblen()$B$NLa$jCM$O(B-1$B$H(B1$B$H$,8r8_$K8=$l$k(B
$B$H$*$+$7$J>uBV$K$J$C$F$$$^$9!#(B

$B$H$$$&$o$1$G!"Cf@n$5$s$b%Y!<%9%7%9%F%`$r>e$2$k$HF1$8$h$&$Jf+$K$O(B
$B$^$k$N$G$O$J$$$+$J!"$H$$$&5$$,$7$^$9$,$$$+$,$G$7$g$&$+!#(B
$B$?$@!"$=$l$O$=$l$H$7$F!"$$$:$l$K$7$F$b(Bvim$B$,$A$c$s$H;H$($J$$$H$$(B
$B$&LdBj(B($B;d$@$1(B?)$B$O$I$&2r7h$9$Y$-$+!"$H$$$&$N$O;D$j$^$9!#(B
[ports-jp 14670]$B$K=q$$$?$h$&$K!"(Bvim$B$NEv3:2U=j$r(Bports$B$G%Q%C%A$rEv(B
$B$F$k$N$O<YF;$G$7$g$&$+!#(B

$BK\2H$NJ}$K;}$C$F$f$/$K$7$F$b!"$I$3$+$i$D$D$1$P$h$$$N$+$,$h$/J,$+(B
$B$j$^$;$s!#$=$b$=$b(Blocale$B4X78$NM}2r$,9g$C$F$$$k$N$+$I$&$+$b$O$J$O(B
$B$@5?Ld$G$9$7!#(B
$B$=$N$"$?$j$b4^$a$F<1<T$NJ}!9$N$40U8+$r$$$?$@$1$l$P9,$$$G$9!#(B

-- 
$B$?$@$7!";d$O<*I!0v9"$,<e$$$N$G!"2q5D$O6X1l$K$7$F$/$@$5$$!#(B
--
$B1v:j(B $B5#I'(B(SHIOZAKI Takehiko)
