#endif
#endif
\f
+/*
+ Define declarations.
+*/
+#if defined(MAGICKCORE_LCMS_DELEGATE)
+#if defined(LCMS_VERSION) && (LCMS_VERSION < 2000)
+#define cmsUInt32Number DWORD
+#endif
+#endif
+\f
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
return(status);
}
-static MagickBooleanType GetICCProperty(const Image *image,const char *key,
+static MagickBooleanType GetICCProperty(const Image *image,const char *property,
ExceptionInfo *exception)
{
const StringInfo
*profile;
+ magick_unreferenced(property);
+
profile=GetImageProfile(image,"icc");
if (profile == (StringInfo *) NULL)
profile=GetImageProfile(image,"icm");
if (profile == (StringInfo *) NULL)
return(MagickFalse);
+ if (GetStringInfoLength(profile) < 128)
+ return(MagickFalse); /* minimum ICC profile length */
#if defined(MAGICKCORE_LCMS_DELEGATE)
{
cmsHPROFILE
assert(image != (Image *) NULL);
assert(image->signature == MagickSignature);
- if( IfMagickTrue(image->debug) )
+ if (IfMagickTrue(image->debug))
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-
p=(const char *) NULL;
- /* if property is in splay tree - return it and we are done */
if (image->properties != (void *) NULL)
{
if (property == (const char *) NULL)
{
if (LocaleNCompare("8bim:",property,5) == 0)
{
- if( IfMagickTrue(Get8BIMProperty(image,property,exception)) &&
- (image->properties != (void *) NULL))
- {
- p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
- image->properties,property);
- return(p);
- }
+ (void) Get8BIMProperty(image,property,exception);
+ break;
}
break;
}
{
if (LocaleNCompare("exif:",property,5) == 0)
{
- if( IfMagickTrue(GetEXIFProperty(image,property,exception)) &&
- (image->properties != (void *) NULL))
- {
- p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
- image->properties,property);
- return(p);
- }
+ (void) GetEXIFProperty(image,property,exception);
+ break;
}
break;
}
if ((LocaleNCompare("icc:",property,4) == 0) ||
(LocaleNCompare("icm:",property,4) == 0))
{
- if( IfMagickTrue(GetICCProperty(image,property,exception)) &&
- (image->properties != (void *) NULL))
- {
- p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
- image->properties,property);
- return(p);
- }
+ (void) GetICCProperty(image,property,exception);
+ break;
}
if (LocaleNCompare("iptc:",property,5) == 0)
{
- if( IfMagickTrue(GetIPTCProperty(image,property,exception)) &&
- (image->properties != (void *) NULL))
- {
- p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
- image->properties,property);
- return(p);
- }
+ (void) GetIPTCProperty(image,property,exception);
+ break;
}
break;
}
{
if (LocaleNCompare("xmp:",property,4) == 0)
{
- if( IfMagickTrue(GetXMPProperty(image,property)) &&
- (image->properties != (void *) NULL))
- {
- p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
- image->properties,property);
- return(p);
- }
+ (void) GetXMPProperty(image,property);
+ break;
}
break;
}
default:
break;
}
- return(p);
+ if (image->properties != (void *) NULL)
+ {
+ p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
+ image->properties,property);
+ return(p);
+ }
+ return((const char *) NULL);
}
\f
/*
page.y);
break;
}
- case '#': /* Image signature */
+ case '#':
{
+ /*
+ Image signature.
+ */
WarnNoImageReturn("\"%%%c\"",letter);
(void) SignatureImage(image,exception);
string=GetImageProperty(image,"signature",exception);
if (string != (char *) NULL)
return(string);
if (*value != '\0')
- {
- /* create a cloned copy of result, that will get cleaned up, eventually */
- if (image != (Image *)NULL)
- {
- (void) SetImageArtifact(image,"get-property",value);
- return(GetImageArtifact(image,"get-property"));
- }
- else
- {
- (void) SetImageOption(image_info,"get-property",value);
- return(GetImageOption(image_info,"get-property"));
- }
- }
+ {
+ /*
+ Create a cloned copy of result.
+ */
+ if (image != (Image *)NULL)
+ {
+ (void) SetImageArtifact(image,"get-property",value);
+ return(GetImageArtifact(image,"get-property"));
+ }
+ else
+ {
+ (void) SetImageOption(image_info,"get-property",value);
+ return(GetImageOption(image_info,"get-property"));
+ }
+ }
return((char *)NULL);
}
assert(image->signature == MagickSignature);
if( IfMagickTrue(image->debug) )
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-
- /* Create splay-tree */
if (image->properties == (void *) NULL)
image->properties=NewSplayTree(CompareSplayTreeString,
- RelinquishMagickMemory,RelinquishMagickMemory);
-
- /* Delete property if NULL -- empty string values are valid! */
+ RelinquishMagickMemory,RelinquishMagickMemory); /* create splay-tree */
if (value == (const char *) NULL)
- return(DeleteImageProperty(image,property));
+ return(DeleteImageProperty(image,property)); /* delete if NULL */
status=MagickTrue;
-
- /* Do not 'set' single letter properties - read only shorthand */
if (strlen(property) <= 1)
{
- (void) ThrowMagickException(exception,GetMagickModule(),
- OptionError,"SetReadOnlyProperty","`%s'",property);
+ /*
+ Do not 'set' single letter properties - read only shorthand.
+ */
+ (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
+ "SetReadOnlyProperty","`%s'",property);
return(MagickFalse);
}
/* FUTURE: binary chars or quotes in key should produce a error */
-
-
/* Set attributes with known names or special prefixes
return result is found, or break to set a free form properity
*/
{
if (LocaleCompare("channels",property) == 0)
{
- (void) ThrowMagickException(exception,GetMagickModule(),
- OptionError,"SetReadOnlyProperty","`%s'",property);
+ (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
+ "SetReadOnlyProperty","`%s'",property);
return(MagickFalse);
}
if (LocaleCompare("colorspace",property) == 0)