summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2009-09-03 10:06:37 +0000
committerdes <des@FreeBSD.org>2009-09-03 10:06:37 +0000
commita0077e3c9571a6ad4aedab9d8c6ed99c81354cbd (patch)
tree5d96d2a6f7e3dcf8963d6be4aade623c0b0191a2
parent8dfe0837b70aac483be1d7a7830fd76e22c9d4bb (diff)
downloadFreeBSD-src-a0077e3c9571a6ad4aedab9d8c6ed99c81354cbd.zip
FreeBSD-src-a0077e3c9571a6ad4aedab9d8c6ed99c81354cbd.tar.gz
Document the need for a cast when passing a char to a ctype function.
MFC after: 2 weeks
-rw-r--r--lib/libc/locale/ctype.39
-rw-r--r--lib/libc/locale/digittoint.311
-rw-r--r--lib/libc/locale/isalnum.311
-rw-r--r--lib/libc/locale/isalpha.311
-rw-r--r--lib/libc/locale/isascii.311
-rw-r--r--lib/libc/locale/isblank.311
-rw-r--r--lib/libc/locale/iscntrl.311
-rw-r--r--lib/libc/locale/isdigit.311
-rw-r--r--lib/libc/locale/isgraph.311
-rw-r--r--lib/libc/locale/isideogram.311
-rw-r--r--lib/libc/locale/islower.311
-rw-r--r--lib/libc/locale/isphonogram.311
-rw-r--r--lib/libc/locale/isprint.311
-rw-r--r--lib/libc/locale/ispunct.311
-rw-r--r--lib/libc/locale/isrune.311
-rw-r--r--lib/libc/locale/isspace.311
-rw-r--r--lib/libc/locale/isspecial.311
-rw-r--r--lib/libc/locale/isupper.311
-rw-r--r--lib/libc/locale/isxdigit.311
-rw-r--r--lib/libc/locale/toascii.311
-rw-r--r--lib/libc/locale/tolower.311
-rw-r--r--lib/libc/locale/toupper.311
22 files changed, 218 insertions, 22 deletions
diff --git a/lib/libc/locale/ctype.3 b/lib/libc/locale/ctype.3
index fdc1358..9d4ee5e 100644
--- a/lib/libc/locale/ctype.3
+++ b/lib/libc/locale/ctype.3
@@ -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 the include file
.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 ,
diff --git a/lib/libc/locale/digittoint.3 b/lib/libc/locale/digittoint.3
index 372e00f..c7e2ac1 100644
--- a/lib/libc/locale/digittoint.3
+++ b/lib/libc/locale/digittoint.3
@@ -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
diff --git a/lib/libc/locale/isalnum.3 b/lib/libc/locale/isalnum.3
index 624a6e2..335ca9c 100644
--- a/lib/libc/locale/isalnum.3
+++ b/lib/libc/locale/isalnum.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/isalpha.3 b/lib/libc/locale/isalpha.3
index 0bd3cda..5a2680e 100644
--- a/lib/libc/locale/isalpha.3
+++ b/lib/libc/locale/isalpha.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/isascii.3 b/lib/libc/locale/isascii.3
index f7e1325..294c5be 100644
--- a/lib/libc/locale/isascii.3
+++ b/lib/libc/locale/isascii.3
@@ -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 ,
diff --git a/lib/libc/locale/isblank.3 b/lib/libc/locale/isblank.3
index 4cc6bbb..e983b15 100644
--- a/lib/libc/locale/isblank.3
+++ b/lib/libc/locale/isblank.3
@@ -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 representable as an
.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
diff --git a/lib/libc/locale/iscntrl.3 b/lib/libc/locale/iscntrl.3
index a67e6a4..c9e220b 100644
--- a/lib/libc/locale/iscntrl.3
+++ b/lib/libc/locale/iscntrl.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/isdigit.3 b/lib/libc/locale/isdigit.3
index 53b1986..019629f 100644
--- a/lib/libc/locale/isdigit.3
+++ b/lib/libc/locale/isdigit.3
@@ -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 representable as an
.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
diff --git a/lib/libc/locale/isgraph.3 b/lib/libc/locale/isgraph.3
index 4ba78e3..00c0dc8 100644
--- a/lib/libc/locale/isgraph.3
+++ b/lib/libc/locale/isgraph.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/isideogram.3 b/lib/libc/locale/isideogram.3
index cbaa625..7f1f756 100644
--- a/lib/libc/locale/isideogram.3
+++ b/lib/libc/locale/isideogram.3
@@ -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
diff --git a/lib/libc/locale/islower.3 b/lib/libc/locale/islower.3
index d72e7cf..5884815 100644
--- a/lib/libc/locale/islower.3
+++ b/lib/libc/locale/islower.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/isphonogram.3 b/lib/libc/locale/isphonogram.3
index b0d82c4..22a9ce7 100644
--- a/lib/libc/locale/isphonogram.3
+++ b/lib/libc/locale/isphonogram.3
@@ -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
diff --git a/lib/libc/locale/isprint.3 b/lib/libc/locale/isprint.3
index f340850..b90f79a 100644
--- a/lib/libc/locale/isprint.3
+++ b/lib/libc/locale/isprint.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/ispunct.3 b/lib/libc/locale/ispunct.3
index aa02461..fe1c0e3 100644
--- a/lib/libc/locale/ispunct.3
+++ b/lib/libc/locale/ispunct.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/isrune.3 b/lib/libc/locale/isrune.3
index 424c367..7f26a83 100644
--- a/lib/libc/locale/isrune.3
+++ b/lib/libc/locale/isrune.3
@@ -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
diff --git a/lib/libc/locale/isspace.3 b/lib/libc/locale/isspace.3
index f1e08d6..f11ad8e 100644
--- a/lib/libc/locale/isspace.3
+++ b/lib/libc/locale/isspace.3
@@ -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 representable as an
.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
diff --git a/lib/libc/locale/isspecial.3 b/lib/libc/locale/isspecial.3
index de361d2..990cad3 100644
--- a/lib/libc/locale/isspecial.3
+++ b/lib/libc/locale/isspecial.3
@@ -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
diff --git a/lib/libc/locale/isupper.3 b/lib/libc/locale/isupper.3
index 6aeb5ac..9d25ad6 100644
--- a/lib/libc/locale/isupper.3
+++ b/lib/libc/locale/isupper.3
@@ -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 includes the following characters
.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
diff --git a/lib/libc/locale/isxdigit.3 b/lib/libc/locale/isxdigit.3
index 1fb54bf..5925b73 100644
--- a/lib/libc/locale/isxdigit.3
+++ b/lib/libc/locale/isxdigit.3
@@ -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 representable as an
.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
diff --git a/lib/libc/locale/toascii.3 b/lib/libc/locale/toascii.3
index 97243cb..584aa68 100644
--- a/lib/libc/locale/toascii.3
+++ b/lib/libc/locale/toascii.3
@@ -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
diff --git a/lib/libc/locale/tolower.3 b/lib/libc/locale/tolower.3
index fce37fd..f70651a 100644
--- a/lib/libc/locale/tolower.3
+++ b/lib/libc/locale/tolower.3
@@ -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
diff --git a/lib/libc/locale/toupper.3 b/lib/libc/locale/toupper.3
index 3a3c7f8..e6ed8cc 100644
--- a/lib/libc/locale/toupper.3
+++ b/lib/libc/locale/toupper.3
@@ -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
OpenPOWER on IntegriCloud