cvs: php4 /ext/interbase interbase.c

From: Date: Wed, 06 Mar 2002 19:54:47 +0000
Subject: cvs: php4 /ext/interbase interbase.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-9742@lists.php.net to get a copy of this message
derick Wed Mar 6 14:54:47 2002 EDT Modified files: /php4/ext/interbase interbase.c Log: - Fix for bug #12383 and #14755: 105.05$ becomes 105.5$ (Patch by: Giancarlo Niccolai <giancarlo@niccolai.org>) Index: php4/ext/interbase/interbase.c diff -u php4/ext/interbase/interbase.c:1.76 php4/ext/interbase/interbase.c:1.77 --- php4/ext/interbase/interbase.c:1.76 Fri Mar 1 09:03:10 2002 +++ php4/ext/interbase/interbase.c Wed Mar 6 14:54:47 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: interbase.c,v 1.76 2002/03/01 14:03:10 derick Exp $ */ +/* $Id: interbase.c,v 1.77 2002/03/06 19:54:47 derick Exp $ */ /* TODO: Arrays, roles? @@ -594,7 +594,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "Interbase Support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.76 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.77 $"); #ifdef COMPILE_DL_INTERBASE php_info_print_table_row(2, "Dynamic Module", "yes"); #endif @@ -1783,11 +1783,22 @@ break; #ifdef SQL_INT64 case SQL_INT64: - Z_TYPE_P(val) = IS_STRING; - Z_STRLEN_P(val) = sprintf(string_data, "%Ld.%0*Ld", - (ISC_INT64) (*((ISC_INT64 *)data) / (int) pow(10.0, (double) -scale)), -scale, - (ISC_INT64) abs((int) (*((ISC_INT64 *)data) % (int) pow(10.0, (double) -scale)))); - Z_STRVAL_P(val) = estrdup(string_data); + val->type = IS_STRING; + + if (scale) { + int i, len; + char dt[20]; + double number = (double) ((ISC_INT64) (*((ISC_INT64 *)data))); + + number /= - 10 * scale; + sprintf(dt, "%%0.%df", -scale); + val->value.str.len = sprintf (string_data, dt, number); + } else { + val->value.str.len = sprintf (string_data, "%Ld", + (ISC_INT64) (*((ISC_INT64 *)data))); + } + + val->value.str.val = estrdup(string_data); break; #endif #ifndef SQL_TIMESTAMP

« previous php.cvs (#9742) next »