From 22e9844842cb8438e89925c1c7ab45e1594ae971 Mon Sep 17 00:00:00 2001 From: Daniela Mariaschi Date: Wed, 14 May 2003 08:26:34 +0000 Subject: [PATCH] MFH: better fix bug #20641. Overflow numeric/deciaml datatype on NT --- ext/interbase/interbase.c | 4 ++-- ext/interbase/php_interbase.h | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c index e0c88d8f6b..328aa655ed 100644 --- a/ext/interbase/interbase.c +++ b/ext/interbase/interbase.c @@ -1830,8 +1830,8 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca sprintf(dt, "%%0.%df", -scale); val->value.str.len = sprintf (string_data, dt, number/f ); } else { - val->value.str.len = sprintf (string_data, "%.0f", - (double)(ISC_INT64) (*((ISC_INT64 *)data))); + val->value.str.len =sprintf (string_data, "%.0" ISC_INT64_FORMAT "d", + (ISC_INT64) *(ISC_INT64 *) data); } val->value.str.val = estrdup(string_data); diff --git a/ext/interbase/php_interbase.h b/ext/interbase/php_interbase.h index bf3342aa7c..4651732a08 100644 --- a/ext/interbase/php_interbase.h +++ b/ext/interbase/php_interbase.h @@ -30,10 +30,17 @@ 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); PHP_RINIT_FUNCTION(ibase); PHP_MSHUTDOWN_FUNCTION(ibase); -- 2.40.0