" <delegate decode=\"https\" command=\""wget" -q -O "%o" "https:%M"\"/>"
" <delegate decode=\"ilbm\" command=\""ilbmtoppm" "%i" > "%o"\"/>"
" <delegate decode=\"man\" command=\""groff" -man -Tps "%i" > "%o"\"/>"
- " <delegate decode=\"mpeg:decode\" stealth=\"True\" command=\""ffmpeg" -v -1 -vframes %S -i "%i" -vcodec pam -an -f rawvideo -y "%u.pam" 2> "%Z"\"/>"
- " <delegate decode=\"null\" encode=\"mpeg:encode\" stealth=\"True\" command=\""ffmpeg" -v -1 -mbd rd -trellis 2 -cmp 2 -subcmp 2 -g 300 -i "%M%%d.jpg" "%u.%m" 2> "%Z"\"/>"
+ " <delegate decode=\"mpeg:decode\" stealth=\"True\" command=\""ffmpeg" -nostdin -v -1 -vframes %S -i "%i" -vcodec pam -an -f rawvideo -y "%u.pam" 2> "%Z"\"/>"
+ " <delegate decode=\"null\" encode=\"mpeg:encode\" stealth=\"True\" command=\""ffmpeg" -nostdin -v -1 -mbd rd -trellis 2 -cmp 2 -subcmp 2 -g 300 -i "%M%%d.jpg" "%u.%m" 2> "%Z"\"/>"
" <delegate decode=\"pcl:color\" stealth=\"True\" command=\""pcl6" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=ppmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s"\"/>"
" <delegate decode=\"pcl:cmyk\" stealth=\"True\" command=\""pcl6" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=bmpsep8" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s"\"/>"
" <delegate decode=\"pcl:mono\" stealth=\"True\" command=\""pcl6" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pbmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s"\"/>"
static char
whitelist[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_- "
- ".@&;<>()|/\\\'\":%=~";
+ ".@&;<>()|/\\\'\":%=~`";
sanitize_command=AcquireString(command);
p=sanitize_command;
i;
assert(image_info != (ImageInfo *) NULL);
- assert(image_info->signature == MagickSignature);
+ assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
- assert(image->signature == MagickSignature);
+ assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
assert(delegate_info != (DelegateInfo *) NULL);
- assert(delegate_info->signature == MagickSignature);
+ assert(delegate_info->signature == MagickCoreSignature);
return(delegate_info->commands);
}
\f
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
assert(delegate_info != (DelegateInfo *) NULL);
- assert(delegate_info->signature == MagickSignature);
+ assert(delegate_info->signature == MagickCoreSignature);
return(delegate_info->mode);
}
\f
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
assert(delegate_info != (DelegateInfo *) NULL);
- assert(delegate_info->signature == MagickSignature);
+ assert(delegate_info->signature == MagickCoreSignature);
return(delegate_info->thread_support);
}
\f
delegate_cache=AcquireDelegateCache(DelegateFilename,exception);
UnlockSemaphoreInfo(delegate_semaphore);
}
- return(IsMagickNotNULL(delegate_cache));
+ return(delegate_cache != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse);
}
\f
/*
*/
static MagickBooleanType CopyDelegateFile(const char *source,
- const char *destination)
+ const char *destination,const MagickBooleanType overwrite)
{
int
destination_file,
*/
assert(source != (const char *) NULL);
assert(destination != (char *) NULL);
- status=GetPathAttributes(destination,&attributes);
- if (status != MagickFalse)
- return(MagickTrue);
+ if (overwrite == MagickFalse)
+ {
+ status=GetPathAttributes(destination,&attributes);
+ if (status != MagickFalse)
+ return(MagickTrue);
+ }
destination_file=open_utf8(destination,O_WRONLY | O_BINARY | O_CREAT,S_MODE);
if (destination_file == -1)
return(MagickFalse);
return(MagickFalse);
}
quantum=(size_t) MagickMaxBufferExtent;
- if ((fstat(source_file,&attributes) == 0) && (attributes.st_size != 0))
+ if ((fstat(source_file,&attributes) == 0) && (attributes.st_size > 0))
quantum=MagickMin((size_t) attributes.st_size,MagickMaxBufferExtent);
buffer=(unsigned char *) AcquireQuantumMemory(quantum,sizeof(*buffer));
if (buffer == (unsigned char *) NULL)
(void) close(destination_file);
(void) close(source_file);
buffer=(unsigned char *) RelinquishMagickMemory(buffer);
- return(IsMagickTrue(i!=0));
+ return(i != 0 ? MagickTrue : MagickFalse);
}
MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info,
Get delegate.
*/
assert(image_info != (ImageInfo *) NULL);
- assert(image_info->signature == MagickSignature);
+ assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
- assert(image->signature == MagickSignature);
+ assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
rights=ExecutePolicyRights;
- if( IfMagickFalse(IsRightsAuthorized(DelegatePolicyDomain,rights,decode)) )
+ if (IsRightsAuthorized(DelegatePolicyDomain,rights,decode) == MagickFalse)
{
errno=EPERM;
(void) ThrowMagickException(exception,GetMagickModule(),PolicyError,
"NotAuthorized","`%s'",decode);
return(MagickFalse);
}
- if( IfMagickFalse(IsRightsAuthorized(DelegatePolicyDomain,rights,encode)) )
+ if (IsRightsAuthorized(DelegatePolicyDomain,rights,encode) == MagickFalse)
{
errno=EPERM;
(void) ThrowMagickException(exception,GetMagickModule(),PolicyError,
"NotAuthorized","`%s'",encode);
return(MagickFalse);
}
- temporary=IsMagickTrue(*image->filename == '\0');
- if( IfMagickTrue(temporary) )
- if( IfMagickFalse(AcquireUniqueFilename(image->filename)) )
- {
- ThrowFileException(exception,FileOpenError,
- "UnableToCreateTemporaryFile",image->filename);
- return(MagickFalse);
- }
+ temporary=*image->filename == '\0' ? MagickTrue : MagickFalse;
+ if ((temporary != MagickFalse) && (AcquireUniqueFilename(image->filename) ==
+ MagickFalse))
+ {
+ ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
+ image->filename);
+ return(MagickFalse);
+ }
delegate_info=GetDelegateInfo(decode,encode,exception);
if (delegate_info == (DelegateInfo *) NULL)
{
- if( IfMagickTrue(temporary) )
+ if (temporary != MagickFalse)
(void) RelinquishUniqueFileResource(image->filename);
(void) ThrowMagickException(exception,GetMagickModule(),DelegateError,
"NoTagFound","`%s'",decode ? decode : encode);
}
if (*image_info->filename == '\0')
{
- if( IfMagickFalse(AcquireUniqueFilename(image_info->filename)) )
+ if (AcquireUniqueFilename(image_info->filename) == MagickFalse)
{
- if( IfMagickTrue(temporary) )
+ if (temporary != MagickFalse)
(void) RelinquishUniqueFileResource(image->filename);
ThrowFileException(exception,FileOpenError,
"UnableToCreateTemporaryFile",image_info->filename);
/*
Delegate requires a particular image format.
*/
- if( IfMagickFalse(AcquireUniqueFilename(image_info->unique)) )
+ if (AcquireUniqueFilename(image_info->unique) == MagickFalse)
{
ThrowFileException(exception,FileOpenError,
"UnableToCreateTemporaryFile",image_info->unique);
return(MagickFalse);
}
- if( IfMagickFalse(AcquireUniqueFilename(image_info->zero)) )
+ if (AcquireUniqueFilename(image_info->zero) == MagickFalse)
{
(void) RelinquishUniqueFileResource(image_info->unique);
ThrowFileException(exception,FileOpenError,
{
(void) RelinquishUniqueFileResource(image_info->unique);
(void) RelinquishUniqueFileResource(image_info->zero);
- if( IfMagickTrue(temporary) )
+ if (temporary != MagickFalse)
(void) RelinquishUniqueFileResource(image->filename);
(void) ThrowMagickException(exception,GetMagickModule(),
DelegateError,"DelegateFailed","`%s'",decode ? decode : encode);
(void) FormatLocaleString(p->filename,MagickPathExtent,"%s:%s",
delegate_info->decode,clone_info->filename);
status=WriteImage(clone_info,p,exception);
- if( IfMagickFalse(status) )
+ if (status == MagickFalse)
{
(void) RelinquishUniqueFileResource(image_info->unique);
(void) RelinquishUniqueFileResource(image_info->zero);
- if( IfMagickTrue(temporary) )
+ if (temporary != MagickFalse)
(void) RelinquishUniqueFileResource(image->filename);
clone_info=DestroyImageInfo(clone_info);
(void) ThrowMagickException(exception,GetMagickModule(),
DelegateError,"DelegateFailed","`%s'",decode ? decode : encode);
return(MagickFalse);
}
- if( IfMagickTrue(clone_info->adjoin) )
+ if (clone_info->adjoin != MagickFalse)
break;
}
(void) RelinquishUniqueFileResource(image_info->unique);
return(MagickFalse);
}
command=(char *) NULL;
- status=MagickFalse;
- (void) CopyMagickString(output_filename,image_info->filename,MagickPathExtent);
+ status=MagickTrue;
+ (void) CopyMagickString(output_filename,image_info->filename,
+ MagickPathExtent);
(void) CopyMagickString(input_filename,image->filename,MagickPathExtent);
for (i=0; commands[i] != (char *) NULL; i++)
{
- status=AcquireUniqueSymbolicLink(output_filename,image_info->filename);
- if( IfMagickFalse(AcquireUniqueFilename(image_info->unique)) )
+ (void) AcquireUniqueSymbolicLink(output_filename,image_info->filename);
+ if (AcquireUniqueFilename(image_info->unique) == MagickFalse)
{
ThrowFileException(exception,FileOpenError,
"UnableToCreateTemporaryFile",image_info->unique);
break;
}
- if( IfMagickFalse(AcquireUniqueFilename(image_info->zero)) )
+ if (AcquireUniqueFilename(image_info->zero) == MagickFalse)
{
(void) RelinquishUniqueFileResource(image_info->unique);
ThrowFileException(exception,FileOpenError,
if (LocaleCompare(decode,"SCAN") != 0)
{
status=AcquireUniqueSymbolicLink(input_filename,image->filename);
- if( IfMagickFalse(status) )
+ if (status == MagickFalse)
{
ThrowFileException(exception,FileOpenError,
"UnableToCreateTemporaryFile",input_filename);
break;
}
}
- status=MagickFalse;
+ status=MagickTrue;
command=InterpretImageProperties(image_info,image,commands[i],exception);
if (command != (char *) NULL)
{
/*
Execute delegate.
*/
- status=IsMagickTrue(ExternalDelegateCommand(delegate_info->spawn,
- image_info->verbose,command,(char *) NULL,exception) != 0);
- if (IfMagickTrue(delegate_info->spawn))
+ if (ExternalDelegateCommand(delegate_info->spawn,image_info->verbose,
+ command,(char *) NULL,exception) != 0)
+ status=MagickFalse;
+ if (delegate_info->spawn != MagickFalse)
{
ssize_t
count;
}
if (LocaleCompare(decode,"SCAN") != 0)
{
- if (IfMagickFalse(CopyDelegateFile(image->filename,input_filename)))
+ if (CopyDelegateFile(image->filename,input_filename,MagickFalse) == MagickFalse)
(void) RelinquishUniqueFileResource(input_filename);
}
- if (IfMagickFalse(CopyDelegateFile(image_info->filename,output_filename)))
+ if (CopyDelegateFile(image_info->filename,output_filename,MagickTrue) == MagickFalse)
(void) RelinquishUniqueFileResource(output_filename);
- if( IfMagickTrue(image_info->temporary) )
+ if (image_info->temporary != MagickFalse)
(void) RelinquishUniqueFileResource(image_info->filename);
(void) RelinquishUniqueFileResource(image_info->unique);
(void) RelinquishUniqueFileResource(image_info->zero);
(void) RelinquishUniqueFileResource(image_info->filename);
(void) RelinquishUniqueFileResource(image->filename);
- if( IfMagickTrue(status) )
+ if (status == MagickFalse)
{
(void) ThrowMagickException(exception,GetMagickModule(),DelegateError,
"DelegateFailed","`%s'",commands[i]);
for ( ; commands[i] != (char *) NULL; i++)
commands[i]=DestroyString(commands[i]);
commands=(char **) RelinquishMagickMemory(commands);
- if( IfMagickTrue(temporary) )
+ if (temporary != MagickFalse)
(void) RelinquishUniqueFileResource(image->filename);
- return(IsMagickFalse(status));
+ return(status);
}
\f
/*
(void) ResetMagickMemory(delegate_info,0,sizeof(*delegate_info));
delegate_info->path=ConstantString(filename);
delegate_info->thread_support=MagickTrue;
- delegate_info->signature=MagickSignature;
+ delegate_info->signature=MagickCoreSignature;
continue;
}
if (delegate_info == (DelegateInfo *) NULL)