From: Daniela Mariaschi Date: Wed, 14 May 2003 08:22:54 +0000 (+0000) Subject: better fix bug #20641. X-Git-Tag: RELEASE_0_9b~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=82d513ee727787229e03a413ffabd1d29fc09968;p=php better fix bug #20641. Overflow numeric/decimal datatype on NT --- 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);