From ba6485e1114acb8b401bf960cc14b8541818ac20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Sun, 20 Jul 1997 16:56:35 -0700 Subject: [PATCH] bugfix in %f Rev: src/modules/sprintf/sprintf.c:1.13 Rev: src/modules/sprintf/testsuite.in:1.8 --- src/modules/sprintf/sprintf.c | 6 ++++-- src/modules/sprintf/testsuite.in | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/sprintf/sprintf.c b/src/modules/sprintf/sprintf.c index 85c9486d00..f3ef01d753 100644 --- a/src/modules/sprintf/sprintf.c +++ b/src/modules/sprintf/sprintf.c @@ -96,7 +96,7 @@ */ #include "global.h" -RCSID("$Id: sprintf.c,v 1.12 1997/06/12 01:35:40 hubbe Exp $"); +RCSID("$Id: sprintf.c,v 1.13 1997/07/20 23:56:32 hubbe Exp $"); #include "error.h" #include "array.h" #include "svalue.h" @@ -106,6 +106,7 @@ RCSID("$Id: sprintf.c,v 1.12 1997/06/12 01:35:40 hubbe Exp $"); #include "constants.h" #include "interpret.h" #include "pike_memory.h" +#include "pike_macros.h" #define FORMAT_INFO_STACK_SIZE 200 #define RETURN_SHARED_STRING @@ -714,7 +715,8 @@ static string low_pike_sprintf(char *format, case 'f': case 'g': DO_OP(); - fsp->b=(char *)xalloc(fsp->width+10); + fsp->b=(char *)xalloc(100+MAXIMUM(fsp->width,8)+ + MAXIMUM(fsp->precision,3)); sprintf(buffer,"%%*.*%c",*a); GET_FLOAT(tf); sprintf(fsp->b,buffer, diff --git a/src/modules/sprintf/testsuite.in b/src/modules/sprintf/testsuite.in index db14290640..fc6f12afe5 100644 --- a/src/modules/sprintf/testsuite.in +++ b/src/modules/sprintf/testsuite.in @@ -1,5 +1,6 @@ // - sprintf module test_true(stringp(sprintf(""))) +test_true(sprintf("--real %1.20f --imaginary %1.20f --scale %1.20f\n",-0.9,-0.9,-0.9)) test_eq(sprintf("%d",1),"1") test_eq(sprintf("%%"),"%") test_eq(sprintf("%d",1),"1") -- GitLab