]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 23 May 2011 16:09:42 +0000 (16:09 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 23 May 2011 16:09:42 +0000 (16:09 +0000)
ChangeLog
magick/fx.c

index de3024b9e9530dcd9d460baf3f24102ed3bca14a..30c0ea823745b4ec38b92b957f81a7e05c1a89e8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 2011-05-21  6.7.0-0 Cristy  <quetzlzacatenango@image...>
   * Avoid fault on corrupt JPEG images.
+  * Fix -fx to interpret scientfic notation properly.
 
 2011-05-20  6.6.9-10 Cristy  <quetzlzacatenango@image...>
   * New version 6.6.9-10.
index 9a220b8649fcbe86c364d6f72ce353d8cfdbfe39..4e8385457c480330152b1ca7f6cd599e592d9231 100644 (file)
@@ -188,6 +188,10 @@ MagickExport FxInfo *AcquireFxInfo(const Image *image,const char *expression)
   fx_info->expression=ConstantString(expression);
   fx_info->file=stderr;
   (void) SubstituteString(&fx_info->expression," ","");  /* compact string */
+  /*
+    Force right-to-left associativity for unary negation.
+  */
+  (void) SubstituteString(&fx_info->expression,"-","-1.0*");
   if ((strstr(fx_info->expression,"e+") != (char *) NULL) ||
       (strstr(fx_info->expression,"e-") != (char *) NULL))
     {
@@ -205,20 +209,43 @@ MagickExport FxInfo *AcquireFxInfo(const Image *image,const char *expression)
       (void) SubstituteString(&fx_info->expression,"8e+","8**10^");
       (void) SubstituteString(&fx_info->expression,"9e+","9**10^");
       (void) SubstituteString(&fx_info->expression,"0e-","0**10^-");
-      (void) SubstituteString(&fx_info->expression,"1e-","1**10^-");
-      (void) SubstituteString(&fx_info->expression,"2e-","2**10^-");
-      (void) SubstituteString(&fx_info->expression,"3e-","3**10^-");
-      (void) SubstituteString(&fx_info->expression,"4e-","4**10^-");
-      (void) SubstituteString(&fx_info->expression,"5e-","5**10^-");
-      (void) SubstituteString(&fx_info->expression,"6e-","6**10^-");
-      (void) SubstituteString(&fx_info->expression,"7e-","7**10^-");
-      (void) SubstituteString(&fx_info->expression,"8e-","8**10^-");
-      (void) SubstituteString(&fx_info->expression,"9e-","9**10^-");
+      (void) SubstituteString(&fx_info->expression,"1e-1.0*","1**10^-");
+      (void) SubstituteString(&fx_info->expression,"2e-1.0*","2**10^-");
+      (void) SubstituteString(&fx_info->expression,"3e-1.0*","3**10^-");
+      (void) SubstituteString(&fx_info->expression,"4e-1.0*","4**10^-");
+      (void) SubstituteString(&fx_info->expression,"5e-1.0*","5**10^-");
+      (void) SubstituteString(&fx_info->expression,"6e-1.0*","6**10^-");
+      (void) SubstituteString(&fx_info->expression,"7e-1.0*","7**10^-");
+      (void) SubstituteString(&fx_info->expression,"8e-1.0*","8**10^-");
+      (void) SubstituteString(&fx_info->expression,"9e-1.0*","9**10^-");
+    }
+  if ((strstr(fx_info->expression,"E+") != (char *) NULL) ||
+      (strstr(fx_info->expression,"E-") != (char *) NULL))
+    {
+      /*
+        Convert scientific notation.
+      */
+      (void) SubstituteString(&fx_info->expression,"0E+","0**10^");
+      (void) SubstituteString(&fx_info->expression,"1E+","1**10^");
+      (void) SubstituteString(&fx_info->expression,"2E+","2**10^");
+      (void) SubstituteString(&fx_info->expression,"3E+","3**10^");
+      (void) SubstituteString(&fx_info->expression,"4E+","4**10^");
+      (void) SubstituteString(&fx_info->expression,"5E+","5**10^");
+      (void) SubstituteString(&fx_info->expression,"6E+","6**10^");
+      (void) SubstituteString(&fx_info->expression,"7E+","7**10^");
+      (void) SubstituteString(&fx_info->expression,"8E+","8**10^");
+      (void) SubstituteString(&fx_info->expression,"9E+","9**10^");
+      (void) SubstituteString(&fx_info->expression,"0E-","0**10^-");
+      (void) SubstituteString(&fx_info->expression,"1E-1.0*","1**10^-");
+      (void) SubstituteString(&fx_info->expression,"2E-1.0*","2**10^-");
+      (void) SubstituteString(&fx_info->expression,"3E-1.0*","3**10^-");
+      (void) SubstituteString(&fx_info->expression,"4E-1.0*","4**10^-");
+      (void) SubstituteString(&fx_info->expression,"5E-1.0*","5**10^-");
+      (void) SubstituteString(&fx_info->expression,"6E-1.0*","6**10^-");
+      (void) SubstituteString(&fx_info->expression,"7E-1.0*","7**10^-");
+      (void) SubstituteString(&fx_info->expression,"8E-1.0*","8**10^-");
+      (void) SubstituteString(&fx_info->expression,"9E-1.0*","9**10^-");
     }
-  /*
-    Force right-to-left associativity for unary negation.
-  */
-  (void) SubstituteString(&fx_info->expression,"-","-1.0*");
   /*
     Convert complex to simple operators.
   */