diff options
-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); |