]> granicus.if.org Git - php/commitdiff
MFH: better fix bug #20641.
authorDaniela Mariaschi <daniela@php.net>
Wed, 14 May 2003 08:26:34 +0000 (08:26 +0000)
committerDaniela Mariaschi <daniela@php.net>
Wed, 14 May 2003 08:26:34 +0000 (08:26 +0000)
Overflow numeric/deciaml datatype on NT

ext/interbase/interbase.c
ext/interbase/php_interbase.h

index e0c88d8f6b31f869193da58df2e8d17c876ddafa..328aa655ed7fcb9c4f2aab3fd51e4a4b3733d9c0 100644 (file)
@@ -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);
index bf3342aa7cb78064aedbd7853947234987f0d45b..4651732a081468c83271f34a1605462a05c16c67 100644 (file)
@@ -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);