summaryrefslogtreecommitdiff
path: root/ext/interbase/interbase.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2001-05-02 22:31:19 +0000
committerAndi Gutmans <andi@php.net>2001-05-02 22:31:19 +0000
commitf1c801ac89b04a1611dd8c42f6ab995cb59f07bc (patch)
tree0f7dedcfecca537b14a423134d2fabdd413008ad /ext/interbase/interbase.c
parent0ac0f656ae39d0b9c0759e55ae760ab7ee070c8a (diff)
downloadphp-git-f1c801ac89b04a1611dd8c42f6ab995cb59f07bc.tar.gz
- Commit interbase fixes
Diffstat (limited to 'ext/interbase/interbase.c')
-rw-r--r--ext/interbase/interbase.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c
index 64a3324a78..06d1b3e974 100644
--- a/ext/interbase/interbase.c
+++ b/ext/interbase/interbase.c
@@ -1727,15 +1727,10 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca
/* fallout */
case SQL_TEXT:
val->value.str.val = (char *)emalloc(sizeof(char)*(len+1));
- strncpy(val->value.str.val, data, len);
+ memcpy(val->value.str.val, data, len);
+ val->value.str.val[len] = '\0';
if (PG(magic_quotes_runtime)) {
- /*
- char *tmp = val->value.str.val;
- */
- val->value.str.val = php_addslashes(val->value.str.val, len, &len, 0);
- /*
- efree(tmp);
- */
+ val->value.str.val = php_addslashes(val->value.str.val, len, &len, 1);
}
val->type = IS_STRING;
val->value.str.len = len;
@@ -1745,8 +1740,9 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca
int j, f = 1;
float n = (float) *(long *)(data);
- for (j = 0; j < -scale; j++)
+ for (j = 0; j < -scale; j++) {
f *= 10;
+ }
val->type = IS_STRING;
val->value.str.len = sprintf(string_data, "%.*f", -scale, n / f);
val->value.str.val = estrdup(string_data);
@@ -1779,8 +1775,8 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca
#ifdef SQL_INT64
case SQL_INT64:
val->type = IS_STRING;
- val->value.str.len = sprintf(string_data, "%Ld.%Ld",
- (ISC_INT64) (*((ISC_INT64 *)data) / (int) pow(10.0, (double) -scale)),
+ val->value.str.len = 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))));
val->value.str.val = estrdup(string_data);
break;