83 #define DelegateFilename "delegates.xml" 90 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" 92 " <delegate decode=\"bpg\" command=\""bpgdec" -b 16 -o "%o.png" "%i"; mv "%o.png" "%o"\"/>" 93 " <delegate decode=\"png\" encode=\"bpg\" command=\""bpgenc" -b 12 -q %~ -o "%o" "%i"\"/>" 94 " <delegate decode=\"browse\" stealth=\"True\" spawn=\"True\" command=\""xdg-open" https://imagemagick.org/; rm "%i"\"/>" 95 " <delegate decode=\"cdr\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 96 " <delegate decode=\"cgm\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 97 " <delegate decode=\"https\" command=\""curl" -s -k -L -o "%o" "https:%M"\"/>" 98 " <delegate decode=\"doc\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 99 " <delegate decode=\"docx\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 100 " <delegate decode=\"dng:decode\" command=\""ufraw-batch" --silent --create-id=also --out-type=png --out-depth=16 "--output=%u.png" "%i"\"/>" 101 " <delegate decode=\"dot\" command=\""dot" -Tsvg "%i" -o "%o"\"/>" 102 " <delegate decode=\"dvi\" command=\""dvips" -sstdout=%%stderr -o "%o" "%i"\"/>" 103 " <delegate decode=\"dxf\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 104 " <delegate decode=\"edit\" stealth=\"True\" command=\""xterm" -title "Edit Image Comment" -e vi "%o"\"/>" 105 " <delegate decode=\"eps\" encode=\"pdf\" mode=\"bi\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 "-sDEVICE=pdfwrite" "-sOutputFile=%o" "-f%i"\"/>" 106 " <delegate decode=\"eps\" encode=\"ps\" mode=\"bi\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=ps2write" "-sOutputFile=%o" "-f%i"\"/>" 107 " <delegate decode=\"fig\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 108 " <delegate decode=\"hpg\" command=\""hp2xx" -sstdout=%%stderr -m eps -f `basename "%o"` "%i"; mv -f `basename "%o"` "%o"\"/>" 109 " <delegate decode=\"hpgl\" command=\""hp2xx" -sstdout=%%stderr -m eps -f `basename "%o"` "%i"; mv -f `basename "%o"` "%o"\"/>" 110 " <delegate decode=\"htm\" command=\""html2ps" -U -o "%o" "%i"\"/>" 111 " <delegate decode=\"html\" command=\""html2ps" -U -o "%o" "%i"\"/>" 112 " <delegate decode=\"ilbm\" command=\""ilbmtoppm" "%i" > "%o"\"/>" 113 " <delegate decode=\"jpg\" encode=\"lep\" mode=\"encode\" command=\""lepton" "%i" "%o"\"/>" 114 " <delegate decode=\"jxr\" command=\"mv "%i" "%i.jxr"; "JxrDecApp" -i "%i.jxr" -o "%o.pnm"; mv "%i.jxr" "%i"; mv "%o.pnm" "%o"\"/>" 115 " <delegate decode=\"lep\" mode=\"decode\" command=\""lepton" "%i" "%o"\"/>" 116 " <delegate decode=\"odt\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 117 " <delegate decode=\"pcl:cmyk\" stealth=\"True\" command=\""pcl6" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s"\"/>" 118 " <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"\"/>" 119 " <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"\"/>" 120 " <delegate decode=\"pdf\" encode=\"eps\" mode=\"bi\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sPDFPassword="%a" "-sDEVICE=eps2write" "-sOutputFile=%o" "-f%i"\"/>" 121 " <delegate decode=\"pdf\" encode=\"ps\" mode=\"bi\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=ps2write" -sPDFPassword="%a" "-sOutputFile=%o" "-f%i"\"/>" 122 " <delegate decode=\"png\" encode=\"webp\" command=\""cwebp" -quiet -q %Q "%i" -o "%o"\"/>" 123 " <delegate decode=\"pnm\" encode=\"ilbm\" mode=\"encode\" command=\""ppmtoilbm" -24if "%i" > "%o"\"/>" 124 " <delegate decode=\"bmp\" encode=\"jxr\" command=\"mv "%i" "%i.bmp"; "JxrEncApp" -i "%i.bmp" -o "%o.jxr"; mv "%i.bmp" "%i"; mv "%o.jxr" "%o"\"/>" 125 " <delegate decode=\"bmp\" encode=\"wdp\" command=\"mv "%i" "%i.bmp"; "JxrEncApp" -i "%i.bmp" -o "%o.jxr"; mv "%i.bmp" "%i"; mv "%o.jxr" "%o"\"/>" 126 " <delegate decode=\"ppt\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 127 " <delegate decode=\"pptx\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 128 " <delegate decode=\"ps\" encode=\"prt\" command=\""lpr" "%i"\"/>" 129 " <delegate decode=\"ps:alpha\" stealth=\"True\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s"\"/>" 130 " <delegate decode=\"ps:cmyk\" stealth=\"True\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s"\"/>" 131 " <delegate decode=\"ps:color\" stealth=\"True\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pnmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s"\"/>" 132 " <delegate decode=\"ps\" encode=\"eps\" mode=\"bi\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=eps2write" "-sOutputFile=%o" "-f%i"\"/>" 133 " <delegate decode=\"ps\" encode=\"pdf\" mode=\"bi\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pdfwrite" "-sOutputFile=%o" "-f%i"\"/>" 134 " <delegate decode=\"ps\" encode=\"print\" mode=\"encode\" command=\"lpr "%i"\"/>" 135 " <delegate decode=\"ps:mono\" stealth=\"True\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pbmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s"\"/>" 136 " <delegate decode=\"shtml\" command=\""html2ps" -U -o "%o" "%i"\"/>" 137 " <delegate decode=\"sid\" command=\""mrsidgeodecode" -if sid -i "%i" -of tif -o "%o" > "%u"\"/>" 138 " <delegate decode=\"svg\" command=\""rsvg-convert" -o "%o" "%i"\"/>" 139 " <delegate decode=\"svg:decode\" stealth=\"True\" command=\""inkscape" "%s" --export-png="%s" --export-dpi="%s" --export-background="%s" --export-background-opacity="%s" > "%s" 2>&1\"/>" 140 " <delegate decode=\"tiff\" encode=\"launch\" mode=\"encode\" command=\""gimp" "%i"\"/>" 141 " <delegate decode=\"wdp\" command=\"mv "%i" "%i.jxr"; "JxrDecApp" -i "%i.jxr" -o "%o.bmp"; mv "%i.jxr" "%i"; mv "%o.bmp" "%o"\"/>" 142 " <delegate decode=\"webp\" command=\""dwebp" -pam "%i" -o "%o"\"/>" 143 " <delegate decode=\"xls\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 144 " <delegate decode=\"xlsx\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 145 " <delegate decode=\"xps:cmyk\" stealth=\"True\" command=\""gxps" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=bmpsep8" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s"\"/>" 146 " <delegate decode=\"xps:color\" stealth=\"True\" command=\""gxps" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=ppmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s"\"/>" 147 " <delegate decode=\"xps:mono\" stealth=\"True\" command=\""gxps" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pbmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s"\"/>" 148 " <delegate decode=\"mpeg:decode\" command=\""ffmpeg" -v -1 -i "%i" -vframes %S -vcodec pam -an -f rawvideo -y "%u.pam" 2> "%u"\"/>" 149 " <delegate encode=\"mpeg:encode\" stealth=\"True\" command=\""ffmpeg" -v -1 -i "%M%%d.jpg" -plays %I "%u.%m" 2> "%u"\"/>" 206 #if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT 280 if (p->
path != (
char *) NULL)
282 if (p->
decode != (
char *) NULL)
284 if (p->
encode != (
char *) NULL)
291 return((
void *) NULL);
364 if (arguments == (
char **) NULL)
366 if (*arguments[1] ==
'\0')
368 for (i=0; i < (ssize_t) number_arguments; i++)
379 "NotAuthorized",
"`%s'",arguments[1]);
380 for (i=0; i < (ssize_t) number_arguments; i++)
388 (void) fflush(stderr);
393 if (message != (
char *) NULL)
395 #if defined(MAGICKCORE_POSIX_SUPPORT) 396 #if defined(MAGICKCORE_HAVE_POPEN) 397 if ((asynchronous ==
MagickFalse) && (message != (
char *) NULL))
410 if (file == (FILE *) NULL)
411 status=system(sanitize_command);
414 while (fgets(buffer,(
int)
sizeof(buffer),file) != NULL)
432 #if !defined(MAGICKCORE_HAVE_EXECVP) 433 status=system(sanitize_command);
436 (strpbrk(sanitize_command,
"&;<>|") != (
char *) NULL))
437 status=system(sanitize_command);
446 child_pid=(pid_t) fork();
447 if (child_pid == (pid_t) -1)
448 status=system(sanitize_command);
452 status=execvp(arguments[1],arguments+1);
464 pid=(pid_t) waitpid(child_pid,&child_status,0);
469 if (WIFEXITED(child_status) != 0)
470 status=WEXITSTATUS(child_status);
472 if (WIFSIGNALED(child_status))
479 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 492 p=strstr(sanitize_command,
"cmd.exe /c");
493 if (p != (
char*) NULL)
496 for ( ; *p !=
'\0'; p++)
498 *p=(*DirectorySeparator);
501 status=NTSystemCommand(sanitize_command,message);
503 status=system(sanitize_command);
505 # error No suitable system() method. 509 if ((message != (
char *) NULL) && (*message !=
'\0'))
511 "FailedToExecuteCommand",
"`%s' (%s)",sanitize_command,message);
514 "FailedToExecuteCommand",
"`%s' (%d)",sanitize_command,status);
517 for (i=0; i < (ssize_t) number_arguments; i++)
564 #define WarnNoImageReturn(format,letter) \ 565 if (image == (Image *) NULL) \ 567 (void) ThrowMagickException(exception,GetMagickModule(),OptionWarning, \ 568 "NoImageForProperty",format,letter); \ 571 #define WarnNoImageInfoReturn(format,letter) \ 572 if (image_info == (ImageInfo *) NULL) \ 574 (void) ThrowMagickException(exception,GetMagickModule(),OptionWarning, \ 575 "NoImageInfoForProperty",format,letter); \ 588 if ((image_info != (
ImageInfo *) NULL) &&
595 string=(
const char *) value;
636 "%.20gx%.20g%+.20g%+.20g",(
double) image->
page.
width,(double)
661 if (image != (
Image *) NULL)
718 string=image_info->
unique;
750 (
double) image->
depth);
857 (ssize_t) image->
units);
894 "%.20gx%.20g%+.20g%+.20g",(
double) page.
width,(double) page.
height,
895 (
double) page.
x,(double) page.
y);
915 #define ExtendInterpretText(string_length) \ 917 size_t length=(string_length); \ 918 if ((size_t) (q-interpret_text+length+1) >= extent) \ 921 interpret_text=(char *) ResizeQuantumMemory(interpret_text,extent+ \ 922 MaxTextExtent,sizeof(*interpret_text)); \ 923 if (interpret_text == (char *) NULL) \ 924 return((char *) NULL); \ 925 q=interpret_text+strlen(interpret_text); \ 929 #define AppendKeyValue2Text(key,value)\ 931 size_t length=strlen(key)+strlen(value)+2; \ 932 if ((size_t) (q-interpret_text+length+1) >= extent) \ 935 interpret_text=(char *) ResizeQuantumMemory(interpret_text,extent+ \ 936 MaxTextExtent,sizeof(*interpret_text)); \ 937 if (interpret_text == (char *) NULL) \ 938 return((char *) NULL); \ 939 q=interpret_text+strlen(interpret_text); \ 941 q+=FormatLocaleString(q,extent,"%s=%s\n",(key),(value)); \ 944 #define AppendString2Text(string) \ 946 size_t length=strlen((string)); \ 947 if ((size_t) (q-interpret_text+length+1) >= extent) \ 950 interpret_text=(char *) ResizeQuantumMemory(interpret_text,extent+ \ 951 MaxTextExtent,sizeof(*interpret_text)); \ 952 if (interpret_text == (char *) NULL) \ 953 return((char *) NULL); \ 954 q=interpret_text+strlen(interpret_text); \ 956 (void) CopyMagickString(q,(string),extent); \ 983 if (embed_text == (
const char *) NULL)
986 while ((isspace((
int) ((
unsigned char) *p)) != 0) && (*p !=
'\0'))
996 for (q=interpret_text; *p!=
'\0';
1079 if ((*p ==
'\0') || (*p ==
'\'') || (*p ==
'"'))
1099 if (
string != (
char *) NULL)
1106 "UnknownImageProperty",
"\"%%%c\"",*p);
1109 return(interpret_text);
1113 const char *decode,
const char *encode,
ExceptionInfo *exception)
1125 assert(image_info != (
ImageInfo *) NULL);
1127 assert(image != (
Image *) NULL);
1136 "NoTagFound",
"`%s'",decode ? decode : encode);
1137 return((
char *) NULL);
1140 if (commands == (
char **) NULL)
1145 return((
char *) NULL);
1148 commands[0],exception);
1149 if (command == (
char *) NULL)
1151 "MemoryAllocationFailed",
"`%s'",commands[0]);
1155 for (i=0; commands[i] != (
char *) NULL; i++)
1304 #if defined(__cplusplus) || defined(c_plusplus) 1322 if ((*p)->decode == (
char *) NULL)
1323 if (((*p)->encode != (
char *) NULL) &&
1324 ((*q)->encode != (
char *) NULL))
1325 return(strcmp((*p)->encode,(*q)->encode));
1326 if (((*p)->decode != (
char *) NULL) &&
1327 ((*q)->decode != (
char *) NULL))
1328 return(strcmp((*p)->decode,(*q)->decode));
1333 #if defined(__cplusplus) || defined(c_plusplus) 1352 assert(number_delegates != (
size_t *) NULL);
1353 assert(pattern != (
char *) NULL);
1356 *number_delegates=0;
1381 *number_delegates=(size_t) i;
1415 #if defined(__cplusplus) || defined(c_plusplus) 1425 p=(
const char **) x;
1426 q=(
const char **) y;
1430 #if defined(__cplusplus) || defined(c_plusplus) 1449 assert(pattern != (
char *) NULL);
1452 assert(number_delegates != (
size_t *) NULL);
1453 *number_delegates=0;
1456 return((
char **) NULL);
1459 if (delegates == (
char **) NULL)
1460 return((
char **) NULL);
1475 qsort((
void *) delegates,(
size_t) i,
sizeof(*delegates),
DelegateCompare);
1476 delegates[i]=(
char *) NULL;
1477 *number_delegates=(size_t) i;
1509 return(delegate_info->
mode);
1642 assert(source != (
const char *) NULL);
1643 assert(destination != (
char *) NULL);
1651 if (destination_file == -1)
1654 if (source_file == -1)
1656 (void) close(destination_file);
1660 if ((fstat(source_file,&attributes) == 0) && (attributes.st_size > 0))
1663 if (buffer == (
unsigned char *) NULL)
1665 (void) close(source_file);
1666 (void) close(destination_file);
1670 for (i=0; ; i+=count)
1672 count=(ssize_t) read(source_file,buffer,quantum);
1675 length=(size_t) count;
1676 count=(ssize_t) write(destination_file,buffer,length);
1677 if ((
size_t) count != length)
1680 (void) close(destination_file);
1681 (void) close(source_file);
1711 assert(image_info != (
ImageInfo *) NULL);
1713 assert(image != (
Image *) NULL);
1722 "NotAuthorized",
"`%s'",decode);
1729 "NotAuthorized",
"`%s'",encode);
1746 "NoTagFound",
"`%s'",decode ? decode : encode);
1756 "UnableToCreateTemporaryFile",image_info->
filename);
1761 if ((delegate_info->
mode != 0) && (((decode != (
const char *) NULL) &&
1762 (delegate_info->
encode != (
char *) NULL)) ||
1763 ((encode != (
const char *) NULL) &&
1764 (delegate_info->
decode != (
char *) NULL))))
1781 "UnableToCreateTemporaryFile",image_info->
unique);
1785 delegate_info->
encode : delegate_info->
decode,exception);
1786 if (magick == (
char *) NULL)
1792 DelegateError,
"DelegateFailed",
"`%s'",decode ? decode : encode);
1822 DelegateError,
"DelegateFailed",
"`%s'",decode ? decode : encode);
1835 if (commands == (
char **) NULL)
1841 decode ? decode : encode);
1844 command=(
char *) NULL;
1849 for (i=0; commands[i] != (
char *) NULL; i++)
1855 "UnableToCreateTemporaryFile",image_info->
unique);
1864 "UnableToCreateTemporaryFile",input_filename);
1870 if (command != (
char *) NULL)
1876 command,(
char *) NULL,exception) != 0)
1897 if ((strcmp(input_filename,output_filename) != 0) &&
1908 "DelegateFailed",
"`%s'",commands[i]);
1919 for ( ; commands[i] != (
char *) NULL; i++)
1973 if (file == (
const FILE *) NULL)
1978 path=(
const char *) NULL;
1979 for (i=0; i < (ssize_t) number_delegates; i++)
1983 if ((path == (
const char *) NULL) ||
1986 if (delegate_info[i]->path != (
char *) NULL)
1990 "-------------------------------------------------" 1991 "------------------------------\n");
1993 path=delegate_info[i]->
path;
1995 if (delegate_info[i]->encode != (
char *) NULL)
2001 if (commands == (
char **) NULL)
2004 delegate_info[i]->decode :
"",delegate_info[i]->mode <= 0 ?
'<' :
' ',
2005 delegate_info[i]->mode >= 0 ?
'>' :
' ',delegate);
2008 for (j=1; commands[j] != (
char *) NULL; j++)
2013 for (j=0; commands[j] != (
char *) NULL; j++)
2017 (void) fflush(file);
2055 const char *xml,
const char *filename,
const size_t depth,
2078 "Loading delegate configuration file \"%s\" ...",filename);
2079 if (xml == (
const char *) NULL)
2085 for (q=(
const char *) xml; *q !=
'\0'; )
2117 while (((*token !=
'/') && (*(token+1) !=
'>')) && (*q !=
'\0'))
2144 if (file_xml != (
char *) NULL)
2161 sizeof(*delegate_info));
2162 (void) memset(delegate_info,0,
sizeof(*delegate_info));
2181 (void)
GetNextToken(q,(
const char **) NULL,extent,token);
2197 #if defined(MAGICKCORE_WINDOWS_SUPPORT) 2198 if (strchr(commands,
'@') != (
char *) NULL)
2226 delegate_info->
mode=1;
2237 delegate_info->
mode=(-1);
2247 delegate_info->
mode=1;
2249 delegate_info->
mode=0;
2252 delegate_info->
mode=(-1);
MagickExport ssize_t FormatMagickSize(const MagickSizeType size, const MagickBooleanType bi, const char *suffix, const size_t length, char *format)
static int DelegateCompare(const void *x, const void *y)
#define MagickMaxRecursionDepth
MagickExport MagickBooleanType GetPathAttributes(const char *path, void *attributes)
char magick[MagickPathExtent]
MagickExport MagickBooleanType GetDelegateThreadSupport(const DelegateInfo *delegate_info)
MagickExport MagickBooleanType IsRightsAuthorized(const PolicyDomain domain, const PolicyRights rights, const char *pattern)
MagickExport size_t ConcatenateMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
MagickExport void ResetLinkedListIterator(LinkedListInfo *list_info)
MagickExport const DelegateInfo ** GetDelegateInfoList(const char *pattern, size_t *number_delegates, ExceptionInfo *exception)
static SemaphoreInfo * delegate_semaphore
MagickExport LinkedListInfo * DestroyLinkedList(LinkedListInfo *list_info, void *(*relinquish_value)(void *))
static MagickBooleanType IsDelegateCacheInstantiated(ExceptionInfo *)
#define WarnNoImageReturn(format, letter)
#define WarnNoImageInfoReturn(format, letter)
MagickExport SemaphoreInfo * AcquireSemaphoreInfo(void)
MagickExport MagickBooleanType InsertValueInLinkedList(LinkedListInfo *list_info, const size_t index, const void *value)
MagickExport char ** GetDelegateList(const char *pattern, size_t *number_delegates, ExceptionInfo *exception)
MagickExport const DelegateInfo * GetDelegateInfo(const char *decode, const char *encode, ExceptionInfo *exception)
#define MagickMaxBufferExtent
MagickExport char * SanitizeString(const char *source)
static FILE * popen_utf8(const char *command, const char *type)
MagickExport MagickBooleanType IsLinkedListEmpty(const LinkedListInfo *list_info)
MagickExport MagickBooleanType AppendValueToLinkedList(LinkedListInfo *list_info, const void *value)
MagickExport ssize_t FormatLocaleString(char *magick_restrict string, const size_t length, const char *magick_restrict format,...)
MagickExport ssize_t GetDelegateMode(const DelegateInfo *delegate_info)
MagickExport size_t CopyMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
MagickExport MagickBooleanType SignatureImage(Image *image, ExceptionInfo *exception)
MagickExport void * RemoveElementByValueFromLinkedList(LinkedListInfo *list_info, const void *value)
char magick[MagickPathExtent]
#define MAGICKCORE_QUANTUM_DEPTH
#define DefaultResolution
MagickBooleanType verbose
MagickExport const char * GetDelegateCommands(const DelegateInfo *delegate_info)
MagickExport const char * GetImageOption(const ImageInfo *image_info, const char *option)
CompressionType compression
MagickExport void StripString(char *message)
MagickExport MagickBooleanType AcquireUniqueFilename(char *path)
MagickBooleanType thread_support
SemaphoreInfo * semaphore
MagickExport void * GetNextValueInLinkedList(LinkedListInfo *list_info)
MagickExport MagickBooleanType SetImageGray(Image *image, ExceptionInfo *exception)
static char * InterpretDelegateProperties(ImageInfo *image_info, Image *image, const char *embed_text, ExceptionInfo *exception)
static char * GetMagickPropertyLetter(ImageInfo *image_info, Image *image, const char letter, ExceptionInfo *exception)
#define MagickCoreSignature
MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
MagickExport unsigned char * GetStringInfoDatum(const StringInfo *string_info)
static MagickBooleanType LoadDelegateCache(LinkedListInfo *, const char *, const char *, const size_t, ExceptionInfo *)
MagickExport void GetPathComponent(const char *path, PathType type, char *component)
static MagickBooleanType CopyDelegateFile(const char *source, const char *destination, const MagickBooleanType overwrite)
MagickExport ssize_t FormatLocaleFile(FILE *file, const char *magick_restrict format,...)
MagickExport char ** StringToList(const char *text)
#define DirectorySeparator
unsigned int MagickStatusType
MagickExport char * AcquireString(const char *source)
MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info, Image *image, ExceptionInfo *exception)
MagickExport MagickBooleanType GlobExpression(const char *magick_restrict expression, const char *magick_restrict pattern, const MagickBooleanType case_insensitive)
MagickExport const char * CommandOptionToMnemonic(const CommandOption option, const ssize_t type)
MagickExport void * AcquireCriticalMemory(const size_t size)
MagickPrivate void DelegateComponentTerminus(void)
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
char filename[MagickPathExtent]
MagickExport char * GetDelegateCommand(const ImageInfo *image_info, Image *image, const char *decode, const char *encode, ExceptionInfo *exception)
MagickExport int LocaleNCompare(const char *p, const char *q, const size_t length)
MagickExport magick_hot_spot size_t GetNextToken(const char *magick_restrict start, const char **magick_restrict end, const size_t extent, char *magick_restrict token)
MagickExport MagickBooleanType RelinquishUniqueFileResource(const char *path)
MagickExport void MagickDelay(const MagickSizeType milliseconds)
MagickExport MagickBooleanType IsStringTrue(const char *value)
#define ThrowFileException(exception, severity, tag, context)
MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info, const unsigned int frames, ExceptionInfo *exception)
char magick_filename[MagickPathExtent]
MagickExport MagickBooleanType ThrowMagickException(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format,...)
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
static int open_utf8(const char *path, int flags, mode_t mode)
MagickExport MagickBooleanType AcquireUniqueSymbolicLink(const char *source, char *destination)
MagickExport MagickBooleanType SubstituteString(char **string, const char *search, const char *replace)
MagickExport LinkedListInfo * NewLinkedList(const size_t capacity)
MagickPrivate MagickBooleanType DelegateComponentGenesis(void)
MagickExport int ExternalDelegateCommand(const MagickBooleanType asynchronous, const MagickBooleanType verbose, const char *command, char *message, ExceptionInfo *exception)
static void * DestroyDelegate(void *delegate_info)
#define AppendString2Text(string)
MagickExport int LocaleCompare(const char *p, const char *q)
char filename[MagickPathExtent]
#define GetMagickModule()
MagickBooleanType stealth
MagickExport const char * GetStringInfoPath(const StringInfo *string_info)
MagickExport char * InterpretImageProperties(ImageInfo *image_info, Image *image, const char *embed_text, ExceptionInfo *exception)
MagickExport MagickSizeType GetBlobSize(const Image *image)
char unique[MagickPathExtent]
MagickExport ImageInfo * DestroyImageInfo(ImageInfo *image_info)
static char * SanitizeDelegateString(const char *source)
static LinkedListInfo * delegate_cache
MagickExport MagickBooleanType ListDelegateInfo(FILE *file, ExceptionInfo *exception)
MagickExport RectangleInfo GetImageBoundingBox(const Image *image, ExceptionInfo *exception)
static const char * DelegateMap
MagickExport ssize_t GetImageIndexInList(const Image *images)
MagickExport Image * GetNextImageInList(const Image *images)
MagickExport char * DestroyString(char *string)
MagickExport void ActivateSemaphoreInfo(SemaphoreInfo **semaphore_info)
MagickExport const char * GetImageProperty(const Image *image, const char *property, ExceptionInfo *exception)
MagickExport size_t GetNumberOfElementsInLinkedList(const LinkedListInfo *list_info)
MagickExport ImageInfo * CloneImageInfo(const ImageInfo *image_info)
#define ExtendInterpretText(string_length)
static int access_utf8(const char *path, int mode)
static LinkedListInfo * AcquireDelegateCache(const char *filename, ExceptionInfo *exception)
MagickExport void * RelinquishMagickMemory(void *memory)
MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info, Image *image, const char *decode, const char *encode, ExceptionInfo *exception)
MagickPrivate char * FileToXML(const char *, const size_t)
MagickExport char ** StringToArgv(const char *text, int *argc)
MagickExport size_t GetImageListLength(const Image *images)
MagickExport void RelinquishSemaphoreInfo(SemaphoreInfo **semaphore_info)
MagickExport void LocaleUpper(char *string)
MagickExport char * ConstantString(const char *source)
static int DelegateInfoCompare(const void *x, const void *y)
ColorspaceType colorspace
MagickBooleanType temporary