What prompted this? I'm not keen on changing the parser unless there is some benefit. Speed, portability, fixing a reported issue, etc. The one risk I see here is that isxdigit() is a LOCALE-aware function, so first, it is likely slower than what it replaces here, and second, a messed up LOCALE could potentially cause it to misbehave.
-Rasmus Martin Majlis wrote: > Just small refactoring. Replacing self-made function with functions > from standard headers. > > Index: JSON_parser.c > =================================================================== > RCS file: /repository/php-src/ext/json/JSON_parser.c,v > retrieving revision 1.1.2.8 > diff -u -u -r1.1.2.8 JSON_parser.c > --- JSON_parser.c 24 May 2007 22:37:59 -0000 1.1.2.8 > +++ JSON_parser.c 24 May 2007 23:41:11 -0000 > @@ -29,6 +29,8 @@ > > #include "JSON_parser.h" > #include <stdio.h> > +#include <math.h> > +#include <ctype.h> > > #define true 1 > #define false 0 > @@ -259,18 +261,10 @@ > > static int dehexchar(char c) > { > - if (c >= '0' && c <= '9') > - { > - return c - '0'; > - } > - else if (c >= 'A' && c <= 'F') > - { > - return c - ('A' - 10); > - } > - else if (c >= 'a' && c <= 'f') > - { > - return c - ('a' - 10); > - } > + if (isxdigit(c)) > + { > + return strtol(&c, NULL, 16); > + } > else > { > return -1; > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php