Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Sep 2009 10:06:37 +0000 (UTC)
From:      Dag-Erling Smorgrav <des@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r196776 - head/lib/libc/locale
Message-ID:  <200909031006.n83A6bMZ022789@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: des
Date: Thu Sep  3 10:06:37 2009
New Revision: 196776
URL: http://svn.freebsd.org/changeset/base/196776

Log:
  Document the need for a cast when passing a char to a ctype function.
  
  MFC after:	2 weeks

Modified:
  head/lib/libc/locale/ctype.3
  head/lib/libc/locale/digittoint.3
  head/lib/libc/locale/isalnum.3
  head/lib/libc/locale/isalpha.3
  head/lib/libc/locale/isascii.3
  head/lib/libc/locale/isblank.3
  head/lib/libc/locale/iscntrl.3
  head/lib/libc/locale/isdigit.3
  head/lib/libc/locale/isgraph.3
  head/lib/libc/locale/isideogram.3
  head/lib/libc/locale/islower.3
  head/lib/libc/locale/isphonogram.3
  head/lib/libc/locale/isprint.3
  head/lib/libc/locale/ispunct.3
  head/lib/libc/locale/isrune.3
  head/lib/libc/locale/isspace.3
  head/lib/libc/locale/isspecial.3
  head/lib/libc/locale/isupper.3
  head/lib/libc/locale/isxdigit.3
  head/lib/libc/locale/toascii.3
  head/lib/libc/locale/tolower.3
  head/lib/libc/locale/toupper.3

Modified: head/lib/libc/locale/ctype.3
==============================================================================
--- head/lib/libc/locale/ctype.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/ctype.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -28,7 +28,7 @@
 .\"     @(#)ctype.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd March 30, 2004
+.Dd September 3, 2009
 .Dt CTYPE 3
 .Os
 .Sh NAME
@@ -111,6 +111,13 @@ They are available as macros, defined in
 .In ctype.h ,
 or as true functions in the C library.
 See the specific manual pages for more information.
+.Pp
+.Em NOTE :
+if the value passed to one of these functions is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh SEE ALSO
 .Xr digittoint 3 ,
 .Xr isalnum 3 ,

Modified: head/lib/libc/locale/digittoint.3
==============================================================================
--- head/lib/libc/locale/digittoint.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/digittoint.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -28,7 +28,7 @@
 .\"	@(#)digittoint.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd April 6, 2001
+.Dd September 3, 2009
 .Dt DIGITTOINT 3
 .Os
 .Sh NAME
@@ -46,6 +46,15 @@ The
 function converts a numeric character to its corresponding integer value.
 The character can be any decimal digit or hexadecimal digit.
 With hexadecimal characters, the case of the values does not matter.
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn digittoint
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn digittoint

Modified: head/lib/libc/locale/isalnum.3
==============================================================================
--- head/lib/libc/locale/isalnum.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isalnum.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isalnum.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISALNUM 3
 .Os
 .Sh NAME
@@ -75,6 +75,15 @@ In the ASCII character set, this include
 .It "\&164\ ``t'' \t165\ ``u'' \t166\ ``v'' \t167\ ``w'' \t170\ ``x''"
 .It "\&171\ ``y'' \t172\ ``z''"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isalnum
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isalnum

Modified: head/lib/libc/locale/isalpha.3
==============================================================================
--- head/lib/libc/locale/isalpha.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isalpha.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isalpha.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISALPHA 3
 .Os
 .Sh NAME
@@ -73,6 +73,15 @@ In the ASCII character set, this include
 .It "\&164\ ``t'' \t165\ ``u'' \t166\ ``v'' \t167\ ``w'' \t170\ ``x''"
 .It "\&171\ ``y'' \t172\ ``z''"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isalpha
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isalpha

Modified: head/lib/libc/locale/isascii.3
==============================================================================
--- head/lib/libc/locale/isascii.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isascii.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -28,7 +28,7 @@
 .\"     @(#)isascii.3	8.2 (Berkeley) 12/11/93
 .\" $FreeBSD$
 .\"
-.Dd October 6, 2002
+.Dd September 3, 2009
 .Dt ISASCII 3
 .Os
 .Sh NAME
@@ -47,6 +47,15 @@ function tests for an
 .Tn ASCII
 character, which is any character
 between 0 and octal 0177 inclusive.
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isascii
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswascii 3 ,

Modified: head/lib/libc/locale/isblank.3
==============================================================================
--- head/lib/libc/locale/isblank.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isblank.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -28,7 +28,7 @@
 .\"     @(#)isblank.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISBLANK 3
 .Os
 .Sh NAME
@@ -57,6 +57,15 @@ The value of the argument must be repres
 .Vt "unsigned char"
 or the value of
 .Dv EOF .
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isblank
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isblank

Modified: head/lib/libc/locale/iscntrl.3
==============================================================================
--- head/lib/libc/locale/iscntrl.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/iscntrl.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)iscntrl.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISCNTRL 3
 .Os
 .Sh NAME
@@ -65,6 +65,15 @@ In the ASCII character set, this include
 .It "\&031\ EM \t032\ SUB \t033\ ESC \t034\ FS \t035\ GS"
 .It "\&036\ RS \t037\ US \t177\ DEL"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn iscntrl
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn iscntrl

Modified: head/lib/libc/locale/isdigit.3
==============================================================================
--- head/lib/libc/locale/isdigit.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isdigit.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isdigit.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd May 4, 2007
+.Dd September 3, 2009
 .Dt ISDIGIT 3
 .Os
 .Sh NAME
@@ -68,6 +68,15 @@ The value of the argument must be repres
 .Vt "unsigned char"
 or the value of
 .Dv EOF .
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isdigit
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isdigit

Modified: head/lib/libc/locale/isgraph.3
==============================================================================
--- head/lib/libc/locale/isgraph.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isgraph.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isgraph.3	8.2 (Berkeley) 12/11/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISGRAPH 3
 .Os
 .Sh NAME
@@ -80,6 +80,15 @@ In the ASCII character set, this include
 .It "\&166\ ``v'' \t167\ ``w'' \t170\ ``x'' \t171\ ``y'' \t172\ ``z''"
 .It "\&173\ ``{'' \t174\ ``|'' \t175\ ``}'' \t176\ ``~''"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isgraph
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isgraph

Modified: head/lib/libc/locale/isideogram.3
==============================================================================
--- head/lib/libc/locale/isideogram.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isideogram.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 30, 2004
+.Dd September 3, 2009
 .Dt ISIDEOGRAM 3
 .Os
 .Sh NAME
@@ -41,6 +41,15 @@
 The
 .Fn isideogram
 function tests for an ideographic character.
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isideogram
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isideogram

Modified: head/lib/libc/locale/islower.3
==============================================================================
--- head/lib/libc/locale/islower.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/islower.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)islower.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISLOWER 3
 .Os
 .Sh NAME
@@ -64,6 +64,15 @@ In the ASCII character set, this include
 .It "\&165\ ``u'' \t166\ ``v'' \t167\ ``w'' \t170\ ``x'' \t171\ ``y''"
 .It "\&172\ ``z''"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn islower
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn islower

Modified: head/lib/libc/locale/isphonogram.3
==============================================================================
--- head/lib/libc/locale/isphonogram.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isphonogram.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 30, 2004
+.Dd September 3, 2009
 .Dt ISPHONOGRAM 3
 .Os
 .Sh NAME
@@ -41,6 +41,15 @@
 The
 .Fn isphonogram
 function tests for a phonographic character.
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isphonogram
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isphonogram

Modified: head/lib/libc/locale/isprint.3
==============================================================================
--- head/lib/libc/locale/isprint.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isprint.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isprint.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISPRINT 3
 .Os
 .Sh NAME
@@ -78,6 +78,15 @@ In the ASCII character set, this include
 .It "\&165\ ``u'' \t166\ ``v'' \t167\ ``w'' \t170\ ``x'' \t171\ ``y''"
 .It "\&172\ ``z'' \t173\ ``{'' \t174\ ``|'' \t175\ ``}'' \t176\ ``~''"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isprint
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isprint

Modified: head/lib/libc/locale/ispunct.3
==============================================================================
--- head/lib/libc/locale/ispunct.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/ispunct.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"	@(#)ispunct.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISPUNCT 3
 .Os
 .Sh NAME
@@ -70,6 +70,15 @@ In the ASCII character set, this include
 .It "\&136\ ``^'' \t137\ ``_'' \t140\ ```'' \t173\ ``{'' \t174\ ``|''"
 .It "\&175\ ``}'' \t176\ ``~''"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn ispunct
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn ispunct

Modified: head/lib/libc/locale/isrune.3
==============================================================================
--- head/lib/libc/locale/isrune.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isrune.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 30, 2004
+.Dd September 3, 2009
 .Dt ISRUNE 3
 .Os
 .Sh NAME
@@ -46,6 +46,15 @@ In the
 .Tn ASCII
 character set, this is equivalent to
 .Fn isascii .
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isrune
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isrune

Modified: head/lib/libc/locale/isspace.3
==============================================================================
--- head/lib/libc/locale/isspace.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isspace.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isspace.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISSPACE 3
 .Os
 .Sh NAME
@@ -61,6 +61,15 @@ The value of the argument must be repres
 .Vt "unsigned char"
 or the value of
 .Dv EOF .
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isspace
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isspace

Modified: head/lib/libc/locale/isspecial.3
==============================================================================
--- head/lib/libc/locale/isspecial.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isspecial.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 30, 2004
+.Dd September 3, 2009
 .Dt ISSPECIAL 3
 .Os
 .Sh NAME
@@ -41,6 +41,15 @@
 The
 .Fn isspecial
 function tests for a special character.
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isspecial
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isspecial

Modified: head/lib/libc/locale/isupper.3
==============================================================================
--- head/lib/libc/locale/isupper.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isupper.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isupper.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISUPPER 3
 .Os
 .Sh NAME
@@ -64,6 +64,15 @@ In the ASCII character set, this include
 .It "\&125\ ``U'' \t126\ ``V'' \t127\ ``W'' \t130\ ``X'' \t131\ ``Y''"
 .It "\&132\ ``Z''"
 .El
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isupper
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isupper

Modified: head/lib/libc/locale/isxdigit.3
==============================================================================
--- head/lib/libc/locale/isxdigit.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/isxdigit.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"     @(#)isxdigit.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt ISXDIGIT 3
 .Os
 .Sh NAME
@@ -71,6 +71,15 @@ The value of the argument must be repres
 .Vt "unsigned char"
 or the value of
 .Dv EOF .
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn isxdigit
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn isxdigit

Modified: head/lib/libc/locale/toascii.3
==============================================================================
--- head/lib/libc/locale/toascii.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/toascii.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -28,7 +28,7 @@
 .\"	@(#)toascii.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd June 4, 1993
+.Dd September 3, 2009
 .Dt TOASCII 3
 .Os
 .Sh NAME
@@ -45,6 +45,15 @@ The
 .Fn toascii
 function strips all but the low 7 bits from a letter,
 including parity or other marker bits.
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn toascii
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 The
 .Fn toascii

Modified: head/lib/libc/locale/tolower.3
==============================================================================
--- head/lib/libc/locale/tolower.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/tolower.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"	@(#)tolower.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt TOLOWER 3
 .Os
 .Sh NAME
@@ -53,6 +53,15 @@ The argument must be representable as an
 .Vt "unsigned char"
 or the value of
 .Dv EOF .
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn tolower
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 If the argument is an upper-case letter, the
 .Fn tolower

Modified: head/lib/libc/locale/toupper.3
==============================================================================
--- head/lib/libc/locale/toupper.3	Thu Sep  3 09:33:57 2009	(r196775)
+++ head/lib/libc/locale/toupper.3	Thu Sep  3 10:06:37 2009	(r196776)
@@ -32,7 +32,7 @@
 .\"	@(#)toupper.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2005
+.Dd September 3, 2009
 .Dt TOUPPER 3
 .Os
 .Sh NAME
@@ -53,6 +53,15 @@ The argument must be representable as an
 .Vt "unsigned char"
 or the value of
 .Dv EOF .
+.Pp
+.Em NOTE :
+if the value passed to the
+.Fn toupper
+function is a
+.Vt signed char ,
+as is usually the case, it must be cast to an
+.Vt unsigned char
+to avoid sign-extension errors.
 .Sh RETURN VALUES
 If the argument is a lower-case letter, the
 .Fn toupper



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909031006.n83A6bMZ022789>