This patch eliminates extraneous < 0 tests (because they are unsigned).
David
Index: encodings/singlebyte.c
===================================================================
RCS file: /cvs/public/parrot/encodings/singlebyte.c,v
retrieving revision 1.8
diff -c -r1.8 singlebyte.c
*** encodings/singlebyte.c 1 Jan 2002 18:24:24 -0000 1.8
--- encodings/singlebyte.c 1 Jan 2002 18:37:23 -0000
***************
*** 30,36 ****
singlebyte_encode (const void *ptr, UINTVAL c) {
byte_t *bptr = (byte_t*)ptr;
! if (c < 0 || c > 255) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for single byte
encoding\n");
}
--- 30,36 ----
singlebyte_encode (const void *ptr, UINTVAL c) {
byte_t *bptr = (byte_t*)ptr;
! if (c > 255) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for single byte
encoding\n");
}
Index: encodings/utf16.c
===================================================================
RCS file: /cvs/public/parrot/encodings/utf16.c,v
retrieving revision 1.6
diff -c -r1.6 utf16.c
*** encodings/utf16.c 1 Jan 2002 17:09:52 -0000 1.6
--- encodings/utf16.c 1 Jan 2002 18:37:23 -0000
***************
*** 60,66 ****
utf16_encode (const void *ptr, UINTVAL c) {
utf16_t *u16ptr = (utf16_t*)ptr;
! if (c < 0 || c > 0x10FFFF || UNICODE_IS_SURROGATE(c)) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for UTF-16 encoding\n");
}
--- 60,66 ----
utf16_encode (const void *ptr, UINTVAL c) {
utf16_t *u16ptr = (utf16_t*)ptr;
! if (c > 0x10FFFF || UNICODE_IS_SURROGATE(c)) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for UTF-16 encoding\n");
}
Index: encodings/utf32.c
===================================================================
RCS file: /cvs/public/parrot/encodings/utf32.c,v
retrieving revision 1.3
diff -c -r1.3 utf32.c
*** encodings/utf32.c 1 Jan 2002 17:09:52 -0000 1.3
--- encodings/utf32.c 1 Jan 2002 18:37:23 -0000
***************
*** 33,39 ****
utf32_encode (const void *ptr, UINTVAL c) {
utf32_t *u32ptr = (utf32_t*)ptr;
! if (c < 0 || c > 0x10FFFF || UNICODE_IS_SURROGATE(c)) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for UTF-32 encoding\n");
}
--- 33,39 ----
utf32_encode (const void *ptr, UINTVAL c) {
utf32_t *u32ptr = (utf32_t*)ptr;
! if (c > 0x10FFFF || UNICODE_IS_SURROGATE(c)) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for UTF-32 encoding\n");
}
Index: encodings/utf8.c
===================================================================
RCS file: /cvs/public/parrot/encodings/utf8.c,v
retrieving revision 1.7
diff -c -r1.7 utf8.c
*** encodings/utf8.c 1 Jan 2002 17:09:52 -0000 1.7
--- encodings/utf8.c 1 Jan 2002 18:37:23 -0000
***************
*** 82,88 ****
UINTVAL len = UNISKIP(c);
utf8_t *u8end = u8ptr + len - 1;
! if (c < 0 || c > 0x10FFFF || UNICODE_IS_SURROGATE(c)) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for UTF-8 encoding\n");
}
--- 82,88 ----
UINTVAL len = UNISKIP(c);
utf8_t *u8end = u8ptr + len - 1;
! if (c > 0x10FFFF || UNICODE_IS_SURROGATE(c)) {
INTERNAL_EXCEPTION(INVALID_CHARACTER,
"Invalid character for UTF-8 encoding\n");
}