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++];
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php