diff options
author | Daniela Mariaschi <daniela@php.net> | 2003-05-14 08:22:54 +0000 |
---|---|---|
committer | Daniela Mariaschi <daniela@php.net> | 2003-05-14 08:22:54 +0000 |
commit | 82d513ee727787229e03a413ffabd1d29fc09968 (patch) | |
tree | 086fcafd4da2174c1749ea383e830869a45db340 | |
parent | 7ddb7f15d4f42036c06f74493fb0635ff0c617fd (diff) | |
download | php-git-82d513ee727787229e03a413ffabd1d29fc09968.tar.gz |
better fix bug #20641.
Overflow numeric/decimal datatype on NT
-rw-r--r-- | ext/interbase/interbase.c | 3 | ||||
-rw-r--r-- | ext/interbase/php_interbase.h | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c index 65f951242d..d77a126478 100644 --- a/ext/interbase/interbase.c +++ b/ext/interbase/interbase.c @@ -1828,7 +1828,8 @@ static int _php_ibase_var_zval(zval *val, void *data, int type, int len, int sca sprintf(dt, "%%0.%df", -scale); Z_STRLEN_P(val) = sprintf (string_data, dt, number / f); } else { - Z_STRLEN_P(val) = sprintf (string_data, "%.0f", (double) (ISC_INT64) (*((ISC_INT64 *) data))); + Z_STRLEN_P(val) =sprintf (string_data, "%.0" ISC_INT64_FORMAT "d", + (ISC_INT64) *(ISC_INT64 *) data); } Z_STRVAL_P(val) = estrdup(string_data); diff --git a/ext/interbase/php_interbase.h b/ext/interbase/php_interbase.h index bf3342aa7c..72c942e9a9 100644 --- a/ext/interbase/php_interbase.h +++ b/ext/interbase/php_interbase.h @@ -30,8 +30,14 @@ extern zend_module_entry ibase_module_entry; #ifdef PHP_WIN32 #define PHP_IBASE_API __declspec(dllexport) +#ifndef ISC_INT64_FORMAT + #define ISC_INT64_FORMAT "I64" +#endif #else #define PHP_IBASE_API +#ifndef ISC_INT64_FORMAT + #define ISC_INT64_FORMAT "ll" +#endif #endif PHP_MINIT_FUNCTION(ibase); |