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

Reply via email to