diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index 4e96da2..2cc2968 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -1246,7 +1246,7 @@
draw_info->encoding != (char *) NULL ? draw_info->encoding : "none",
draw_info->pointsize);
flags=FT_LOAD_NO_BITMAP;
- value=GetImageProperty(image,"type:hinting");
+ value=GetImageProperty(image,"type:hinting",exception);
if ((value != (const char *) NULL) && (LocaleCompare(value,"off") == 0))
flags|=FT_LOAD_NO_HINTING;
glyph.id=0;
diff --git a/MagickCore/cipher.c b/MagickCore/cipher.c
index 5101425..b7bf02f 100644
--- a/MagickCore/cipher.c
+++ b/MagickCore/cipher.c
@@ -837,9 +837,9 @@
(void) CopyMagickMemory(input_block,digest,MagickMin(AESBlocksize,
GetSignatureDigestsize(signature_info))*sizeof(*input_block));
signature=StringInfoToHexString(GetSignatureDigest(signature_info));
- (void) SetImageProperty(image,"cipher:type","AES");
- (void) SetImageProperty(image,"cipher:mode","CFB");
- (void) SetImageProperty(image,"cipher:nonce",signature);
+ (void) SetImageProperty(image,"cipher:type","AES",exception);
+ (void) SetImageProperty(image,"cipher:mode","CFB",exception);
+ (void) SetImageProperty(image,"cipher:nonce",signature,exception);
signature=DestroyString(signature);
signature_info=DestroySignatureInfo(signature_info);
/*
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index b808a63..9b477f6 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -619,20 +619,20 @@
*/
density=DisplayGamma;
gamma=DisplayGamma;
- value=GetImageProperty(image,"gamma");
+ value=GetImageProperty(image,"gamma",exception);
if (value != (const char *) NULL)
gamma=1.0/fabs(InterpretLocaleValue(value,(char **) NULL)) >=
MagickEpsilon ? InterpretLocaleValue(value,(char **) NULL) : 1.0;
film_gamma=FilmGamma;
- value=GetImageProperty(image,"film-gamma");
+ value=GetImageProperty(image,"film-gamma",exception);
if (value != (const char *) NULL)
film_gamma=InterpretLocaleValue(value,(char **) NULL);
reference_black=ReferenceBlack;
- value=GetImageProperty(image,"reference-black");
+ value=GetImageProperty(image,"reference-black",exception);
if (value != (const char *) NULL)
reference_black=InterpretLocaleValue(value,(char **) NULL);
reference_white=ReferenceWhite;
- value=GetImageProperty(image,"reference-white");
+ value=GetImageProperty(image,"reference-white",exception);
if (value != (const char *) NULL)
reference_white=InterpretLocaleValue(value,(char **) NULL);
logmap=(Quantum *) AcquireQuantumMemory((size_t) MaxMap+1UL,
@@ -2067,20 +2067,20 @@
*/
density=DisplayGamma;
gamma=DisplayGamma;
- value=GetImageProperty(image,"gamma");
+ value=GetImageProperty(image,"gamma",exception);
if (value != (const char *) NULL)
gamma=1.0/fabs(InterpretLocaleValue(value,(char **) NULL)) >=
MagickEpsilon ? InterpretLocaleValue(value,(char **) NULL) : 1.0;
film_gamma=FilmGamma;
- value=GetImageProperty(image,"film-gamma");
+ value=GetImageProperty(image,"film-gamma",exception);
if (value != (const char *) NULL)
film_gamma=InterpretLocaleValue(value,(char **) NULL);
reference_black=ReferenceBlack;
- value=GetImageProperty(image,"reference-black");
+ value=GetImageProperty(image,"reference-black",exception);
if (value != (const char *) NULL)
reference_black=InterpretLocaleValue(value,(char **) NULL);
reference_white=ReferenceWhite;
- value=GetImageProperty(image,"reference-white");
+ value=GetImageProperty(image,"reference-white",exception);
if (value != (const char *) NULL)
reference_white=InterpretLocaleValue(value,(char **) NULL);
logmap=(Quantum *) AcquireQuantumMemory((size_t) MaxMap+1UL,
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index baabf5a..ccb5a7c 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -647,16 +647,16 @@
next->magick_columns=next->columns;
if (next->magick_rows == 0)
next->magick_rows=next->rows;
- value=GetImageProperty(next,"tiff:Orientation");
+ value=GetImageProperty(next,"tiff:Orientation",exception);
if (value == (char *) NULL)
- value=GetImageProperty(next,"exif:Orientation");
+ value=GetImageProperty(next,"exif:Orientation",exception);
if (value != (char *) NULL)
{
next->orientation=(OrientationType) StringToLong(value);
(void) DeleteImageProperty(next,"tiff:Orientation");
(void) DeleteImageProperty(next,"exif:Orientation");
}
- value=GetImageProperty(next,"exif:XResolution");
+ value=GetImageProperty(next,"exif:XResolution",exception);
if (value != (char *) NULL)
{
geometry_info.rho=next->x_resolution;
@@ -666,7 +666,7 @@
next->x_resolution=geometry_info.rho/geometry_info.sigma;
(void) DeleteImageProperty(next,"exif:XResolution");
}
- value=GetImageProperty(next,"exif:YResolution");
+ value=GetImageProperty(next,"exif:YResolution",exception);
if (value != (char *) NULL)
{
geometry_info.rho=next->y_resolution;
@@ -676,9 +676,9 @@
next->y_resolution=geometry_info.rho/geometry_info.sigma;
(void) DeleteImageProperty(next,"exif:YResolution");
}
- value=GetImageProperty(next,"tiff:ResolutionUnit");
+ value=GetImageProperty(next,"tiff:ResolutionUnit",exception);
if (value == (char *) NULL)
- value=GetImageProperty(next,"exif:ResolutionUnit");
+ value=GetImageProperty(next,"exif:ResolutionUnit",exception);
if (value != (char *) NULL)
{
next->units=(ResolutionType) (StringToLong(value)-1);
@@ -693,21 +693,21 @@
if (option != (const char *) NULL)
{
property=InterpretImageProperties(read_info,next,option,exception);
- (void) SetImageProperty(next,"caption",property);
+ (void) SetImageProperty(next,"caption",property,exception);
property=DestroyString(property);
}
option=GetImageOption(read_info,"comment");
if (option != (const char *) NULL)
{
property=InterpretImageProperties(read_info,next,option,exception);
- (void) SetImageProperty(next,"comment",property);
+ (void) SetImageProperty(next,"comment",property,exception);
property=DestroyString(property);
}
option=GetImageOption(read_info,"label");
if (option != (const char *) NULL)
{
property=InterpretImageProperties(read_info,next,option,exception);
- (void) SetImageProperty(next,"label",property);
+ (void) SetImageProperty(next,"label",property,exception);
property=DestroyString(property);
}
if (LocaleCompare(next->magick,"TEXT") == 0)
@@ -754,10 +754,10 @@
profile=GetImageProfile(next,"8bim");
(void) FormatMagickTime(GetBlobProperties(next)->st_mtime,MaxTextExtent,
timestamp);
- (void) SetImageProperty(next,"date:modify",timestamp);
+ (void) SetImageProperty(next,"date:modify",timestamp,exception);
(void) FormatMagickTime(GetBlobProperties(next)->st_ctime,MaxTextExtent,
timestamp);
- (void) SetImageProperty(next,"date:create",timestamp);
+ (void) SetImageProperty(next,"date:create",timestamp,exception);
option=GetImageOption(image_info,"delay");
if (option != (const char *) NULL)
{
diff --git a/MagickCore/display.c b/MagickCore/display.c
index a05a1da..fb71902 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -8971,7 +8971,7 @@
if (unique_file == -1)
XNoticeWidget(display,windows,"Unable to edit image comment",
image_info->filename);
- value=GetImageProperty(*image,"comment");
+ value=GetImageProperty(*image,"comment",exception);
if (value == (char *) NULL)
unique_file=close(unique_file)-1;
else
@@ -9006,7 +9006,7 @@
comment=FileToString(image_info->filename,~0UL,exception);
if (comment != (char *) NULL)
{
- (void) SetImageProperty(*image,"comment",comment);
+ (void) SetImageProperty(*image,"comment",comment,exception);
(*image)->taint=MagickTrue;
}
}
@@ -9099,7 +9099,7 @@
ParseCommandOption(MagickPreviewOptions,MagickFalse,preview_type);
image_info->group=(ssize_t) windows->image.id;
(void) DeleteImageProperty(*image,"label");
- (void) SetImageProperty(*image,"label","Preview");
+ (void) SetImageProperty(*image,"label","Preview",exception);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"preview:%s",
filename);
@@ -9132,7 +9132,7 @@
XCheckRefreshWindows(display,windows);
image_info->group=(ssize_t) windows->image.id;
(void) DeleteImageProperty(*image,"label");
- (void) SetImageProperty(*image,"label","Histogram");
+ (void) SetImageProperty(*image,"label","Histogram",exception);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"histogram:%s",
filename);
@@ -9171,7 +9171,7 @@
XCheckRefreshWindows(display,windows);
image_info->group=(ssize_t) windows->image.id;
(void) DeleteImageProperty(*image,"label");
- (void) SetImageProperty(*image,"label","Matte");
+ (void) SetImageProperty(*image,"label","Matte",exception);
(void) AcquireUniqueFilename(filename);
(void) FormatLocaleString((*image)->filename,MaxTextExtent,"matte:%s",
filename);
@@ -13682,7 +13682,7 @@
{
(void) DeleteImageProperty(next_image,"label");
(void) SetImageProperty(next_image,"label",InterpretImageProperties(
- read_info,next_image,DefaultTileLabel,exception));
+ read_info,next_image,DefaultTileLabel,exception),exception);
(void) ParseRegionGeometry(next_image,read_info->size,&geometry,
exception);
thumbnail_image=ThumbnailImage(next_image,geometry.width,
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index df1be8d..b7757a6 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -2401,7 +2401,7 @@
break;
(void) SetImageProgressMonitor(thumbnail,(MagickProgressMonitor) NULL,
(void *) NULL);
- (void) SetImageProperty(thumbnail,"label",DefaultTileLabel);
+ (void) SetImageProperty(thumbnail,"label",DefaultTileLabel,exception);
if (i == (NumberTiles/2))
{
(void) QueryColorCompliance("#dfdfdf",AllCompliance,
@@ -2784,7 +2784,7 @@
if (preview_image == (Image *) NULL)
break;
(void) DeleteImageProperty(preview_image,"label");
- (void) SetImageProperty(preview_image,"label",label);
+ (void) SetImageProperty(preview_image,"label",label,exception);
AppendImageToList(&images,preview_image);
proceed=SetImageProgress(image,PreviewImageTag,(MagickOffsetType) i,
NumberTiles);
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index f82d619..fada341 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -3919,7 +3919,7 @@
image->rows)/25.0,10.0);
height=image->rows+2*quantum;
caption_image=(Image *) NULL;
- value=GetImageProperty(image,"Caption");
+ value=GetImageProperty(image,"caption",exception);
if (value != (const char *) NULL)
{
char
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index 1e5c6cd..d309087 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -807,7 +807,7 @@
while (property != (const char *) NULL)
{
(void) FormatLocaleFile(file," %s:\n",property);
- value=GetImageProperty(tile,property);
+ value=GetImageProperty(tile,property,exception);
if (value != (const char *) NULL)
(void) FormatLocaleFile(file,"%s\n",value);
property=GetNextImageProperty(tile);
@@ -816,7 +816,7 @@
}
image_info=DestroyImageInfo(image_info);
}
- (void) GetImageProperty(image,"exif:*");
+ (void) GetImageProperty(image,"exif:*",exception);
ResetImagePropertyIterator(image);
property=GetNextImageProperty(image);
if (property != (const char *) NULL)
@@ -828,14 +828,14 @@
while (property != (const char *) NULL)
{
(void) FormatLocaleFile(file," %s: ",property);
- value=GetImageProperty(image,property);
+ value=GetImageProperty(image,property,exception);
if (value != (const char *) NULL)
(void) FormatLocaleFile(file,"%s\n",value);
property=GetNextImageProperty(image);
}
}
(void) FormatLocaleString(key,MaxTextExtent,"8BIM:1999,2998:#1");
- value=GetImageProperty(image,key);
+ value=GetImageProperty(image,key,exception);
if (value != (const char *) NULL)
{
/*
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 3d1e549..476668e 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -701,7 +701,7 @@
property=AcquireString(pathname);
(void) FormatLocaleString(property,MaxTextExtent,"8BIM:1999,2998:%s",
pathname);
- value=GetImageProperty(image,property);
+ value=GetImageProperty(image,property,exception);
property=DestroyString(property);
if (value == (const char *) NULL)
{
@@ -1760,10 +1760,10 @@
value=(const char *) NULL;
if ((image_info != (const ImageInfo *) NULL) &&
(image != (const Image *) NULL))
- value=GetMagickProperty(image_info,image,pattern);
+ value=GetMagickProperty(image_info,image,pattern,&image->exception);
else
if (image != (Image *) NULL)
- value=GetImageProperty(image,pattern);
+ value=GetImageProperty(image,pattern,&image->exception);
else
if (image_info != (ImageInfo *) NULL)
value=GetImageOption(image_info,pattern);
diff --git a/MagickCore/magick-config.h b/MagickCore/magick-config.h
index 17c758d..f29604e 100644
--- a/MagickCore/magick-config.h
+++ b/MagickCore/magick-config.h
@@ -12,7 +12,9 @@
/* #undef AUTOTRACE_DELEGATE */
/* Define if coders and filters are to be built as modules. */
-/* #undef BUILD_MODULES */
+#ifndef MAGICKCORE_BUILD_MODULES
+#define MAGICKCORE_BUILD_MODULES 1
+#endif
/* Define if you have the bzip2 library */
#ifndef MAGICKCORE_BZLIB_DELEGATE
@@ -75,7 +77,9 @@
#endif
/* Define if you have FFTW library */
-/* #undef FFTW_DELEGATE */
+#ifndef MAGICKCORE_FFTW_DELEGATE
+#define MAGICKCORE_FFTW_DELEGATE 1
+#endif
/* Location of filter modules */
#ifndef MAGICKCORE_FILTER_PATH
@@ -217,7 +221,9 @@
#endif
/* Define to 1 if you have the <CL/cl.h> header file. */
-/* #undef HAVE_CL_CL_H */
+#ifndef MAGICKCORE_HAVE_CL_CL_H
+#define MAGICKCORE_HAVE_CL_CL_H 1
+#endif
/* Define to 1 if you have the <complex.h> header file. */
#ifndef MAGICKCORE_HAVE_COMPLEX_H
@@ -435,15 +441,15 @@
#endif
/* Define if you have the <lcms2.h> header file. */
-#ifndef MAGICKCORE_HAVE_LCMS2_H
-#define MAGICKCORE_HAVE_LCMS2_H 1
-#endif
+/* #undef HAVE_LCMS2_H */
/* Define if you have the <lcms2/lcms2.h> header file. */
/* #undef HAVE_LCMS2_LCMS2_H */
/* Define if you have the <lcms.h> header file. */
-/* #undef HAVE_LCMS_H */
+#ifndef MAGICKCORE_HAVE_LCMS_H
+#define MAGICKCORE_HAVE_LCMS_H 1
+#endif
/* Define if you have the <lcms/lcms.h> header file. */
/* #undef HAVE_LCMS_LCMS_H */
@@ -1166,7 +1172,9 @@
#endif
/* Define if you have JBIG library */
-/* #undef JBIG_DELEGATE */
+#ifndef MAGICKCORE_JBIG_DELEGATE
+#define MAGICKCORE_JBIG_DELEGATE 1
+#endif
/* Define if you have JPEG version 2 "Jasper" library */
#ifndef MAGICKCORE_JP2_DELEGATE
@@ -1195,7 +1203,9 @@
#endif
/* Define if you have LQR library */
-/* #undef LQR_DELEGATE */
+#ifndef MAGICKCORE_LQR_DELEGATE
+#define MAGICKCORE_LQR_DELEGATE 1
+#endif
/* Define if using libltdl to support dynamically loadable modules */
#ifndef MAGICKCORE_LTDL_DELEGATE
@@ -1207,7 +1217,7 @@
/* Define to the system default library search path. */
#ifndef MAGICKCORE_LT_DLSEARCH_PATH
-#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib/llvm:/usr/lib64/llvm:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
+#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/opt/modules/pkg/intel/f77/10.0.025/lib:/opt/intel/lib/intel64:/usr/lib64/llvm:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/nvidia:/usr/lib64/qt-3.3/lib:/usr/lib64/xulrunner-2"
#endif
/* The archive extension */
@@ -1258,7 +1268,9 @@
/* #undef NO_MINUS_C_MINUS_O */
/* Define if you have OPENEXR library */
-/* #undef OPENEXR_DELEGATE */
+#ifndef MAGICKCORE_OPENEXR_DELEGATE
+#define MAGICKCORE_OPENEXR_DELEGATE 1
+#endif
/* Name of package */
#ifndef MAGICKCORE_PACKAGE
@@ -1318,7 +1330,9 @@
#endif
/* Define if you have RSVG library */
-/* #undef RSVG_DELEGATE */
+#ifndef MAGICKCORE_RSVG_DELEGATE
+#define MAGICKCORE_RSVG_DELEGATE 1
+#endif
/* Define to the type of arg 1 for `select'. */
#ifndef MAGICKCORE_SELECT_TYPE_ARG1
@@ -1465,7 +1479,9 @@
#endif
/* Define if you have WEBP library */
-/* #undef WEBP_DELEGATE */
+#ifndef MAGICKCORE_WEBP_DELEGATE
+#define MAGICKCORE_WEBP_DELEGATE 1
+#endif
/* Define to use the Windows GDI32 library */
/* #undef WINGDI32_DELEGATE */
@@ -1474,7 +1490,9 @@
/* #undef WITH_DMALLOC */
/* Define if you have WMF library */
-/* #undef WMF_DELEGATE */
+#ifndef MAGICKCORE_WMF_DELEGATE
+#define MAGICKCORE_WMF_DELEGATE 1
+#endif
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
@@ -1530,7 +1548,9 @@
/* #undef _MINIX */
/* Define this for the OpenCL Accelerator */
-/* #undef _OPENCL */
+#ifndef MAGICKCORE__OPENCL
+#define MAGICKCORE__OPENCL 1
+#endif
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index d08f550..044b5e2 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -568,7 +568,7 @@
number_lines=0;
for (i=0; i < (ssize_t) number_images; i++)
{
- value=GetImageProperty(image_list[i],"label");
+ value=GetImageProperty(image_list[i],"label",exception);
if (value == (const char *) NULL)
continue;
if (MultilineCensus(value) > number_lines)
@@ -791,7 +791,7 @@
extract_info=frame_info;
extract_info.width=width+2*frame_info.width;
extract_info.height=height+2*frame_info.height;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
extract_info.height+=(size_t) ((metrics.ascent-
metrics.descent+4)*MultilineCensus(value));
@@ -829,7 +829,7 @@
}
(void) CompositeImage(montage,image->compose,image,x_offset+x,
y_offset+y);
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
{
char
diff --git a/MagickCore/profile.c b/MagickCore/profile.c
index b33e29a..701284f 100644
--- a/MagickCore/profile.c
+++ b/MagickCore/profile.c
@@ -427,7 +427,8 @@
}
#endif
-static MagickBooleanType SetAdobeRGB1998ImageProfile(Image *image)
+static MagickBooleanType SetAdobeRGB1998ImageProfile(Image *image,
+ ExceptionInfo *exception)
{
static unsigned char
AdobeRGB1998Profile[] =
@@ -497,12 +498,13 @@
return(MagickFalse);
profile=AcquireStringInfo(sizeof(AdobeRGB1998Profile));
SetStringInfoDatum(profile,AdobeRGB1998Profile);
- status=SetImageProfile(image,"icm",profile);
+ status=SetImageProfile(image,"icm",profile,exception);
profile=DestroyStringInfo(profile);
return(status);
}
-static MagickBooleanType SetsRGBImageProfile(Image *image)
+static MagickBooleanType SetsRGBImageProfile(Image *image,
+ ExceptionInfo *exception)
{
static unsigned char
sRGBProfile[] =
@@ -5601,7 +5603,7 @@
return(MagickFalse);
profile=AcquireStringInfo(sizeof(sRGBProfile));
SetStringInfoDatum(profile,sRGBProfile);
- status=SetImageProfile(image,"icm",profile);
+ status=SetImageProfile(image,"icm",profile,exception);
profile=DestroyStringInfo(profile);
return(status);
}
@@ -5704,7 +5706,7 @@
profile=AcquireStringInfo((size_t) length);
SetStringInfoDatum(profile,(unsigned char *) datum);
if ((LocaleCompare(name,"icc") != 0) && (LocaleCompare(name,"icm") != 0))
- status=SetImageProfile(image,name,profile);
+ status=SetImageProfile(image,name,profile,exception);
else
{
const StringInfo
@@ -5717,15 +5719,15 @@
const char
*value;
- value=GetImageProperty(image,"exif:ColorSpace");
+ value=GetImageProperty(image,"exif:ColorSpace",exception);
if (LocaleCompare(value,"1") != 0)
- (void) SetsRGBImageProfile(image);
- value=GetImageProperty(image,"exif:InteroperabilityIndex");
+ (void) SetsRGBImageProfile(image,exception);
+ value=GetImageProperty(image,"exif:InteroperabilityIndex",exception);
if (LocaleCompare(value,"R98.") != 0)
- (void) SetsRGBImageProfile(image);
- value=GetImageProperty(image,"exif:InteroperabilityIndex");
+ (void) SetsRGBImageProfile(image,exception);
+ value=GetImageProperty(image,"exif:InteroperabilityIndex",exception);
if (LocaleCompare(value,"R03.") != 0)
- (void) SetAdobeRGB1998ImageProfile(image);
+ (void) SetAdobeRGB1998ImageProfile(image,exception);
icc_profile=GetImageProfile(image,"icc");
}
if ((icc_profile != (const StringInfo *) NULL) &&
@@ -5755,7 +5757,7 @@
"ColorspaceColorProfileMismatch",name);
if ((cmsGetDeviceClass(source_profile) != cmsSigLinkClass) &&
(icc_profile == (StringInfo *) NULL))
- status=SetImageProfile(image,name,profile);
+ status=SetImageProfile(image,name,profile,exception);
else
{
CacheView
@@ -6117,7 +6119,7 @@
source_pixels=DestroyPixelThreadSet(source_pixels);
transform=DestroyTransformThreadSet(transform);
if (cmsGetDeviceClass(source_profile) != cmsSigLinkClass)
- status=SetImageProfile(image,name,profile);
+ status=SetImageProfile(image,name,profile,exception);
if (target_profile != (cmsHPROFILE) NULL)
(void) cmsCloseProfile(target_profile);
}
@@ -6278,7 +6280,7 @@
}
static MagickBooleanType GetProfilesFromResourceBlock(Image *image,
- const StringInfo *resource_block)
+ const StringInfo *resource_block,ExceptionInfo *exception)
{
const unsigned char
*datum;
@@ -6341,7 +6343,7 @@
*/
profile=AcquireStringInfo(count);
SetStringInfoDatum(profile,p);
- (void) SetImageProfile(image,"iptc",profile);
+ (void) SetImageProfile(image,"iptc",profile,exception);
profile=DestroyStringInfo(profile);
p+=count;
break;
@@ -6361,7 +6363,7 @@
*/
profile=AcquireStringInfo(count);
SetStringInfoDatum(profile,p);
- (void) SetImageProfile(image,"icc",profile);
+ (void) SetImageProfile(image,"icc",profile,exception);
profile=DestroyStringInfo(profile);
p+=count;
break;
@@ -6373,7 +6375,7 @@
*/
profile=AcquireStringInfo(count);
SetStringInfoDatum(profile,p);
- (void) SetImageProfile(image,"exif",profile);
+ (void) SetImageProfile(image,"exif",profile,exception);
profile=DestroyStringInfo(profile);
p+=count;
break;
@@ -6385,7 +6387,7 @@
*/
profile=AcquireStringInfo(count);
SetStringInfoDatum(profile,p);
- (void) SetImageProfile(image,"xmp",profile);
+ (void) SetImageProfile(image,"xmp",profile,exception);
profile=DestroyStringInfo(profile);
p+=count;
break;
@@ -6403,7 +6405,7 @@
}
MagickExport MagickBooleanType SetImageProfile(Image *image,const char *name,
- const StringInfo *profile)
+ const StringInfo *profile,ExceptionInfo *exception)
{
char
key[MaxTextExtent],
@@ -6424,12 +6426,12 @@
ConstantString(key),CloneStringInfo(profile));
if ((status != MagickFalse) &&
((LocaleCompare(name,"iptc") == 0) || (LocaleCompare(name,"8bim") == 0)))
- (void) GetProfilesFromResourceBlock(image,profile);
+ (void) GetProfilesFromResourceBlock(image,profile,exception);
/*
Inject profile into image properties.
*/
(void) FormatLocaleString(property,MaxTextExtent,"%s:sans",name);
- (void) GetImageProperty(image,property);
+ (void) GetImageProperty(image,property,exception);
return(status);
}
diff --git a/MagickCore/profile.h b/MagickCore/profile.h
index 585843b..32d3e69 100644
--- a/MagickCore/profile.h
+++ b/MagickCore/profile.h
@@ -46,7 +46,7 @@
CloneImageProfiles(Image *,const Image *),
DeleteImageProfile(Image *,const char *),
ProfileImage(Image *,const char *,const void *,const size_t,ExceptionInfo *),
- SetImageProfile(Image *,const char *,const StringInfo *);
+ SetImageProfile(Image *,const char *,const StringInfo *,ExceptionInfo *);
extern MagickExport StringInfo
*RemoveImageProfile(Image *,const char *);
diff --git a/MagickCore/property.c b/MagickCore/property.c
index 37ba978..c16c499 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -192,7 +192,7 @@
% The format of the DefineImageProperty method is:
%
% MagickBooleanType DefineImageProperty(Image *image,
-% const char *property)
+% const char *property,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -200,9 +200,11 @@
%
% o property: the image property.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType DefineImageProperty(Image *image,
- const char *property)
+ const char *property,ExceptionInfo *exception)
{
char
key[MaxTextExtent],
@@ -221,7 +223,7 @@
if (*p == '=')
(void) CopyMagickString(value,p+1,MaxTextExtent);
*p='\0';
- return(SetImageProperty(image,key,value));
+ return(SetImageProperty(image,key,value,exception));
}
/*
@@ -341,7 +343,7 @@
n=FormatLocaleStringList(value,MaxTextExtent,format,operands);
(void) n;
va_end(operands);
- return(SetImageProperty(image,property,value));
+ return(SetImageProperty(image,property,value,&image->exception));
}
/*
@@ -359,7 +361,8 @@
%
% The format of the GetImageProperty method is:
%
-% const char *GetImageProperty(const Image *image,const char *key)
+% const char *GetImageProperty(const Image *image,const char *key,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -367,6 +370,8 @@
%
% o key: the key.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static char
@@ -375,7 +380,8 @@
*TraceSVGClippath(const unsigned char *,size_t,const size_t,
const size_t);
-static MagickBooleanType GetIPTCProperty(const Image *image,const char *key)
+static MagickBooleanType GetIPTCProperty(const Image *image,const char *key,
+ ExceptionInfo *exception)
{
char
*attribute,
@@ -435,7 +441,8 @@
return(MagickFalse);
}
attribute[strlen(attribute)-1]='\0';
- (void) SetImageProperty((Image *) image,key,(const char *) attribute);
+ (void) SetImageProperty((Image *) image,key,(const char *) attribute,
+ exception);
attribute=DestroyString(attribute);
return(MagickTrue);
}
@@ -517,7 +524,8 @@
return((unsigned short) (value & 0xffff));
}
-static MagickBooleanType Get8BIMProperty(const Image *image,const char *key)
+static MagickBooleanType Get8BIMProperty(const Image *image,const char *key,
+ ExceptionInfo *exception)
{
char
*attribute,
@@ -640,7 +648,7 @@
length-=count;
if ((id <= 1999) || (id >= 2999))
(void) SetImageProperty((Image *) image,key,(const char *)
- attribute);
+ attribute,exception);
else
{
char
@@ -652,7 +660,8 @@
else
path=TracePSClippath((unsigned char *) attribute,(size_t) count,
image->columns,image->rows);
- (void) SetImageProperty((Image *) image,key,(const char *) path);
+ (void) SetImageProperty((Image *) image,key,(const char *) path,
+ exception);
path=DestroyString(path);
}
attribute=DestroyString(attribute);
@@ -698,7 +707,7 @@
}
static MagickBooleanType GetEXIFProperty(const Image *image,
- const char *property)
+ const char *property,ExceptionInfo *exception)
{
#define MaxDirectoryStack 16
#define EXIF_DELIMITER "\n"
@@ -1429,7 +1438,7 @@
p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
image->properties,key);
if (p == (const char *) NULL)
- (void) SetImageProperty((Image *) image,key,value);
+ (void) SetImageProperty((Image *) image,key,value,exception);
value=DestroyString(value);
status=MagickTrue;
}
@@ -1936,11 +1945,8 @@
}
MagickExport const char *GetImageProperty(const Image *image,
- const char *property)
+ const char *property,ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
FxInfo
*fx_info;
@@ -1978,14 +1984,13 @@
if ((property == (const char *) NULL) ||
(strchr(property,':') == (char *) NULL))
return(p);
- exception=(&((Image *) image)->exception);
switch (*property)
{
case '8':
{
if (LocaleNCompare("8bim:",property,5) == 0)
{
- if ((Get8BIMProperty(image,property) != MagickFalse) &&
+ if ((Get8BIMProperty(image,property,exception) != MagickFalse) &&
(image->properties != (void *) NULL))
{
p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
@@ -2000,7 +2005,7 @@
{
if (LocaleNCompare("exif:",property,5) == 0)
{
- if ((GetEXIFProperty(image,property) != MagickFalse) &&
+ if ((GetEXIFProperty(image,property,exception) != MagickFalse) &&
(image->properties != (void *) NULL))
{
p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
@@ -2026,7 +2031,7 @@
(void) FormatLocaleString(value,MaxTextExtent,"%.*g",
GetMagickPrecision(),(double) alpha);
- (void) SetImageProperty((Image *) image,property,value);
+ (void) SetImageProperty((Image *) image,property,value,exception);
}
if (image->properties != (void *) NULL)
{
@@ -2042,7 +2047,7 @@
{
if (LocaleNCompare("iptc:",property,5) == 0)
{
- if ((GetIPTCProperty(image,property) != MagickFalse) &&
+ if ((GetIPTCProperty(image,property,exception) != MagickFalse) &&
(image->properties != (void *) NULL))
{
p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
@@ -2088,8 +2093,8 @@
(void) QueryColorname(image,&pixel,SVGCompliance,name,
exception);
- (void) SetImageProperty((Image *) image,property,name);
- return(GetImageProperty(image,property));
+ (void) SetImageProperty((Image *) image,property,name,exception);
+ return(GetImageProperty(image,property,exception));
}
}
break;
@@ -2131,7 +2136,7 @@
% The format of the GetMagickProperty method is:
%
% const char *GetMagickProperty(const ImageInfo *image_info,Image *image,
-% const char *key)
+% const char *key,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2141,9 +2146,11 @@
%
% o key: the key.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport const char *GetMagickProperty(const ImageInfo *image_info,
- Image *image,const char *property)
+ Image *image,const char *property,ExceptionInfo *exception)
{
char
value[MaxTextExtent],
@@ -2471,7 +2478,7 @@
(void) AddValueToSplayTree((SplayTreeInfo *) image->properties,
ConstantString(property),ConstantString(value));
}
- return(GetImageProperty(image,property));
+ return(GetImageProperty(image,property,exception));
}
/*
@@ -2650,7 +2657,7 @@
pattern[i]=(*p++);
}
pattern[i]='\0';
- value=GetImageProperty(image,pattern);
+ value=GetImageProperty(image,pattern,exception);
if (value != (const char *) NULL)
{
length=strlen(value);
@@ -2679,7 +2686,7 @@
{
if (GlobExpression(key,pattern,MagickTrue) != MagickFalse)
{
- value=GetImageProperty(image,key);
+ value=GetImageProperty(image,key,exception);
if (value != (const char *) NULL)
{
length=strlen(key)+strlen(value)+2;
@@ -2699,7 +2706,7 @@
key=GetNextImageProperty(image);
}
}
- value=GetMagickProperty(image_info,image,pattern);
+ value=GetMagickProperty(image_info,image,pattern,exception);
if (value != (const char *) NULL)
{
length=strlen(value);
@@ -2752,7 +2759,7 @@
}
case 'c': /* image comment properity */
{
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
if (value == (const char *) NULL)
break;
length=strlen(value);
@@ -2819,7 +2826,7 @@
}
case 'l': /* Image label */
{
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value == (const char *) NULL)
break;
length=strlen(value);
@@ -3016,7 +3023,7 @@
case '#': /* Image signature */
{
(void) SignatureImage(image,exception);
- value=GetImageProperty(image,"signature");
+ value=GetImageProperty(image,"signature",exception);
if (value == (const char *) NULL)
break;
q+=CopyMagickString(q,value,extent);
@@ -3138,7 +3145,7 @@
% The format of the SetImageProperty method is:
%
% MagickBooleanType SetImageProperty(Image *image,const char *property,
-% const char *value)
+% const char *value,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -3148,13 +3155,12 @@
%
% o values: the image property values.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType SetImageProperty(Image *image,
- const char *property,const char *value)
+ const char *property,const char *value,ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
MagickBooleanType
status;
@@ -3172,7 +3178,6 @@
if ((value == (const char *) NULL) || (*value == '\0'))
return(DeleteImageProperty(image,property));
status=MagickTrue;
- exception=(&image->exception);
switch (*property)
{
case 'B':
@@ -3381,7 +3386,7 @@
(void) SetImageInfo(image_info,1,exception);
profile=FileToStringInfo(image_info->filename,~0UL,exception);
if (profile != (StringInfo *) NULL)
- status=SetImageProfile(image,image_info->magick,profile);
+ status=SetImageProfile(image,image_info->magick,profile,exception);
image_info=DestroyImageInfo(image_info);
break;
}
diff --git a/MagickCore/property.h b/MagickCore/property.h
index 4b8af40..a725ecf 100644
--- a/MagickCore/property.h
+++ b/MagickCore/property.h
@@ -29,16 +29,16 @@
*RemoveImageProperty(Image *,const char *);
extern MagickExport const char
- *GetImageProperty(const Image *,const char *),
- *GetMagickProperty(const ImageInfo *,Image *,const char *);
+ *GetImageProperty(const Image *,const char *,ExceptionInfo *),
+ *GetMagickProperty(const ImageInfo *,Image *,const char *,ExceptionInfo *);
extern MagickExport MagickBooleanType
CloneImageProperties(Image *,const Image *),
- DefineImageProperty(Image *,const char *),
+ DefineImageProperty(Image *,const char *,ExceptionInfo *),
DeleteImageProperty(Image *,const char *),
FormatImageProperty(Image *,const char *,const char *,...)
magick_attribute((format (printf,3,4))),
- SetImageProperty(Image *,const char *,const char *);
+ SetImageProperty(Image *,const char *,const char *,ExceptionInfo *);
extern MagickExport void
DestroyImageProperties(Image *),
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index e6c32cb..7919da6 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -3261,32 +3261,35 @@
if (strstr(image->magick_filename,"//") == (char *) NULL)
(void) FormatLocaleString(value,MaxTextExtent,"file://%s",
image->magick_filename);
- (void) SetImageProperty(thumbnail_image,"Thumb::URI",value);
+ (void) SetImageProperty(thumbnail_image,"Thumb::URI",value,exception);
(void) CopyMagickString(value,image->magick_filename,MaxTextExtent);
if (GetPathAttributes(image->filename,&attributes) != MagickFalse)
{
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
attributes.st_mtime);
- (void) SetImageProperty(thumbnail_image,"Thumb::MTime",value);
+ (void) SetImageProperty(thumbnail_image,"Thumb::MTime",value,exception);
}
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
attributes.st_mtime);
(void) FormatMagickSize(GetBlobSize(image),MagickFalse,value);
(void) ConcatenateMagickString(value,"B",MaxTextExtent);
- (void) SetImageProperty(thumbnail_image,"Thumb::Size",value);
+ (void) SetImageProperty(thumbnail_image,"Thumb::Size",value,exception);
(void) FormatLocaleString(value,MaxTextExtent,"image/%s",image->magick);
LocaleLower(value);
- (void) SetImageProperty(thumbnail_image,"Thumb::Mimetype",value);
- (void) SetImageProperty(thumbnail_image,"software",
- GetMagickVersion(&version));
+ (void) SetImageProperty(thumbnail_image,"Thumb::Mimetype",value,exception);
+ (void) SetImageProperty(thumbnail_image,"software",GetMagickVersion(&version),
+ exception);
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
image->magick_columns);
- (void) SetImageProperty(thumbnail_image,"Thumb::Image::Width",value);
+ (void) SetImageProperty(thumbnail_image,"Thumb::Image::Width",value,
+ exception);
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
image->magick_rows);
- (void) SetImageProperty(thumbnail_image,"Thumb::Image::height",value);
+ (void) SetImageProperty(thumbnail_image,"Thumb::Image::height",value,
+ exception);
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
GetImageListLength(image));
- (void) SetImageProperty(thumbnail_image,"Thumb::Document::Pages",value);
+ (void) SetImageProperty(thumbnail_image,"Thumb::Document::Pages",value,
+ exception);
return(thumbnail_image);
}
diff --git a/MagickCore/signature.c b/MagickCore/signature.c
index 6cc2bad..24cd720 100644
--- a/MagickCore/signature.c
+++ b/MagickCore/signature.c
@@ -550,7 +550,7 @@
FinalizeSignature(signature_info);
hex_signature=StringInfoToHexString(GetSignatureDigest(signature_info));
(void) DeleteImageProperty(image,"signature");
- (void) SetImageProperty(image,"signature",hex_signature);
+ (void) SetImageProperty(image,"signature",hex_signature,exception);
/*
Free resources.
*/
diff --git a/MagickCore/version.h b/MagickCore/version.h
index 57a75f4..64c3c64 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,7 +27,7 @@
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision "5645"
+#define MagickSVNRevision "exported"
#define MagickLibVersion 0x700
#define MagickLibVersionText "7.0.0"
#define MagickLibVersionNumber 7,0,0