For Programmers: Free Programming Magazines  


Home > Archive > PHP Zend Engine > November 2004 > cvs: Zend(PHP_4_3) / zend_execute_API.c zend_globals.h zend_ini.c zend_language_scann









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author cvs: Zend(PHP_4_3) / zend_execute_API.c zend_globals.h zend_ini.c zend_language_scann
Derick Rethans

2004-11-03, 8:55 pm

derick Wed Nov 3 18:15:06 2004 EDT

Added files: (Branch: PHP_4_3)
/Zend zend_strtod.c zend_strtod.h

Modified files:
/Zend zend_execute_API.c zend_globals.h zend_ini.c
zend_language_scanner.l zend_operators.c zend_operators.h
Log:
- MFH: Fixed bug #30630: Added a BSD based strtod function that is
locale-independent.


http://cvs.php.net/diff.php/Zend/ze...=1.155.2.8&ty=u
Index: Zend/zend_execute_API.c
diff -u Zend/zend_execute_API.c:1.155.2.7 Zend/zend_execute_API.c:1.155.2.8
--- Zend/zend_execute_API.c:1.155.2.7 Mon Jan 19 04:58:10 2004
+++ Zend/zend_execute_API.c Wed Nov 3 18:15:05 2004
@@ -166,8 +166,6 @@
#ifdef ZEND_WIN32
EG(timed_out) = 0;
#endif
-
- EG(float_separator)[0] = '.';
}


http://cvs.php.net/diff.php/Zend/ze...2=1.93.2.5&ty=u
Index: Zend/zend_globals.h
diff -u Zend/zend_globals.h:1.93.2.4 Zend/zend_globals.h:1.93.2.5
--- Zend/zend_globals.h:1.93.2.4 Fri May 30 21:37:43 2003
+++ Zend/zend_globals.h Wed Nov 3 18:15:05 2004
@@ -207,9 +207,6 @@

HashTable *ini_directives;

- /* locale stuff */
- char float_separator[1];
-
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
};

http://cvs.php.net/diff.php/Zend/ze...2=1.23.2.5&ty=u
Index: Zend/zend_ini.c
diff -u Zend/zend_ini.c:1.23.2.4 Zend/zend_ini.c:1.23.2.5
--- Zend/zend_ini.c:1.23.2.4 Fri Jul 30 11:05:38 2004
+++ Zend/zend_ini.c Wed Nov 3 18:15:05 2004
@@ -25,6 +25,7 @@
#include "zend_ini.h"
#include "zend_alloc.h"
#include "zend_operators.h"
+#include "zend_strtod.h"

static HashTable *registered_zend_ini_directives;

@@ -292,9 +293,9 @@

if (zend_hash_find(EG(ini_directives), name, name_length, (void **) &ini_entry)==SUCCESS) {
if (orig && ini_entry->modified) {
- return (double) (ini_entry->orig_value ? strtod(ini_entry->orig_value, NULL) : 0.0);
+ return (double) (ini_entry->orig_value ? zend_strtod(ini_entry->orig_value, NULL) : 0.0);
} else if (ini_entry->value) {
- return (double) strtod(ini_entry->value, NULL);
+ return (double) zend_strtod(ini_entry->value, NULL);
}
}

@@ -480,7 +481,7 @@

p = (double *) (base+(size_t) mh_arg1);

- *p = strtod(new_value, NULL);
+ *p = zend_strtod(new_value, NULL);
return SUCCESS;
}

http://cvs.php.net/diff.php/Zend/ze...=1.54.2.27&ty=u
Index: Zend/zend_language_scanner.l
diff -u Zend/zend_language_scanner.l:1.54.2.26 Zend/zend_language_scanner.l:1.54.2.27
--- Zend/zend_language_scanner.l:1.54.2.26 Tue Feb 3 09:31:19 2004
+++ Zend/zend_language_scanner.l Wed Nov 3 18:15:05 2004
@@ -54,6 +54,7 @@
#include "zend_constants.h"
#include "zend_variables.h"
#include "zend_operators.h"
+#include "zend_strtod.h"

#ifdef HAVE_STDARG_H
# include <stdarg.h>
@@ -1137,7 +1138,7 @@
errno = 0;
zendlval->value.lval = strtol(yytext, NULL, 0);
if (errno == ERANGE) { /* overflow */
- zendlval->value.dval = strtod(yytext, NULL);
+ zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
} else {
@@ -1174,7 +1175,7 @@
}

<ST_IN_SCRIPTING>{DNUM}|{EXPONENT_DNUM} {
- zendlval->value.dval = strtod(yytext, NULL);
+ zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
http://cvs.php.net/diff.php/Zend/ze...=1.129.2.8&ty=u
Index: Zend/zend_operators.c
diff -u Zend/zend_operators.c:1.129.2.7 Zend/zend_operators.c:1.129.2.8
--- Zend/zend_operators.c:1.129.2.7 Thu Sep 30 14:38:14 2004
+++ Zend/zend_operators.c Wed Nov 3 18:15:05 2004
@@ -31,6 +31,7 @@
#include "zend_list.h"
#include "zend_fast_cache.h"
#include "zend_API.h"
+#include "zend_strtod.h"

#if 0&&WITH_BCMATH
#include "ext/bcmath/number.h"
@@ -342,7 +343,7 @@
case IS_STRING:
strval = op->value.str.val;

- op->value.dval = strtod(strval, NULL);
+ op->value.dval = zend_strtod(strval, NULL);
STR_FREE(strval);
break;
case IS_ARRAY:
@@ -1706,9 +1707,9 @@
#endif
if ((ret1==IS_DOUBLE) || (ret2==IS_DOUBLE)) {
if (ret1!=IS_DOUBLE) {
- dval1 = strtod(s1->value.str.val, NULL);
+ dval1 = zend_strtod(s1->value.str.val, NULL);
} else if (ret2!=IS_DOUBLE) {
- dval2 = strtod(s2->value.str.val, NULL);
+ dval2 = zend_strtod(s2->value.str.val, NULL);
}
result->value.dval = dval1 - dval2;
result->value.lval = ZEND_NORMALIZE_BOOL(result->value.dval);
@@ -1772,11 +1773,4 @@
op->value.str.val = (char *) emalloc_rel(MAX_LENGTH_OF_DOUBLE + EG(precision) + 1);
sprintf(op->value.str.val, "%.*G", (int) EG(precision), dval);
op->value.str.len = strlen(op->value.str.val);
-
- if (EG(float_separator)[0] != '.') {
- char *p = op->value.str.val;
- if ((p = strchr(p, '.'))) {
- *p = EG(float_separator)[0];
- }
- }
}
http://cvs.php.net/diff.php/Zend/ze...2=1.55.2.4&ty=u
Index: Zend/zend_operators.h
diff -u Zend/zend_operators.h:1.55.2.3 Zend/zend_operators.h:1.55.2.4
--- Zend/zend_operators.h:1.55.2.3 Wed Sep 15 09:41:55 2004
+++ Zend/zend_operators.h Wed Nov 3 18:15:05 2004
@@ -17,6 +17,7 @@
+----------------------------------------------------------------------+
*/

+#include "zend_strtod.h"

#ifndef ZEND_OPERATORS_H
#define ZEND_OPERATORS_H
@@ -28,6 +29,7 @@
#include <ieeefp.h>
#endif

+#include "zend_strtod.h"

#if 0&&WITH_BCMATH
#include "ext/bcmath/libbcmath/src/bcmath.h"
@@ -93,7 +95,7 @@
}

errno=0;
- local_dval = strtod(str, &end_ptr_double);
+ local_dval = zend_strtod(str, &end_ptr_double);
if (errno!=ERANGE) {
if (end_ptr_double == str+length) { /* floating point string */
if (! zend_finite(local_dval)) {

http://cvs.php.net/co.php/Zend/zend_strtod.c?r=1.1&p=1
Index: Zend/zend_strtod.c
+++ Zend/zend_strtod.c

http://cvs.php.net/co.php/Zend/zend_strtod.h?r=1.1&p=1
Index: Zend/zend_strtod.h
+++ Zend/zend_strtod.h
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com