cvs: php4 /ext/standard formatted_print.c

From: Date: Tue, 15 Oct 2002 12:07:39 +0000
Subject: cvs: php4 /ext/standard formatted_print.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-14934@lists.php.net to get a copy of this message
iliaa Tue Oct 15 08:07:39 2002 EDT Modified files: /php4/ext/standard formatted_print.c Log: Fixed bug #4232. (Added support for %e and %E to printf/sprintf) Index: php4/ext/standard/formatted_print.c diff -u php4/ext/standard/formatted_print.c:1.56 php4/ext/standard/formatted_print.c:1.57 --- php4/ext/standard/formatted_print.c:1.56 Mon Oct 14 12:03:16 2002 +++ php4/ext/standard/formatted_print.c Tue Oct 15 08:07:36 2002 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: formatted_print.c,v 1.56 2002/10/14 16:03:16 iliaa Exp $ */ +/* $Id: formatted_print.c,v 1.57 2002/10/15 12:07:36 iliaa Exp $ */ #include <math.h> /* modf() */ #include "php.h" @@ -332,6 +332,31 @@ numbuf[i++] = cvt[j++]; if (precision > 0) numbuf[i++] = decimal_point; + } + } else if (fmt == 'e' || fmt == 'E') { + char *exp_p; + int dec2; + + decpt--; + + numbuf[i++] = cvt[j++]; + numbuf[i++] = decimal_point; + + if (precision > 0) { + int k = precision; + + while (k-- && cvt[j]) { + numbuf[i++] = cvt[j++]; + } + } else { + numbuf[i++] = '0'; + } + + numbuf[i++] = fmt; + exp_p = php_convert_to_decimal(decpt, 0, &dec2, &sign, 0); + numbuf[i++] = sign ? '-' : '+'; + while (*exp_p) { + numbuf[i++] = *(exp_p++); } } else { numbuf[i++] = cvt[j++];

« previous php.cvs (#14934) next »