diff options
author | unknown <monty@mysql.com/narttu.mysql.fi> | 2006-12-15 01:01:52 +0200 |
---|---|---|
committer | unknown <monty@mysql.com/narttu.mysql.fi> | 2006-12-15 01:01:52 +0200 |
commit | 2bcbffa0c50f5a09152d1b7b4de7a65abc9283b6 (patch) | |
tree | b60f635d3126e8d0f1321f0187390d7cf8496558 /strings/strtod.c | |
parent | 39d873cf3ccad03bda9c751aebc6c59d4a126c91 (diff) | |
parent | f00257ddd0a2f392f9b80c9cd5c405017e3a9d63 (diff) | |
download | mariadb-git-2bcbffa0c50f5a09152d1b7b4de7a65abc9283b6.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0
client/mysql.cc:
Auto merged
client/mysql_upgrade.c:
Auto merged
client/mysqltest.c:
Auto merged
extra/yassl/include/yassl_imp.hpp:
Auto merged
extra/yassl/include/yassl_int.hpp:
Auto merged
extra/yassl/taocrypt/include/algebra.hpp:
Auto merged
extra/yassl/taocrypt/include/des.hpp:
Auto merged
extra/yassl/taocrypt/include/modes.hpp:
Auto merged
extra/yassl/taocrypt/src/aes.cpp:
Auto merged
extra/yassl/taocrypt/src/algebra.cpp:
Auto merged
extra/yassl/taocrypt/test/test.cpp:
Auto merged
include/my_sys.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
myisam/mi_open.c:
Auto merged
myisam/myisampack.c:
Auto merged
mysql-test/r/mysqltest.result:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
ndb/src/common/util/File.cpp:
Auto merged
ndb/src/common/util/socket_io.cpp:
Auto merged
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Auto merged
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Auto merged
ndb/src/mgmsrv/Services.cpp:
Auto merged
ndb/tools/ndb_config.cpp:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_subselect.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_load.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_string.h:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
strings/strtod.c:
Auto merged
tests/mysql_client_test.c:
Auto merged
extra/yassl/taocrypt/include/rsa.hpp:
manual merge
mysql-test/t/mysql.test:
manual merge
sql/sql_parse.cc:
manual merge
Diffstat (limited to 'strings/strtod.c')
-rw-r--r-- | strings/strtod.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/strings/strtod.c b/strings/strtod.c index 932a34f921d..15707a9b944 100644 --- a/strings/strtod.c +++ b/strings/strtod.c @@ -57,7 +57,7 @@ double my_strtod(const char *str, char **end_ptr, int *error) { double result= 0.0; uint negative= 0, ndigits, dec_digits= 0, neg_exp= 0; - int exp= 0, digits_after_dec_point= 0, tmp_exp; + int exponent= 0, digits_after_dec_point= 0, tmp_exp; const char *old_str, *end= *end_ptr, *start_of_number; char next_char; my_bool overflow=0; @@ -130,24 +130,25 @@ double my_strtod(const char *str, char **end_ptr, int *error) if ((next_char == 'e' || next_char == 'E') && dec_digits + ndigits != 0 && str < end-1) { - const char *old_str= str++; + const char *old_str2= str++; if ((neg_exp= (*str == '-')) || *str == '+') str++; if (str == end || !my_isdigit(&my_charset_latin1, *str)) - str= old_str; + str= old_str2; else { do { - if (exp < 9999) /* prot. against exp overfl. */ - exp= exp*10 + (*str - '0'); + if (exponent < 9999) /* prot. against exp overfl. */ + exponent= exponent*10 + (*str - '0'); str++; } while (str < end && my_isdigit(&my_charset_latin1, *str)); } } - tmp_exp= neg_exp ? exp + digits_after_dec_point : exp - digits_after_dec_point; + tmp_exp= (neg_exp ? exponent + digits_after_dec_point : + exponent - digits_after_dec_point); if (tmp_exp) { int order; @@ -157,7 +158,7 @@ double my_strtod(const char *str, char **end_ptr, int *error) where f is the resulting floating point number and 1 <= C < 10. Here we compute the modulus */ - order= exp + (neg_exp ? -1 : 1) * (ndigits - 1); + order= exponent + (neg_exp ? -1 : 1) * (ndigits - 1); if (order < 0) order= -order; if (order >= MAX_DBL_EXP && !neg_exp && result) @@ -172,18 +173,18 @@ double my_strtod(const char *str, char **end_ptr, int *error) } } - exp= tmp_exp; - if (exp < 0) + exponent= tmp_exp; + if (exponent < 0) { - exp= -exp; + exponent= -exponent; neg_exp= 1; /* neg_exp was 0 before */ } - while (exp >= 100) + while (exponent >= 100) { result= neg_exp ? result/1.0e100 : result*1.0e100; - exp-= 100; + exponent-= 100; } - scaler= scaler10[exp/10]*scaler1[exp%10]; + scaler= scaler10[exponent/10]*scaler1[exponent%10]; if (neg_exp) result/= scaler; else |