From 670aa3c328eb7d97a3edd44ef7b4244d2effa935 Mon Sep 17 00:00:00 2001 From: cristy Date: Thu, 3 Nov 2011 00:54:00 +0000 Subject: [PATCH] --- MagickCore/configure.c | 4 ++ MagickCore/display.c | 16 +++---- MagickCore/fx.c | 56 +------------------------ MagickCore/image-private.h | 1 + MagickCore/image.c | 4 +- MagickCore/locale.c | 83 ++++++++++++++++++++++++++++++++----- MagickCore/magick-config.h | 11 +++++ MagickCore/property.c | 2 +- MagickCore/resource.c | 2 +- MagickCore/string-private.h | 21 ++-------- MagickCore/string.c | 24 +++++------ MagickCore/version.h | 4 +- MagickWand/mogrify.c | 16 +++---- MagickWand/operation.c | 16 +++---- Makefile.in | 82 ++++++++++++++++++++++++------------ PerlMagick/Magick.xs | 62 +++++++++++++-------------- coders/jpeg.c | 2 +- coders/msl.c | 4 +- config/Makefile.am | 7 +++- config/config.h.in | 7 ++++ config/configure.xml | 4 +- configure | 64 ++++++++++++++++++---------- configure.ac | 45 +++++++++++++------- 23 files changed, 312 insertions(+), 225 deletions(-) diff --git a/MagickCore/configure.c b/MagickCore/configure.c index 3e2cfda11..9fc26f02d 100644 --- a/MagickCore/configure.c +++ b/MagickCore/configure.c @@ -672,6 +672,10 @@ MagickExport LinkedListInfo *GetConfigurePaths(const char *filename, #if defined(MAGICKCORE_SHARE_PATH) (void) AppendValueToLinkedList(paths,ConstantString(MAGICKCORE_SHARE_PATH)); #endif +#if defined(MAGICKCORE_SHAREARCH_PATH) + (void) AppendValueToLinkedList(paths,ConstantString( + MAGICKCORE_SHAREARCH_PATH)); +#endif #if defined(MAGICKCORE_CONFIGURE_PATH) (void) AppendValueToLinkedList(paths,ConstantString( MAGICKCORE_CONFIGURE_PATH)); diff --git a/MagickCore/display.c b/MagickCore/display.c index e519246f7..ecd5ee7f7 100644 --- a/MagickCore/display.c +++ b/MagickCore/display.c @@ -3543,7 +3543,7 @@ static MagickBooleanType XColorEditImage(Display *display, break; if (entry != 5) { - (*image)->fuzz=SiPrefixToDouble(FuzzMenu[entry],(double) + (*image)->fuzz=InterpretLocaleInterval(FuzzMenu[entry],(double) QuantumRange+1.0); break; } @@ -3553,7 +3553,7 @@ static MagickBooleanType XColorEditImage(Display *display, if (*fuzz == '\0') break; (void) ConcatenateMagickString(fuzz,"%",MaxTextExtent); - (*image)->fuzz=SiPrefixToDouble(fuzz,(double) QuantumRange+1.0); + (*image)->fuzz=InterpretLocaleInterval(fuzz,(double) QuantumRange+1.0); break; } case ColorEditUndoCommand: @@ -7728,7 +7728,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, (void) XDialogWidget(display,windows,"Trim","Enter fuzz factor:",fuzz); if (*fuzz == '\0') break; - (*image)->fuzz=SiPrefixToDouble(fuzz,(double) QuantumRange+1.0); + (*image)->fuzz=InterpretLocaleInterval(fuzz,(double) QuantumRange+1.0); /* Trim image. */ @@ -8310,7 +8310,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, */ XSetCursorState(display,windows,MagickTrue); XCheckRefreshWindows(display,windows); - threshold=SiPrefixToDouble(factor,QuantumRange); + threshold=InterpretLocaleInterval(factor,QuantumRange); (void) BilevelImage(*image,threshold,exception); XSetCursorState(display,windows,MagickFalse); if (windows->image.orphan != MagickFalse) @@ -8512,7 +8512,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, */ XSetCursorState(display,windows,MagickTrue); XCheckRefreshWindows(display,windows); - threshold=SiPrefixToDouble(factor,QuantumRange); + threshold=InterpretLocaleInterval(factor,QuantumRange); sepia_image=SepiaToneImage(*image,threshold,exception); if (sepia_image != (Image *) NULL) { @@ -8547,7 +8547,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, */ XSetCursorState(display,windows,MagickTrue); XCheckRefreshWindows(display,windows); - threshold=SiPrefixToDouble(factor,QuantumRange); + threshold=InterpretLocaleInterval(factor,QuantumRange); (void) SolarizeImage(*image,threshold,exception); XSetCursorState(display,windows,MagickFalse); if (windows->image.orphan != MagickFalse) @@ -9864,7 +9864,7 @@ static MagickBooleanType XMatteEditImage(Display *display, break; if (entry != 5) { - (*image)->fuzz=SiPrefixToDouble(FuzzMenu[entry],(double) + (*image)->fuzz=InterpretLocaleInterval(FuzzMenu[entry],(double) QuantumRange+1.0); break; } @@ -9874,7 +9874,7 @@ static MagickBooleanType XMatteEditImage(Display *display, if (*fuzz == '\0') break; (void) ConcatenateMagickString(fuzz,"%",MaxTextExtent); - (*image)->fuzz=SiPrefixToDouble(fuzz,(double) QuantumRange+1.0); + (*image)->fuzz=InterpretLocaleInterval(fuzz,(double) QuantumRange+1.0); break; } case MatteEditValueCommand: diff --git a/MagickCore/fx.c b/MagickCore/fx.c index 787958ed0..240305935 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -194,60 +194,6 @@ 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. */ @@ -2765,6 +2711,8 @@ static MagickRealType FxEvaluateSubexpression(FxInfo *fx_info, case 'P': case 'p': { + if (LocaleCompare(expression,"phi") == 0) + return((MagickRealType) MagickPHI); if (LocaleCompare(expression,"pi") == 0) return((MagickRealType) MagickPI); if (LocaleNCompare(expression,"pow",3) == 0) diff --git a/MagickCore/image-private.h b/MagickCore/image-private.h index d19dc113b..5cd5bded2 100644 --- a/MagickCore/image-private.h +++ b/MagickCore/image-private.h @@ -23,6 +23,7 @@ extern "C" { #endif #define Magick2PI 6.28318530717958647692528676655900576839433879875020L +#define MagickPHI 1.61803398874989484820 #define MagickPI2 1.57079632679489661923132169163975144209858469968755L #define MagickSQ1_2 0.70710678118654752440084436210484903928483593768847L #define MagickSQ2 1.41421356237309504880168872420969807856967187537695L diff --git a/MagickCore/image.c b/MagickCore/image.c index 41abdc7ec..2d54db2a7 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -4130,7 +4130,7 @@ MagickExport MagickBooleanType SyncImageSettings(const ImageInfo *image_info, exception); option=GetImageOption(image_info,"bias"); if (option != (const char *) NULL) - image->bias=SiPrefixToDouble(option,QuantumRange); + image->bias=InterpretLocaleInterval(option,QuantumRange); option=GetImageOption(image_info,"black-point-compensation"); if (option != (const char *) NULL) image->black_point_compensation=(MagickBooleanType) ParseCommandOption( @@ -4185,7 +4185,7 @@ MagickExport MagickBooleanType SyncImageSettings(const ImageInfo *image_info, MagickFalse,option); option=GetImageOption(image_info,"fuzz"); if (option != (const char *) NULL) - image->fuzz=SiPrefixToDouble(option,(double) QuantumRange+1.0); + image->fuzz=InterpretLocaleInterval(option,(double) QuantumRange+1.0); option=GetImageOption(image_info,"gravity"); if (option != (const char *) NULL) image->gravity=(GravityType) ParseCommandOption(MagickGravityOptions, diff --git a/MagickCore/locale.c b/MagickCore/locale.c index 046048150..64a15d604 100644 --- a/MagickCore/locale.c +++ b/MagickCore/locale.c @@ -879,23 +879,84 @@ static MagickBooleanType InitializeLocaleList(ExceptionInfo *exception) MagickExport double InterpretLocaleValue(const char *restrict string, char **restrict sentinal) { + char + *q; + double value; + static const double + SIPrefixes['z'-'E'+1] = + { + ['y'-'E'] = (-24.0), + ['z'-'E'] = (-21.0), + ['a'-'E'] = (-18.0), + ['f'-'E'] = (-15.0), + ['p'-'E'] = (-12.0), + ['n'-'E'] = (-9.0), + ['u'-'E'] = (-6.0), + ['m'-'E'] = (-3.0), + ['c'-'E'] = (-2.0), + ['d'-'E'] = (-1.0), + ['h'-'E'] = 2.0, + ['k'-'E'] = 3.0, + ['K'-'E'] = 3.0, + ['M'-'E'] = 6.0, + ['G'-'E'] = 9.0, + ['T'-'E'] = 12.0, + ['P'-'E'] = 15.0, + ['E'-'E'] = 18.0, + ['Z'-'E'] = 21.0, + ['Y'-'E'] = 24.0 + }; + + if ((*string == '0') && ((string[1] | 0x20)=='x')) + value=(double) strtoul(string,&q,16); + else + { #if defined(MAGICKCORE_HAVE_STRTOD_L) - { - locale_t - locale; - - locale=AcquireCLocale(); - if (locale == (locale_t) NULL) - value=strtod(string,sentinal); - else - value=strtod_l(string,sentinal,locale); - } + locale_t + locale; + + locale=AcquireCLocale(); + if (locale == (locale_t) NULL) + value=strtod(string,&q); + else + value=strtod_l(string,&q,locale); #else - value=strtod(string,sentinal); + value=strtod(string,&q); #endif + } + if (q != string) + { + if ((*q >= 'E') && (*q <= 'z')) + { + double + e; + + e=SIPrefixes[*q-'E']; + if (e >= MagickEpsilon) + { + if (q[1] == 'i') + { + value*=pow(2.0,e/0.3); + q+=2; + } + else + { + value*=pow(10.0,e); + q++; + } + } + } + if (*q == 'B') + { + value*=8.0; + q++; + } + } + if (sentinal != (char **) NULL) + *sentinal=q; return(value); } diff --git a/MagickCore/magick-config.h b/MagickCore/magick-config.h index 2eb6a0f65..b807d4cdd 100644 --- a/MagickCore/magick-config.h +++ b/MagickCore/magick-config.h @@ -1355,6 +1355,17 @@ #define MAGICKCORE_SELECT_TYPE_ARG5 (struct timeval *) #endif +/* Directory where architecture-independent configuration files live. */ +#ifndef MAGICKCORE_SHAREARCH_PATH +#define MAGICKCORE_SHAREARCH_PATH "/usr/local/share/ImageMagick-7.0.0/" +#endif + +/* Subdirectory of lib where architecture-independent configuration files + live. */ +#ifndef MAGICKCORE_SHAREARCH_RELATIVE_PATH +#define MAGICKCORE_SHAREARCH_RELATIVE_PATH "ImageMagick-7.0.0" +#endif + /* Directory where architecture-independent configuration files live. */ #ifndef MAGICKCORE_SHARE_PATH #define MAGICKCORE_SHARE_PATH "/usr/local/share/ImageMagick-7.0.0/" diff --git a/MagickCore/property.c b/MagickCore/property.c index 42159a04c..da7e19cbb 100644 --- a/MagickCore/property.c +++ b/MagickCore/property.c @@ -3200,7 +3200,7 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, } if (LocaleCompare(property,"bias") == 0) { - image->bias=SiPrefixToDouble(value,QuantumRange); + image->bias=InterpretLocaleInterval(value,QuantumRange); break; } status=AddValueToSplayTree((SplayTreeInfo *) image->properties, diff --git a/MagickCore/resource.c b/MagickCore/resource.c index 567d9fce2..1c417d056 100644 --- a/MagickCore/resource.c +++ b/MagickCore/resource.c @@ -899,7 +899,7 @@ static inline MagickSizeType StringToSizeType(const char *string, double value; - value=SiPrefixToDouble(string,interval); + value=InterpretLocaleInterval(string,interval); if (value >= (double) MagickULLConstant(~0)) return(MagickULLConstant(~0)); return((MagickSizeType) value); diff --git a/MagickCore/string-private.h b/MagickCore/string-private.h index 6e4308c9b..3a0d4eac7 100644 --- a/MagickCore/string-private.h +++ b/MagickCore/string-private.h @@ -22,35 +22,20 @@ extern "C" { #endif -static inline double SiPrefixToDouble(const char *string,const double interval) +static inline double InterpretLocaleInterval(const char *string,const double interval) { char *q; double - scale, value; /* Interpret string with International System of Units (SI) unit prefix. */ value=InterpretLocaleValue(string,&q); - scale=1000.0; - if ((*q != '\0') && (tolower((int) ((unsigned char) *(q+1))) == 'i')) - scale=1024.0; - switch (tolower((int) ((unsigned char) *q))) - { - case '%': value*=pow(scale,0)*interval/100.0; break; - case 'k': value*=pow(scale,1); break; - case 'm': value*=pow(scale,2); break; - case 'g': value*=pow(scale,3); break; - case 't': value*=pow(scale,4); break; - case 'p': value*=pow(scale,5); break; - case 'e': value*=pow(scale,6); break; - case 'z': value*=pow(scale,7); break; - case 'y': value*=pow(scale,8); break; - default: break; - } + if (*q == '%') + value*=interval/100.0; return(value); } diff --git a/MagickCore/string.c b/MagickCore/string.c index 621eb2bcd..dd6ded769 100644 --- a/MagickCore/string.c +++ b/MagickCore/string.c @@ -3,24 +3,24 @@ % % % % % % -% sssss ttttt rrrr iiiii n n gggg % -% ss t r r i nn n g % -% sss t rrrr i n n n g ggg % -% ss t r r i n nn g g % -% sssss t r r iiiii n n gggg % +% SSSSS TTTTT RRRR IIIII N N GGGG % +% SS T R R I NN N G % +% SSS T RRRR I N N N G GGG % +% SS T R R I N NN G G % +% SSSSS T R R IIIII N N GGGG % % % % % -% MagickCore string methods % +% MagickCore String Methods % % % -% software design % -% john cristy % -% august 2003 % +% Software Design % +% John Cristy % +% August 2003 % % % % % -% copyright 1999-2011 imagemagick studio llc, a non-profit organization % +% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization % % dedicated to making software imaging solutions freely available. % % % -% you may not use this file except in compliance with the license. you may % +% You may not use this file except in compliance with the license. You may % % obtain a copy of the license at % % % % http://www.imagemagick.org/script/license.php % @@ -28,7 +28,7 @@ % unless required by applicable law or agreed to in writing, software % % distributed under the license is distributed on an "as is" basis, % % without warranties or conditions of any kind, either express or implied. % -% see the license for the specific language governing permissions and % +% See the license for the specific language governing permissions and % % limitations under the license. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/MagickCore/version.h b/MagickCore/version.h index 08ca7930b..23785782c 100644 --- a/MagickCore/version.h +++ b/MagickCore/version.h @@ -27,14 +27,14 @@ extern "C" { */ #define MagickPackageName "ImageMagick" #define MagickCopyright "Copyright (C) 1999-2011 ImageMagick Studio LLC" -#define MagickSVNRevision "5819" +#define MagickSVNRevision "5835" #define MagickLibVersion 0x700 #define MagickLibVersionText "7.0.0" #define MagickLibVersionNumber 7,0,0 #define MagickLibAddendum "-0" #define MagickLibInterface 7 #define MagickLibMinInterface 7 -#define MagickReleaseDate "2011-10-30" +#define MagickReleaseDate "2011-11-02" #define MagickChangeDate "20110801" #define MagickAuthoritativeURL "http://www.imagemagick.org" #if defined(MAGICKCORE_OPENMP_SUPPORT) diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index c70f7be8a..f961d3ec9 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -1309,7 +1309,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, if (*option == '+') threshold=40.0*QuantumRange/100.0; else - threshold=SiPrefixToDouble(argv[i+1],QuantumRange); + threshold=InterpretLocaleInterval(argv[i+1],QuantumRange); mogrify_image=DeskewImage(*image,threshold,exception); break; } @@ -1507,7 +1507,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, (void) SyncImageSettings(mogrify_info,*image,exception); op=(MagickEvaluateOperator) ParseCommandOption( MagickEvaluateOptions,MagickFalse,argv[i+1]); - constant=SiPrefixToDouble(argv[i+2],QuantumRange); + constant=InterpretLocaleInterval(argv[i+2],QuantumRange); (void) EvaluateImage(*image,op,constant,exception); break; } @@ -2618,7 +2618,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, Sepia-tone image. */ (void) SyncImageSettings(mogrify_info,*image,exception); - threshold=SiPrefixToDouble(argv[i+1],QuantumRange); + threshold=InterpretLocaleInterval(argv[i+1],QuantumRange); mogrify_image=SepiaToneImage(*image,threshold,exception); break; } @@ -2782,7 +2782,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, threshold; (void) SyncImageSettings(mogrify_info,*image,exception); - threshold=SiPrefixToDouble(argv[i+1],QuantumRange); + threshold=InterpretLocaleInterval(argv[i+1],QuantumRange); (void) SolarizeImage(*image,threshold,exception); break; } @@ -2930,7 +2930,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, if (*option == '+') threshold=(double) QuantumRange/2; else - threshold=SiPrefixToDouble(argv[i+1],QuantumRange); + threshold=InterpretLocaleInterval(argv[i+1],QuantumRange); (void) BilevelImage(*image,threshold,exception); break; } @@ -6247,7 +6247,7 @@ WandExport MagickBooleanType MogrifyImageInfo(ImageInfo *image_info, limit=MagickResourceInfinity; if (LocaleCompare("unlimited",argv[i+1]) != 0) - limit=(MagickSizeType) SiPrefixToDouble(argv[i+1],100.0); + limit=(MagickSizeType) InterpretLocaleInterval(argv[i+1],100.0); (void) SetMagickResourceLimit(MemoryResource,limit); (void) SetMagickResourceLimit(MapResource,2*limit); break; @@ -6525,7 +6525,7 @@ WandExport MagickBooleanType MogrifyImageInfo(ImageInfo *image_info, (void) SetImageOption(image_info,option+1,"0"); break; } - image_info->fuzz=SiPrefixToDouble(argv[i+1],(double) QuantumRange+ + image_info->fuzz=InterpretLocaleInterval(argv[i+1],(double) QuantumRange+ 1.0); (void) SetImageOption(image_info,option+1,argv[i+1]); break; @@ -6653,7 +6653,7 @@ WandExport MagickBooleanType MogrifyImageInfo(ImageInfo *image_info, MagickFalse,argv[i+1]); limit=MagickResourceInfinity; if (LocaleCompare("unlimited",argv[i+2]) != 0) - limit=(MagickSizeType) SiPrefixToDouble(argv[i+2],100.0); + limit=(MagickSizeType) InterpretLocaleInterval(argv[i+2],100.0); (void) SetMagickResourceLimit(type,limit); break; } diff --git a/MagickWand/operation.c b/MagickWand/operation.c index b2ad69355..1b9e72988 100644 --- a/MagickWand/operation.c +++ b/MagickWand/operation.c @@ -557,7 +557,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, limit=MagickResourceInfinity; if (LocaleCompare("unlimited",arg) != 0) - limit=(MagickSizeType) SiPrefixToDouble(arg,100.0); + limit=(MagickSizeType) InterpretLocaleInterval(arg,100.0); (void) SetMagickResourceLimit(MemoryResource,limit); (void) SetMagickResourceLimit(MapResource,2*limit); break; @@ -832,7 +832,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, */ if (IfSetOption) { - image_info->fuzz=SiPrefixToDouble(arg,(double) QuantumRange+1.0); + image_info->fuzz=InterpretLocaleInterval(arg,(double) QuantumRange+1.0); (void) SetImageOption(image_info,option,arg); break; } @@ -965,7 +965,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, MagickFalse,arg); limit=MagickResourceInfinity; if (LocaleCompare("unlimited",argv[2]) != 0) - limit=(MagickSizeType) SiPrefixToDouble(argv[2],100.0); + limit=(MagickSizeType) InterpretLocaleInterval(argv[2],100.0); (void) SetMagickResourceLimit(type,limit); break; } @@ -2115,7 +2115,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, if (*argv[0] == '+') threshold=40.0*QuantumRange/100.0; else - threshold=SiPrefixToDouble(args[0],QuantumRange); + threshold=InterpretLocaleInterval(args[0],QuantumRange); new_image=DeskewImage(*image,threshold,exception); break; } @@ -2276,7 +2276,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, (void) SyncImageSettings(image_info,*image,exception); op=(MagickEvaluateOperator) ParseCommandOption( MagickEvaluateOptions,MagickFalse,args[0]); - constant=SiPrefixToDouble(argv[2],QuantumRange); + constant=InterpretLocaleInterval(argv[2],QuantumRange); (void) EvaluateImage(*image,op,constant,exception); break; } @@ -3218,7 +3218,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, threshold; (void) SyncImageSettings(image_info,*image,exception); - threshold=SiPrefixToDouble(args[0],QuantumRange); + threshold=InterpretLocaleInterval(args[0],QuantumRange); new_image=SepiaToneImage(*image,threshold,exception); break; } @@ -3354,7 +3354,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, threshold; (void) SyncImageSettings(image_info,*image,exception); - threshold=SiPrefixToDouble(args[0],QuantumRange); + threshold=InterpretLocaleInterval(args[0],QuantumRange); (void) SolarizeImage(*image,threshold,exception); break; } @@ -3433,7 +3433,7 @@ WandExport MagickBooleanType ApplySettingsOption(MagickWand *wand, if (*argv[0] == '+') threshold=(double) QuantumRange/2; else - threshold=SiPrefixToDouble(args[0],QuantumRange); + threshold=InterpretLocaleInterval(args[0],QuantumRange); (void) BilevelImage(*image,threshold,exception); break; } diff --git a/Makefile.in b/Makefile.in index b7c82954e..c6e861eea 100644 --- a/Makefile.in +++ b/Makefile.in @@ -341,8 +341,8 @@ am__installdirs = "$(DESTDIR)$(codersdir)" "$(DESTDIR)$(filtersdir)" \ "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(configlibdir)" "$(DESTDIR)$(configsharedir)" \ - "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(MagickCoreincdir)" \ + "$(DESTDIR)$(configsharearchdir)" "$(DESTDIR)$(docdir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(MagickCoreincdir)" \ "$(DESTDIR)$(MagickWandincdir)" "$(DESTDIR)$(includedir)" \ "$(DESTDIR)$(ltdlincludedir)" "$(DESTDIR)$(magickppincdir)" \ "$(DESTDIR)$(magickpptopincdir)" @@ -2183,8 +2183,8 @@ DIST_SOURCES = $(Magick___lib_libMagick___la_SOURCES) \ man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) -DATA = $(configlib_DATA) $(configshare_DATA) $(doc_DATA) \ - $(pkgconfig_DATA) +DATA = $(configlib_DATA) $(configshare_DATA) $(configsharearch_DATA) \ + $(doc_DATA) $(pkgconfig_DATA) am__include_HEADERS_DIST = ltdl/ltdl.h am__ltdlinclude_HEADERS_DIST = ltdl/libltdl/lt_system.h \ ltdl/libltdl/lt_error.h ltdl/libltdl/lt_dlloader.h @@ -2374,7 +2374,7 @@ HTMLDecodeDelegate = @HTMLDecodeDelegate@ ILBMDecodeDelegate = @ILBMDecodeDelegate@ ILBMEncodeDelegate = @ILBMEncodeDelegate@ INCLTDL = @INCLTDL@ -INCLUDEDIR_ARCH = @INCLUDEDIR_ARCH@ +INCLUDEARCH_DIR = @INCLUDEARCH_DIR@ INCLUDE_DIR = @INCLUDE_DIR@ INCLUDE_PATH = @INCLUDE_PATH@ INFO_DIR = @INFO_DIR@ @@ -2535,7 +2535,8 @@ SBIN_DIR = @SBIN_DIR@ SCANDecodeDelegate = @SCANDecodeDelegate@ SED = @SED@ SET_MAKE = @SET_MAKE@ -SHAREDIR_ARCH = @SHAREDIR_ARCH@ +SHAREARCH_DIR = @SHAREARCH_DIR@ +SHAREARCH_PATH = @SHAREARCH_PATH@ SHAREDSTATE_DIR = @SHAREDSTATE_DIR@ SHARE_PATH = @SHARE_PATH@ SHELL = @SHELL@ @@ -2776,12 +2777,18 @@ M4_EXTRA_DIST = \ # (share/ImageMagick-version) configsharedir = $(SHARE_PATH) configshare_DATA = \ - config/configure.xml \ config/english.xml \ config/francais.xml \ config/locale.xml +# Where architecture-independent configuration files get installed +# (share/arch/ImageMagick-version) +configsharearchdir = $(SHAREARCH_PATH) +configsharearch_DATA = \ + config/configure.xml + + # Where architecture-dependent configuration files get installed # (share/ImageMagick-version) configlibdir = $(CONFIGURE_PATH) @@ -10746,6 +10753,26 @@ uninstall-configshareDATA: test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(configsharedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(configsharedir)" && rm -f $$files +install-configsharearchDATA: $(configsharearch_DATA) + @$(NORMAL_INSTALL) + test -z "$(configsharearchdir)" || $(MKDIR_P) "$(DESTDIR)$(configsharearchdir)" + @list='$(configsharearch_DATA)'; test -n "$(configsharearchdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(configsharearchdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(configsharearchdir)" || exit $$?; \ + done + +uninstall-configsharearchDATA: + @$(NORMAL_UNINSTALL) + @list='$(configsharearch_DATA)'; test -n "$(configsharearchdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(configsharearchdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(configsharearchdir)" && rm -f $$files install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" @@ -11290,7 +11317,7 @@ all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \ install-binPROGRAMS: install-libLTLIBRARIES installdirs: - for dir in "$(DESTDIR)$(codersdir)" "$(DESTDIR)$(filtersdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(configlibdir)" "$(DESTDIR)$(configsharedir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(MagickCoreincdir)" "$(DESTDIR)$(MagickWandincdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(ltdlincludedir)" "$(DESTDIR)$(magickppincdir)" "$(DESTDIR)$(magickpptopincdir)"; do \ + for dir in "$(DESTDIR)$(codersdir)" "$(DESTDIR)$(filtersdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(configlibdir)" "$(DESTDIR)$(configsharedir)" "$(DESTDIR)$(configsharearchdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(MagickCoreincdir)" "$(DESTDIR)$(MagickWandincdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(ltdlincludedir)" "$(DESTDIR)$(magickppincdir)" "$(DESTDIR)$(magickpptopincdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) @@ -11376,10 +11403,11 @@ info-am: install-data-am: install-MagickCoreincHEADERS \ install-MagickWandincHEADERS install-codersLTLIBRARIES \ install-configlibDATA install-configshareDATA \ - install-data-local install-docDATA install-filtersLTLIBRARIES \ - install-includeHEADERS install-ltdlincludeHEADERS \ - install-magickppincHEADERS install-magickpptopincHEADERS \ - install-man install-pkgconfigDATA + install-configsharearchDATA install-data-local install-docDATA \ + install-filtersLTLIBRARIES install-includeHEADERS \ + install-ltdlincludeHEADERS install-magickppincHEADERS \ + install-magickpptopincHEADERS install-man \ + install-pkgconfigDATA install-dvi: install-dvi-am @@ -11433,11 +11461,12 @@ uninstall-am: uninstall-MagickCoreincHEADERS \ uninstall-MagickWandincHEADERS uninstall-binPROGRAMS \ uninstall-binSCRIPTS uninstall-codersLTLIBRARIES \ uninstall-configlibDATA uninstall-configshareDATA \ - uninstall-docDATA uninstall-filtersLTLIBRARIES \ - uninstall-includeHEADERS uninstall-libLTLIBRARIES \ - uninstall-local uninstall-ltdlincludeHEADERS \ - uninstall-magickppincHEADERS uninstall-magickpptopincHEADERS \ - uninstall-man uninstall-pkgconfigDATA + uninstall-configsharearchDATA uninstall-docDATA \ + uninstall-filtersLTLIBRARIES uninstall-includeHEADERS \ + uninstall-libLTLIBRARIES uninstall-local \ + uninstall-ltdlincludeHEADERS uninstall-magickppincHEADERS \ + uninstall-magickpptopincHEADERS uninstall-man \ + uninstall-pkgconfigDATA uninstall-man: uninstall-man1 @@ -11457,9 +11486,10 @@ uninstall-man: uninstall-man1 html-am info info-am install install-MagickCoreincHEADERS \ install-MagickWandincHEADERS install-am install-binPROGRAMS \ install-binSCRIPTS install-codersLTLIBRARIES \ - install-configlibDATA install-configshareDATA install-data \ - install-data-am install-data-local install-docDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-exec-local \ + install-configlibDATA install-configshareDATA \ + install-configsharearchDATA install-data install-data-am \ + install-data-local install-docDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-exec-local \ install-filtersLTLIBRARIES install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-ltdlincludeHEADERS \ @@ -11473,12 +11503,12 @@ uninstall-man: uninstall-man1 uninstall-MagickCoreincHEADERS uninstall-MagickWandincHEADERS \ uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall-codersLTLIBRARIES uninstall-configlibDATA \ - uninstall-configshareDATA uninstall-docDATA \ - uninstall-filtersLTLIBRARIES uninstall-includeHEADERS \ - uninstall-libLTLIBRARIES uninstall-local \ - uninstall-ltdlincludeHEADERS uninstall-magickppincHEADERS \ - uninstall-magickpptopincHEADERS uninstall-man uninstall-man1 \ - uninstall-pkgconfigDATA + uninstall-configshareDATA uninstall-configsharearchDATA \ + uninstall-docDATA uninstall-filtersLTLIBRARIES \ + uninstall-includeHEADERS uninstall-libLTLIBRARIES \ + uninstall-local uninstall-ltdlincludeHEADERS \ + uninstall-magickppincHEADERS uninstall-magickpptopincHEADERS \ + uninstall-man uninstall-man1 uninstall-pkgconfigDATA # We need the following in order to create an when the system diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs index ecc723dbb..8bc91dd27 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -1026,7 +1026,7 @@ static struct PackageInfo *GetPackageInfo(pTHX_ void *reference, % */ -static double SiPrefixToDouble(const char *string,const double interval) +static double InterpretLocaleInterval(const char *string,const double interval) { char *q; @@ -1137,7 +1137,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, limit=MagickResourceInfinity; if (LocaleCompare(SvPV(sval,na),"unlimited") != 0) - limit=(MagickSizeType) SiPrefixToDouble(SvPV(sval,na),100.0); + limit=(MagickSizeType) InterpretLocaleInterval(SvPV(sval,na),100.0); (void) SetMagickResourceLimit(AreaResource,limit); break; } @@ -1175,7 +1175,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, if (LocaleCompare(attribute,"bias") == 0) { for ( ; image; image=image->next) - image->bias=SiPrefixToDouble(SvPV(sval,na),QuantumRange); + image->bias=InterpretLocaleInterval(SvPV(sval,na),QuantumRange); break; } if (LocaleCompare(attribute,"blue-primary") == 0) @@ -1213,9 +1213,9 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, if (LocaleCompare(attribute,"cache-threshold") == 0) { (void) SetMagickResourceLimit(MemoryResource,(MagickSizeType) - SiPrefixToDouble(SvPV(sval,na),100.0)); + InterpretLocaleInterval(SvPV(sval,na),100.0)); (void) SetMagickResourceLimit(MapResource,(MagickSizeType) - (2*SiPrefixToDouble(SvPV(sval,na),100.0))); + (2*InterpretLocaleInterval(SvPV(sval,na),100.0))); break; } if (LocaleCompare(attribute,"clip-mask") == 0) @@ -1340,7 +1340,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, limit=MagickResourceInfinity; if (LocaleCompare(SvPV(sval,na),"unlimited") != 0) - limit=(MagickSizeType) SiPrefixToDouble(SvPV(sval,na),100.0); + limit=(MagickSizeType) InterpretLocaleInterval(SvPV(sval,na),100.0); (void) SetMagickResourceLimit(DiskResource,limit); break; } @@ -1505,9 +1505,9 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, if (LocaleCompare(attribute,"fuzz") == 0) { if (info) - info->image_info->fuzz=SiPrefixToDouble(SvPV(sval,na),QuantumRange); + info->image_info->fuzz=InterpretLocaleInterval(SvPV(sval,na),QuantumRange); for ( ; image; image=image->next) - image->fuzz=SiPrefixToDouble(SvPV(sval,na),QuantumRange); + image->fuzz=InterpretLocaleInterval(SvPV(sval,na),QuantumRange); break; } if (info) @@ -1665,7 +1665,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, limit=MagickResourceInfinity; if (LocaleCompare(SvPV(sval,na),"unlimited") != 0) - limit=(MagickSizeType) SiPrefixToDouble(SvPV(sval,na),100.0); + limit=(MagickSizeType) InterpretLocaleInterval(SvPV(sval,na),100.0); (void) SetMagickResourceLimit(MapResource,limit); break; } @@ -1712,7 +1712,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, limit=MagickResourceInfinity; if (LocaleCompare(SvPV(sval,na),"unlimited") != 0) - limit=(MagickSizeType) SiPrefixToDouble(SvPV(sval,na),100.0); + limit=(MagickSizeType) InterpretLocaleInterval(SvPV(sval,na),100.0); (void) SetMagickResourceLimit(MemoryResource,limit); break; } @@ -2035,7 +2035,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, limit=MagickResourceInfinity; if (LocaleCompare(SvPV(sval,na),"unlimited") != 0) - limit=(MagickSizeType) SiPrefixToDouble(SvPV(sval,na),100.0); + limit=(MagickSizeType) InterpretLocaleInterval(SvPV(sval,na),100.0); (void) SetMagickResourceLimit(ThreadResource,limit); break; } @@ -2060,7 +2060,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, limit=MagickResourceInfinity; if (LocaleCompare(SvPV(sval,na),"unlimited") != 0) - limit=(MagickSizeType) SiPrefixToDouble(SvPV(sval,na),100.0); + limit=(MagickSizeType) InterpretLocaleInterval(SvPV(sval,na),100.0); (void) SetMagickResourceLimit(TimeResource,limit); break; } @@ -3180,7 +3180,7 @@ Compare(ref,...) { if (LocaleCompare(attribute,"fuzz") == 0) { - image->fuzz=SiPrefixToDouble(SvPV(ST(i),na),100.0); + image->fuzz=InterpretLocaleInterval(SvPV(ST(i),na),100.0); break; } ThrowPerlException(exception,OptionError,"UnrecognizedAttribute", @@ -7623,7 +7623,7 @@ Mogrify(ref,...) geometry.y=argument_list[4].integer_reference; if (attribute_flag[5] != 0) image->fuzz= - SiPrefixToDouble(argument_list[5].string_reference,QuantumRange); + InterpretLocaleInterval(argument_list[5].string_reference,QuantumRange); image=CropImage(image,&geometry,exception); break; } @@ -8222,7 +8222,7 @@ Mogrify(ref,...) invert=MagickTrue; } if (attribute_flag[5] != 0) - image->fuzz=SiPrefixToDouble(argument_list[5].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[5].string_reference, QuantumRange); if (attribute_flag[6] != 0) invert=(MagickBooleanType) argument_list[6].integer_reference; @@ -8258,7 +8258,7 @@ Mogrify(ref,...) { if (compose != DissolveCompositeOp) (void) SetImageAlpha(composite_image,(Quantum) - SiPrefixToDouble(argument_list[6].string_reference, + InterpretLocaleInterval(argument_list[6].string_reference, QuantumRange),exception); else { @@ -8286,7 +8286,7 @@ Mogrify(ref,...) */ (void) CloneString(&image->geometry, argument_list[6].string_reference); - opacity=(Quantum) SiPrefixToDouble( + opacity=(Quantum) InterpretLocaleInterval( argument_list[6].string_reference,QuantumRange); if (composite_image->matte != MagickTrue) (void) SetImageAlpha(composite_image,OpaqueAlpha,exception); @@ -8789,10 +8789,10 @@ Mogrify(ref,...) QueryColorCompliance(argument_list[4].string_reference, AllCompliance,&target,exception); if (attribute_flag[3] != 0) - target.alpha=SiPrefixToDouble(argument_list[3].string_reference, + target.alpha=InterpretLocaleInterval(argument_list[3].string_reference, QuantumRange); if (attribute_flag[5] != 0) - image->fuzz=SiPrefixToDouble(argument_list[5].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[5].string_reference, QuantumRange); invert=MagickFalse; if (attribute_flag[6] != 0) @@ -8887,7 +8887,7 @@ Mogrify(ref,...) (void) QueryColorCompliance(argument_list[1].string_reference, AllCompliance,&fill_color,exception); if (attribute_flag[2] != 0) - image->fuzz=SiPrefixToDouble(argument_list[2].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[2].string_reference, QuantumRange); if (attribute_flag[3] != 0) channel=(ChannelType) argument_list[3].integer_reference; @@ -9006,7 +9006,7 @@ Mogrify(ref,...) flags=ParseGeometry(argument_list[0].string_reference, &geometry_info); if (attribute_flag[1] != 0) - geometry_info.rho=SiPrefixToDouble( + geometry_info.rho=InterpretLocaleInterval( argument_list[1].string_reference,QuantumRange); (void) SolarizeImage(image,geometry_info.rho,exception); break; @@ -9059,10 +9059,10 @@ Mogrify(ref,...) AllCompliance,&target,exception); opacity=TransparentAlpha; if (attribute_flag[1] != 0) - opacity=SiPrefixToDouble(argument_list[1].string_reference, + opacity=InterpretLocaleInterval(argument_list[1].string_reference, QuantumRange); if (attribute_flag[2] != 0) - image->fuzz=SiPrefixToDouble(argument_list[2].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[2].string_reference, QuantumRange); if (attribute_flag[3] == 0) argument_list[3].integer_reference=0; @@ -9082,7 +9082,7 @@ Mogrify(ref,...) argument_list[0].string_reference="50%"; if (attribute_flag[1] != 0) channel=(ChannelType) argument_list[1].integer_reference; - threshold=SiPrefixToDouble(argument_list[0].string_reference, + threshold=InterpretLocaleInterval(argument_list[0].string_reference, QuantumRange); channel_mask=SetPixelChannelMask(image,channel); (void) BilevelImage(image,threshold,exception); @@ -9111,7 +9111,7 @@ Mogrify(ref,...) case 59: /* Trim */ { if (attribute_flag[0] != 0) - image->fuzz=SiPrefixToDouble(argument_list[0].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[0].string_reference, QuantumRange); image=TrimImage(image,exception); break; @@ -9247,7 +9247,7 @@ Mogrify(ref,...) if (attribute_flag[1] != 0) channel=(ChannelType) argument_list[1].integer_reference; if (attribute_flag[2] != 0) - image->bias=SiPrefixToDouble(argument_list[2].string_reference, + image->bias=InterpretLocaleInterval(argument_list[2].string_reference, QuantumRange); if (attribute_flag[3] != 0) { @@ -9600,7 +9600,7 @@ Mogrify(ref,...) goto PerlException; } if (attribute_flag[1] != 0) - image->fuzz=SiPrefixToDouble(argument_list[1].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[1].string_reference, QuantumRange); (void) IsImagesEqual(image,argument_list[0].image_reference, exception); @@ -9773,7 +9773,7 @@ Mogrify(ref,...) if (attribute_flag[4] != 0) geometry.y=argument_list[4].integer_reference; if (attribute_flag[5] != 0) - image->fuzz=SiPrefixToDouble(argument_list[5].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[5].string_reference, QuantumRange); if (attribute_flag[6] != 0) (void) QueryColorCompliance(argument_list[6].string_reference, @@ -9898,7 +9898,7 @@ Mogrify(ref,...) if (attribute_flag[4] != 0) geometry.y=argument_list[4].integer_reference; if (attribute_flag[5] != 0) - image->fuzz=SiPrefixToDouble(argument_list[5].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[5].string_reference, QuantumRange); if (attribute_flag[6] != 0) (void) QueryColorCompliance(argument_list[6].string_reference, @@ -10273,7 +10273,7 @@ Mogrify(ref,...) QueryColorCompliance(argument_list[4].string_reference, AllCompliance,&target,exception); if (attribute_flag[5] != 0) - image->fuzz=SiPrefixToDouble(argument_list[5].string_reference, + image->fuzz=InterpretLocaleInterval(argument_list[5].string_reference, QuantumRange); if (attribute_flag[6] != 0) channel=(ChannelType) argument_list[6].integer_reference; @@ -10392,7 +10392,7 @@ Mogrify(ref,...) flags=ParseGeometry(argument_list[0].string_reference, &geometry_info); if (attribute_flag[1] != 0) - geometry_info.rho=SiPrefixToDouble( + geometry_info.rho=InterpretLocaleInterval( argument_list[1].string_reference,QuantumRange); image=DeskewImage(image,geometry_info.rho,exception); break; diff --git a/coders/jpeg.c b/coders/jpeg.c index ece1a9afa..65549e51f 100644 --- a/coders/jpeg.c +++ b/coders/jpeg.c @@ -1991,7 +1991,7 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info, Search for compression quality that does not exceed image extent. */ jpeg_info->quality=0; - extent=(MagickSizeType) SiPrefixToDouble(option,100.0); + extent=(MagickSizeType) InterpretLocaleInterval(option,100.0); (void) DeleteImageOption(jpeg_info,"jpeg:extent"); (void) AcquireUniqueFilename(jpeg_image->filename); maximum=101; diff --git a/coders/msl.c b/coders/msl.c index c5403672f..b9de76ee8 100644 --- a/coders/msl.c +++ b/coders/msl.c @@ -8000,7 +8000,7 @@ static MagickBooleanType SetMSLAttributes(MSLInfo *msl_info,const char *keyword, limit=MagickResourceInfinity; if (LocaleCompare(value,"unlimited") != 0) - limit=(MagickSizeType) SiPrefixToDouble(value,100.0); + limit=(MagickSizeType) InterpretLocaleInterval(value,100.0); (void) SetMagickResourceLimit(AreaResource,limit); break; } @@ -8030,7 +8030,7 @@ static MagickBooleanType SetMSLAttributes(MSLInfo *msl_info,const char *keyword, { if (image == (Image *) NULL) break; - image->bias=SiPrefixToDouble(value,QuantumRange); + image->bias=InterpretLocaleInterval(value,QuantumRange); break; } if (LocaleCompare(keyword,"blue-primary") == 0) diff --git a/config/Makefile.am b/config/Makefile.am index e496fb8ee..9e4bc04c3 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -18,11 +18,16 @@ # (share/ImageMagick-version) configsharedir = $(SHARE_PATH) configshare_DATA = \ - config/configure.xml \ config/english.xml \ config/francais.xml \ config/locale.xml +# Where architecture-independent configuration files get installed +# (share/arch/ImageMagick-version) +configsharearchdir = $(SHAREARCH_PATH) +configsharearch_DATA = \ + config/configure.xml + # Where architecture-dependent configuration files get installed # (share/ImageMagick-version) configlibdir = $(CONFIGURE_PATH) diff --git a/config/config.h.in b/config/config.h.in index 48c1bdd58..4f621e428 100644 --- a/config/config.h.in +++ b/config/config.h.in @@ -894,6 +894,13 @@ /* Define to the type of arg 5 for `select'. */ #undef SELECT_TYPE_ARG5 +/* Directory where architecture-independent configuration files live. */ +#undef SHAREARCH_PATH + +/* Subdirectory of lib where architecture-independent configuration files + live. */ +#undef SHAREARCH_RELATIVE_PATH + /* Directory where architecture-independent configuration files live. */ #undef SHARE_PATH diff --git a/config/configure.xml b/config/configure.xml index fca8b55be..bd235cb05 100644 --- a/config/configure.xml +++ b/config/configure.xml @@ -10,8 +10,8 @@ - - + + diff --git a/configure b/configure index c99582d4e..cc20ec773 100755 --- a/configure +++ b/configure @@ -721,6 +721,7 @@ BrowseDelegate BZIPDelegate BlenderDecodeDelegate AutotraceDecodeDelegate +SHAREARCH_PATH SHARE_PATH CONFIGURE_PATH DOCUMENTATION_PATH @@ -918,8 +919,8 @@ PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC ax_pthread_config -SHAREDIR_ARCH -INCLUDEDIR_ARCH +SHAREARCH_DIR +INCLUDEARCH_DIR WinPathScript USING_CL_FALSE USING_CL_TRUE @@ -1086,8 +1087,8 @@ with_gnu_ld with_dmalloc enable_bounds_checking enable_osx_universal_binary -with_includedir_arch -with_sharedir_arch +with_includearch_dir +with_sharearch_dir with_threads enable_openmp enable_opencl @@ -1855,8 +1856,8 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-dmalloc use dmalloc, as in http://www.dmalloc.com/dmalloc.tar.gz - --includedir-arch=DIR ARCH specific include directory - --sharedir-arch=DIR ARCH specific config directory + --includearch-dir=DIR ARCH specific include directory + --sharearch-dir=DIR ARCH specific config directory --without-threads disable threads support --with-pic try to use only PIC/non-PIC objects [default=use both] @@ -3603,7 +3604,7 @@ MAGICK_LIBRARY_CURRENT_MIN=`expr $MAGICK_LIBRARY_CURRENT - $MAGICK_LIBRARY_AGE` MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE -MAGICK_SVN_REVISION=5819 +MAGICK_SVN_REVISION=5835 @@ -8260,31 +8261,31 @@ esac # ARCH specific include directory # -# Check whether --with-includedir-arch was given. -if test "${with_includedir_arch+set}" = set; then : - withval=$with_includedir_arch; includedir_arch=$withval +# Check whether --with-includearch-dir was given. +if test "${with_includearch_dir+set}" = set; then : + withval=$with_includearch_dir; includearch_dir=$withval else - includedir_arch=$INCLUDE_DIR + includearch_dir=$INCLUDE_DIR fi -eval "eval INCLUDEDIR_ARCH=$includedir_arch" +eval "eval INCLUDEARCH_DIR=$includearch_dir" # # ARCH specific configuration directory # -# Check whether --with-sharedir-arch was given. -if test "${with_sharedir_arch+set}" = set; then : - withval=$with_sharedir_arch; sharedir_arch=$withval +# Check whether --with-sharearch-dir was given. +if test "${with_sharearch_dir+set}" = set; then : + withval=$with_sharearch_dir; sharearch_dir=$withval else - sharedir_arch="${DATA_DIR}" + sharearch_dir="${DATA_DIR}" fi -eval "eval SHAREDIR_ARCH=$sharedir_arch" -SHAREDIR_ARCH="$sharedir_arch" +eval "eval SHAREARCH_DIR=$sharearch_dir" +SHAREARCH_DIR="$sharearch_dir" # @@ -31909,8 +31910,8 @@ fi # Path to ImageMagick header files INCLUDE_RELATIVE_PATH="ImageMagick" -INCLUDE_PATH="${INCLUDEDIR_ARCH}/${INCLUDE_RELATIVE_PATH}" -DEFINE_INCLUDE_PATH="${INCLUDEDIR_ARCH}/${INCLUDE_RELATIVE_PATH}/" +INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}" +DEFINE_INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}/" case "${build_os}" in mingw* ) DEFINE_INCLUDE_PATH=`$WinPathScript "$DEFINE_INCLUDE_PATH" 1` @@ -32050,7 +32051,7 @@ cat >>confdefs.h <<_ACEOF #define SHARE_RELATIVE_PATH "$SHARE_RELATIVE_PATH" _ACEOF -SHARE_PATH="${SHAREDIR_ARCH}/${SHARE_RELATIVE_PATH}" +SHARE_PATH="${DATA_DIR}/${SHARE_RELATIVE_PATH}" DEFINE_SHARE_PATH="${DATA_DIR}/${SHARE_RELATIVE_PATH}/" case "${build_os}" in mingw* ) @@ -32064,6 +32065,27 @@ _ACEOF +# Subdirectory to place architecture-independent configuration files +SHAREARCH_RELATIVE_PATH="${LIBRARY_RELATIVE_PATH}" + +cat >>confdefs.h <<_ACEOF +#define SHAREARCH_RELATIVE_PATH "$SHAREARCH_RELATIVE_PATH" +_ACEOF + +SHAREARCH_PATH="${DATA_DIR}/${SHAREARCH_RELATIVE_PATH}" +DEFINE_SHAREARCH_PATH="${DATA_DIR}/${SHAREARCH_RELATIVE_PATH}/" +case "${build_os}" in + mingw* ) + DEFINE_SHAREARCH_PATH=`$WinPathScript "$DEFINE_SHAREARCH_PATH" 1` + ;; +esac + +cat >>confdefs.h <<_ACEOF +#define SHAREARCH_PATH "$DEFINE_SHAREARCH_PATH" +_ACEOF + + + # # program_transform_name is formed for use in a Makefile, so create a # modified version for use in a shell script. diff --git a/configure.ac b/configure.ac index c53930866..e1d6ad3fd 100755 --- a/configure.ac +++ b/configure.ac @@ -379,27 +379,27 @@ esac # # ARCH specific include directory # -AC_ARG_WITH([includedir-arch], - [AC_HELP_STRING([--includedir-arch=DIR], +AC_ARG_WITH([includearch-dir], + [AC_HELP_STRING([--includearch-dir=DIR], [ARCH specific include directory])], - [includedir_arch=$withval], - [includedir_arch=$INCLUDE_DIR]) + [includearch_dir=$withval], + [includearch_dir=$INCLUDE_DIR]) -eval "eval INCLUDEDIR_ARCH=$includedir_arch" -AC_SUBST(INCLUDEDIR_ARCH) +eval "eval INCLUDEARCH_DIR=$includearch_dir" +AC_SUBST(INCLUDEARCH_DIR) # # ARCH specific configuration directory # -AC_ARG_WITH([sharedir-arch], - [AC_HELP_STRING([--sharedir-arch=DIR], +AC_ARG_WITH([sharearch-dir], + [AC_HELP_STRING([--sharearch-dir=DIR], [ARCH specific config directory])], - [sharedir_arch=$withval], - [sharedir_arch="${DATA_DIR}"]) + [sharearch_dir=$withval], + [sharearch_dir="${DATA_DIR}"]) -eval "eval SHAREDIR_ARCH=$sharedir_arch" -SHAREDIR_ARCH="$sharedir_arch" -AC_SUBST(SHAREDIR_ARCH) +eval "eval SHAREARCH_DIR=$sharearch_dir" +SHAREARCH_DIR="$sharearch_dir" +AC_SUBST(SHAREARCH_DIR) # # Enable support for threads @@ -2876,8 +2876,8 @@ AC_SUBST(PERLMAINCC) # Path to ImageMagick header files INCLUDE_RELATIVE_PATH="ImageMagick" -INCLUDE_PATH="${INCLUDEDIR_ARCH}/${INCLUDE_RELATIVE_PATH}" -DEFINE_INCLUDE_PATH="${INCLUDEDIR_ARCH}/${INCLUDE_RELATIVE_PATH}/" +INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}" +DEFINE_INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}/" case "${build_os}" in mingw* ) DEFINE_INCLUDE_PATH=`$WinPathScript "$DEFINE_INCLUDE_PATH" 1` @@ -2969,7 +2969,7 @@ AC_SUBST(CONFIGURE_PATH) # Subdirectory to place architecture-independent configuration files SHARE_RELATIVE_PATH="${LIBRARY_RELATIVE_PATH}" AC_DEFINE_UNQUOTED(SHARE_RELATIVE_PATH,"$SHARE_RELATIVE_PATH",Subdirectory of lib where architecture-independent configuration files live.) -SHARE_PATH="${SHAREDIR_ARCH}/${SHARE_RELATIVE_PATH}" +SHARE_PATH="${DATA_DIR}/${SHARE_RELATIVE_PATH}" DEFINE_SHARE_PATH="${DATA_DIR}/${SHARE_RELATIVE_PATH}/" case "${build_os}" in mingw* ) @@ -2979,6 +2979,19 @@ esac AC_DEFINE_UNQUOTED(SHARE_PATH,"$DEFINE_SHARE_PATH",Directory where architecture-independent configuration files live.) AC_SUBST(SHARE_PATH) +# Subdirectory to place architecture-independent configuration files +SHAREARCH_RELATIVE_PATH="${LIBRARY_RELATIVE_PATH}" +AC_DEFINE_UNQUOTED(SHAREARCH_RELATIVE_PATH,"$SHAREARCH_RELATIVE_PATH",Subdirectory of lib where architecture-independent configuration files live.) +SHAREARCH_PATH="${DATA_DIR}/${SHAREARCH_RELATIVE_PATH}" +DEFINE_SHAREARCH_PATH="${DATA_DIR}/${SHAREARCH_RELATIVE_PATH}/" +case "${build_os}" in + mingw* ) + DEFINE_SHAREARCH_PATH=`$WinPathScript "$DEFINE_SHAREARCH_PATH" 1` + ;; +esac +AC_DEFINE_UNQUOTED(SHAREARCH_PATH,"$DEFINE_SHAREARCH_PATH",Directory where architecture-independent configuration files live.) +AC_SUBST(SHAREARCH_PATH) + # # program_transform_name is formed for use in a Makefile, so create a # modified version for use in a shell script. -- 2.40.0