From: cristy Date: Thu, 3 Nov 2011 11:29:17 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~6693 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dee18fa64bf7a2e0eabe268667daa3500a0fe0ea;p=imagemagick --- diff --git a/MagickCore/fx.c b/MagickCore/fx.c index 240305935..12311a818 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -194,6 +194,60 @@ MagickPrivate FxInfo *AcquireFxInfo(const Image *image,const char *expression) 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)) + { + /* + 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-1.0*","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^-"); + } + 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-1.0*","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^-"); + } /* Convert complex to simple operators. */