ID: 25745 Updated by: [EMAIL PROTECTED] Reported By: vesely at tana dot it -Status: Open +Status: Closed Bug Type: *Languages/Translation -Operating System: +Operating System: Solaris 8 (SPARC) PHP Version: 4.3.2 Assigned To: moriyoshi New Comment:
This bug has been fixed in CVS. In case this was a PHP problem, snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. In case this was a documentation problem, the fix will show up soon at http://www.php.net/manual/. In case this was a PHP.net website problem, the change will show up on the PHP.net site and on the mirror sites in short time. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2003-10-03 11:59:28] vesely at tana dot it I got 817 compiling with gcc 3.2 on sun sparc solaris8, depending on the __ctype table, results may vary. ------------------------------------------------------------------------ [2003-10-03 11:46:02] [EMAIL PROTECTED] Hmm, please put the correct OS name you confirmed the bug with. ------------------------------------------------------------------------ [2003-10-03 11:43:40] [EMAIL PROTECTED] Yet another casting problem :) ------------------------------------------------------------------------ [2003-10-03 11:41:03] vesely at tana dot it Description: ------------ The upper half of the codes are badly reported, e.g ctype_alpha("è") returns true even under C locale. As a workaround one may call ctype_alpha(ord("è")), which works correctly. Alternatively, the following patch fixes that: --- php-4.3.2/ext/ctype/ctype.c% 2003-10-03 13:13:46.870457000 +0200 +++ php-4.3.2/ext/ctype/ctype.c 2003-10-03 13:13:46.880455000 +0200 @@ -100,7 +100,7 @@ RETURN_BOOL(iswhat(Z_LVAL_P(c))); \ case IS_STRING: \ { \ - char *p; \ + unsigned char *p; \ int n, len; \ p=Z_STRVAL_P(c); \ len = Z_STRLEN_P(c); \ Ciao Ale --- below I list character type functions for easing bug searches ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_graph ctype_lower ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit Reproduce code: --------------- <?php $ctype_funcs = array( "alnum", "alpha", "cntrl", "digit", "graph", "lower", "print", "punct", "space", "upper", "xdigit"); $failed = 0; reset($ctype_funcs); while ($name = current($ctype_funcs)) { $test = "\$failed += ( (ctype_$name(%d) ? 1 : 0) != (ctype_$name(chr(%d)) ? 1 : 0) ) ? 1 : 0;"; for ($i = 0; $i < 256; ++$i) eval(sprintf($test, $i, $i)); next($ctype_funcs); } print "$failed"; ?> Expected result: ---------------- 0 Actual result: -------------- 817 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25745&edit=1