% 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 %
+% https://www.imagemagick.org/script/license.php %
% %
% Unless required by applicable law or agreed to in writing, software %
% distributed under the License is distributed on an "AS IS" BASIS, %
channel_mask;
char
+ *attribute,
key[MagickPathExtent],
*value;
const char
- *attribute,
*keyword;
double
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'A':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'S':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'B':
{
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'R':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'B':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'B':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'S':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'D':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
despeckle_image=DespeckleImage(msl_info->image[n],
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
default:
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'A':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
enhance_image=EnhanceImage(msl_info->image[n],
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
default:
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
flip_image=FlipImage(msl_info->image[n],
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
flop_image=FlopImage(msl_info->image[n],
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'B':
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'A':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
magnify_image=MagnifyImage(msl_info->image[n],
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'D':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'B':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
minify_image=MinifyImage(msl_info->image[n],
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'B':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'O':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
if (*keyword == '!')
{
/*
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'A':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'F':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
break;
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'F':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
break;
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'D':
break;
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'D':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'A':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
{
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'R':
break;
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'F':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
default:
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
break;
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'I':
break;
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'I':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
(void) StripImage(msl_info->image[n],msl_info->exception);
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'G':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'D':
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
default:
msl_info->attributes[n],(const char *) attributes[i],
exception);
CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'I':
break;
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
- keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ keyword=(const char *) attributes[i++];
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'T':
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'C':
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
keyword=(const char *) attributes[i++];
- CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],exception));
+ attribute=InterpretImageProperties(msl_info->image_info[n],
+ msl_info->attributes[n],(const char *) attributes[i],exception);
+ CloneString(&value,attribute);
+ attribute=DestroyString(attribute);
switch (*keyword)
{
case 'F':
break;
}
}
- if ( value != NULL )
+ if (value != (char *) NULL)
value=DestroyString(value);
(void) DestroyExceptionInfo(exception);
(void) LogMagickEvent(CoderEvent,GetMagickModule()," )");
else
{
msl_info->content=(char *) NULL;
- if (~length >= (MagickPathExtent-1))
+ if (~(size_t) length >= (MagickPathExtent-1))
msl_info->content=(char *) AcquireQuantumMemory(length+MagickPathExtent,
sizeof(*msl_info->content));
if (msl_info->content != (char *) NULL)
(msl_info.image == (Image **) NULL) ||
(msl_info.attributes == (Image **) NULL) ||
(msl_info.group_info == (MSLGroupInfo *) NULL))
- ThrowFatalException(ResourceLimitFatalError,
- "UnableToInterpretMSLImage");
+ ThrowFatalException(ResourceLimitFatalError,"UnableToInterpretMSLImage");
*msl_info.image_info=CloneImageInfo(image_info);
*msl_info.draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
*msl_info.attributes=AcquireImage(image_info,exception);
static MagickBooleanType WriteMSLImage(const ImageInfo *image_info,Image *image,
ExceptionInfo *exception)
{
+ Image
+ *msl_image;
+
+ MagickBooleanType
+ status;
+
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- (void) ReferenceImage(image);
- (void) ProcessMSLScript(image_info,&image,exception);
- return(MagickTrue);
+ msl_image=CloneImage(image,0,0,MagickTrue,exception);
+ status=ProcessMSLScript(image_info,&msl_image,exception);
+ msl_image=DestroyImage(msl_image);
+ return(status);
}
#endif