yohgaki         Sun Nov 24 20:38:30 2002 EDT

  Modified files:              
    /php4/ext/pgsql     pgsql.c 
  Log:
  Cleanup state=4 and avoid using sscanf()
  
  
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.247 php4/ext/pgsql/pgsql.c:1.248
--- php4/ext/pgsql/pgsql.c:1.247        Sun Nov 24 11:23:37 2002
+++ php4/ext/pgsql/pgsql.c      Sun Nov 24 20:38:29 2002
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.247 2002/11/24 16:23:37 sas Exp $ */
+/* $Id: pgsql.c,v 1.248 2002/11/25 01:38:29 yohgaki Exp $ */
 
 #include <stdlib.h>
 
@@ -2708,15 +2708,13 @@
                        case 3:
                                if (isdigit(*sp))               /* state=4 */
                                {
-                                       unsigned int  v,i;
-                                       unsigned char buf[4]; /* 000 + '\0' */
-
+                                       unsigned char *start, *end, buf[4]; /* 000 + 
+'\0' */
+                                       
                                        bp -= 3;
-                                       for (i = 0; i < 3; i++)
-                                               buf[i] = *((sp-2)+i);
-                                       buf[i] = '\0';
-                                       sscanf(buf, "%03o", &v);
-                                       *bp = v;
+                                       memcpy(buf, sp-2, 3);
+                                       buf[3] = '\0';
+                                       start = buf;
+                                       *bp = (unsigned char)strtoul(start, &end, 8);
                                        buflen -= 3;
                                        state = 0;
                                }



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to