83 #if defined(__APPLE__) 84 #include "TargetConditionals.h" 85 #if TARGET_OS_IOS || TARGET_OS_WATCH || TARGET_OS_TV 86 #define system(s) ((s)==NULL ? 0 : -1) 88 #elif defined(__ANDROID__) 89 #define system(s) ((s)==NULL ? 0 : -1) 91 #define DelegateFilename "delegates.xml" 98 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" 100 " <delegate decode=\"bpg\" command=\""bpgdec" -b 16 -o "%o.png" "%i"; mv "%o.png" "%o"\"/>" 101 " <delegate decode=\"png\" encode=\"bpg\" command=\""bpgenc" -b 12 -q %~ -o "%o" "%i"\"/>" 102 " <delegate decode=\"browse\" stealth=\"True\" spawn=\"True\" command=\""xdg-open" https://imagemagick.org/; rm "%i"\"/>" 103 " <delegate decode=\"cdr\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 104 " <delegate decode=\"cgm\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 105 " <delegate decode=\"https\" command=\""curl" -s -k -L -o "%o" "https:%M"\"/>" 106 " <delegate decode=\"doc\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 107 " <delegate decode=\"docx\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 108 " <delegate decode=\"dng:decode\" command=\""ufraw-batch" --silent --create-id=also --out-type=png --out-depth=16 "--output=%u.png" "%i"\"/>" 109 " <delegate decode=\"dot\" command=\""dot" -Tsvg "%i" -o "%o"\"/>" 110 " <delegate decode=\"dvi\" command=\""dvips" -sstdout=%%stderr -o "%o" "%i"\"/>" 111 " <delegate decode=\"dxf\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 112 " <delegate decode=\"edit\" stealth=\"True\" command=\""xterm" -title "Edit Image Comment" -e vi "%o"\"/>" 113 " <delegate decode=\"eps\" encode=\"pdf\" mode=\"bi\" command=\""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 "-sDEVICE=pdfwrite" "-sOutputFile=%o" "-f%i"\"/>" 114 " <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"\"/>" 115 " <delegate decode=\"fig\" command=\""uniconvertor" "%i" "%o.svg"; mv "%o.svg" "%o"\"/>" 116 " <delegate decode=\"hpg\" command=\""hp2xx" -sstdout=%%stderr -m eps -f `basename "%o"` "%i"; mv -f `basename "%o"` "%o"\"/>" 117 " <delegate decode=\"hpgl\" command=\""hp2xx" -sstdout=%%stderr -m eps -f `basename "%o"` "%i"; mv -f `basename "%o"` "%o"\"/>" 118 " <delegate decode=\"htm\" command=\""html2ps" -U -o "%o" "%i"\"/>" 119 " <delegate decode=\"html\" command=\""html2ps" -U -o "%o" "%i"\"/>" 120 " <delegate decode=\"ilbm\" command=\""ilbmtoppm" "%i" > "%o"\"/>" 121 " <delegate decode=\"jpg\" encode=\"lep\" mode=\"encode\" command=\""lepton" "%i" "%o"\"/>" 122 " <delegate decode=\"jxr\" command=\"mv "%i" "%i.jxr"; "JxrDecApp" -i "%i.jxr" -o "%o.pnm"; mv "%i.jxr" "%i"; mv "%o.pnm" "%o"\"/>" 123 " <delegate decode=\"lep\" mode=\"decode\" command=\""lepton" "%i" "%o"\"/>" 124 " <delegate decode=\"odt\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 125 " <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"\"/>" 126 " <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"\"/>" 127 " <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"\"/>" 128 " <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"\"/>" 129 " <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"\"/>" 130 " <delegate decode=\"png\" encode=\"webp\" command=\""cwebp" -quiet -q %Q "%i" -o "%o"\"/>" 131 " <delegate decode=\"pnm\" encode=\"ilbm\" mode=\"encode\" command=\""ppmtoilbm" -24if "%i" > "%o"\"/>" 132 " <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"\"/>" 133 " <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"\"/>" 134 " <delegate decode=\"ppt\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 135 " <delegate decode=\"pptx\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 136 " <delegate decode=\"ps\" encode=\"prt\" command=\""lpr" "%i"\"/>" 137 " <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"\"/>" 138 " <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"\"/>" 139 " <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"\"/>" 140 " <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"\"/>" 141 " <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"\"/>" 142 " <delegate decode=\"ps\" encode=\"print\" mode=\"encode\" command=\"lpr "%i"\"/>" 143 " <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"\"/>" 144 " <delegate decode=\"shtml\" command=\""html2ps" -U -o "%o" "%i"\"/>" 145 " <delegate decode=\"sid\" command=\""mrsidgeodecode" -if sid -i "%i" -of tif -o "%o" > "%u"\"/>" 146 " <delegate decode=\"svg\" command=\""rsvg-convert" -o "%o" "%i"\"/>" 147 " <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\"/>" 148 " <delegate decode=\"tiff\" encode=\"launch\" mode=\"encode\" command=\""gimp" "%i"\"/>" 149 " <delegate decode=\"wdp\" command=\"mv "%i" "%i.jxr"; "JxrDecApp" -i "%i.jxr" -o "%o.bmp"; mv "%i.jxr" "%i"; mv "%o.bmp" "%o"\"/>" 150 " <delegate decode=\"webp\" command=\""dwebp" -pam "%i" -o "%o"\"/>" 151 " <delegate decode=\"xls\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 152 " <delegate decode=\"xlsx\" command=\""soffice" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; mv "%i.pdf" "%o"\"/>" 153 " <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"\"/>" 154 " <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"\"/>" 155 " <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"\"/>" 156 " <delegate decode=\"video:decode\" command=\""ffmpeg" -nostdin -loglevel error -i "%s" -an -f rawvideo -y %s "%s"\"/>" 157 " <delegate encode=\"video:encode\" stealth=\"True\" command=\""ffmpeg" -nostdin -loglevel error -i "%s%%d.%s" %s "%s.%s"\"/>" 210 #if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT 286 if (p->
path != (
char *) NULL)
288 if (p->
decode != (
char *) NULL)
290 if (p->
encode != (
char *) NULL)
297 return((
void *) NULL);
370 if (arguments == (
char **) NULL)
372 if (*arguments[1] ==
'\0')
374 for (i=0; i < (ssize_t) number_arguments; i++)
385 "NotAuthorized",
"`%s'",arguments[1]);
386 for (i=0; i < (ssize_t) number_arguments; i++)
394 (void) fflush(stderr);
399 if (message != (
char *) NULL)
401 #if defined(MAGICKCORE_POSIX_SUPPORT) 402 #if defined(MAGICKCORE_HAVE_POPEN) 403 if ((asynchronous ==
MagickFalse) && (message != (
char *) NULL))
416 if (file == (FILE *) NULL)
417 status=system(sanitize_command);
420 while (fgets(buffer,(
int)
sizeof(buffer),file) != NULL)
438 #if !defined(MAGICKCORE_HAVE_EXECVP) 439 status=system(sanitize_command);
442 (strpbrk(sanitize_command,
"&;<>|") != (
char *) NULL))
443 status=system(sanitize_command);
452 child_pid=(pid_t) fork();
453 if (child_pid == (pid_t) -1)
454 status=system(sanitize_command);
458 status=execvp(arguments[1],arguments+1);
470 pid=(pid_t) waitpid(child_pid,&child_status,0);
475 if (WIFEXITED(child_status) != 0)
476 status=WEXITSTATUS(child_status);
478 if (WIFSIGNALED(child_status))
485 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 498 p=strstr(sanitize_command,
"cmd.exe /c");
499 if (p != (
char*) NULL)
502 for ( ; *p !=
'\0'; p++)
504 *p=(*DirectorySeparator);
507 status=NTSystemCommand(sanitize_command,message);
509 status=system(sanitize_command);
511 # error No suitable system() method. 515 if ((message != (
char *) NULL) && (*message !=
'\0'))
517 "FailedToExecuteCommand",
"`%s' (%s)",sanitize_command,message);
520 "FailedToExecuteCommand",
"`%s' (%d)",sanitize_command,status);
523 for (i=0; i < (ssize_t) number_arguments; i++)
570 #define WarnNoImageReturn(format,letter) \ 571 if (image == (Image *) NULL) \ 573 (void) ThrowMagickException(exception,GetMagickModule(),OptionWarning, \ 574 "NoImageForProperty",format,letter); \ 577 #define WarnNoImageInfoReturn(format,letter) \ 578 if (image_info == (ImageInfo *) NULL) \ 580 (void) ThrowMagickException(exception,GetMagickModule(),OptionWarning, \ 581 "NoImageInfoForProperty",format,letter); \ 600 string=(
const char *) value;
641 "%.20gx%.20g%+.20g%+.20g",(
double) image->
page.
width,(double)
666 if (image != (
Image *) NULL)
721 string=image_info->
unique;
753 (
double) image->
depth);
860 (ssize_t) image->
units);
897 "%.20gx%.20g%+.20g%+.20g",(
double) page.
width,(double) page.
height,
898 (
double) page.
x,(double) page.
y);
918 #define ExtendInterpretText(string_length) \ 920 size_t length=(string_length); \ 921 if ((size_t) (q-interpret_text+length+1) >= extent) \ 924 interpret_text=(char *) ResizeQuantumMemory(interpret_text,extent+ \ 925 MagickPathExtent,sizeof(*interpret_text)); \ 926 if (interpret_text == (char *) NULL) \ 927 return((char *) NULL); \ 928 q=interpret_text+strlen(interpret_text); \ 932 #define AppendKeyValue2Text(key,value)\ 934 size_t length=strlen(key)+strlen(value)+2; \ 935 if ((size_t) (q-interpret_text+length+1) >= extent) \ 938 interpret_text=(char *) ResizeQuantumMemory(interpret_text,extent+ \ 939 MagickPathExtent,sizeof(*interpret_text)); \ 940 if (interpret_text == (char *) NULL) \ 941 return((char *) NULL); \ 942 q=interpret_text+strlen(interpret_text); \ 944 q+=FormatLocaleString(q,extent,"%s=%s\n",(key),(value)); \ 947 #define AppendString2Text(string) \ 949 size_t length=strlen((string)); \ 950 if ((size_t) (q-interpret_text+length+1) >= extent) \ 953 interpret_text=(char *) ResizeQuantumMemory(interpret_text,extent+ \ 954 MagickPathExtent,sizeof(*interpret_text)); \ 955 if (interpret_text == (char *) NULL) \ 956 return((char *) NULL); \ 957 q=interpret_text+strlen(interpret_text); \ 959 (void) CopyMagickString(q,(string),extent); \ 986 if (embed_text == (
const char *) NULL)
989 while ((isspace((
int) ((
unsigned char) *p)) != 0) && (*p !=
'\0'))
999 for (q=interpret_text; *p!=
'\0';
1082 if ((*p ==
'\0') || (*p ==
'\'') || (*p ==
'"'))
1102 if (
string != (
char *) NULL)
1109 "UnknownImageProperty",
"\"%%%c\"",*p);
1112 return(interpret_text);
1116 const char *decode,
const char *encode,
ExceptionInfo *exception)
1128 assert(image_info != (
ImageInfo *) NULL);
1130 assert(image != (
Image *) NULL);
1138 "NoTagFound",
"`%s'",decode ? decode : encode);
1139 return((
char *) NULL);
1142 if (commands == (
char **) NULL)
1147 return((
char *) NULL);
1150 commands[0],exception);
1151 if (command == (
char *) NULL)
1153 "MemoryAllocationFailed",
"`%s'",commands[0]);
1157 for (i=0; commands[i] != (
char *) NULL; i++)
1306 #if defined(__cplusplus) || defined(c_plusplus) 1324 if ((*p)->decode == (
char *) NULL)
1325 if (((*p)->encode != (
char *) NULL) &&
1326 ((*q)->encode != (
char *) NULL))
1327 return(strcmp((*p)->encode,(*q)->encode));
1328 if (((*p)->decode != (
char *) NULL) &&
1329 ((*q)->decode != (
char *) NULL))
1330 return(strcmp((*p)->decode,(*q)->decode));
1335 #if defined(__cplusplus) || defined(c_plusplus) 1354 assert(number_delegates != (
size_t *) NULL);
1355 assert(pattern != (
char *) NULL);
1358 *number_delegates=0;
1383 *number_delegates=(size_t) i;
1417 #if defined(__cplusplus) || defined(c_plusplus) 1427 p=(
const char **) x;
1428 q=(
const char **) y;
1432 #if defined(__cplusplus) || defined(c_plusplus) 1451 assert(pattern != (
char *) NULL);
1454 assert(number_delegates != (
size_t *) NULL);
1455 *number_delegates=0;
1458 return((
char **) NULL);
1461 if (delegates == (
char **) NULL)
1462 return((
char **) NULL);
1477 qsort((
void *) delegates,(
size_t) i,
sizeof(*delegates),
DelegateCompare);
1478 delegates[i]=(
char *) NULL;
1479 *number_delegates=(size_t) i;
1511 return(delegate_info->
mode);
1644 assert(source != (
const char *) NULL);
1645 assert(destination != (
char *) NULL);
1653 if (destination_file == -1)
1656 if (source_file == -1)
1658 (void) close(destination_file);
1662 if ((fstat(source_file,&attributes) == 0) && (attributes.st_size > 0))
1665 if (buffer == (
unsigned char *) NULL)
1667 (void) close(source_file);
1668 (void) close(destination_file);
1672 for (i=0; ; i+=count)
1674 count=(ssize_t) read(source_file,buffer,quantum);
1677 length=(size_t) count;
1678 count=(ssize_t) write(destination_file,buffer,length);
1679 if ((
size_t) count != length)
1682 (void) close(destination_file);
1683 (void) close(source_file);
1713 assert(image_info != (
ImageInfo *) NULL);
1715 assert(image != (
Image *) NULL);
1720 if ((decode != (
const char *) NULL) &&
1725 "NotAuthorized",
"`%s'",decode);
1728 if ((encode != (
const char *) NULL) &&
1733 "NotAuthorized",
"`%s'",encode);
1750 "NoTagFound",
"`%s'",decode ? decode : encode);
1760 "UnableToCreateTemporaryFile",image_info->
filename);
1765 if ((delegate_info->
mode != 0) && (((decode != (
const char *) NULL) &&
1766 (delegate_info->
encode != (
char *) NULL)) ||
1767 ((encode != (
const char *) NULL) &&
1768 (delegate_info->
decode != (
char *) NULL))))
1785 "UnableToCreateTemporaryFile",image_info->
unique);
1789 delegate_info->
encode : delegate_info->
decode,exception);
1790 if (magick == (
char *) NULL)
1796 DelegateError,
"DelegateFailed",
"`%s'",decode ? decode : encode);
1826 DelegateError,
"DelegateFailed",
"`%s'",decode ? decode : encode);
1839 if (commands == (
char **) NULL)
1845 decode ? decode : encode);
1848 command=(
char *) NULL;
1853 for (i=0; commands[i] != (
char *) NULL; i++)
1859 "UnableToCreateTemporaryFile",image_info->
unique);
1868 "UnableToCreateTemporaryFile",input_filename);
1874 if (command != (
char *) NULL)
1880 command,(
char *) NULL,exception) != 0)
1901 if ((strcmp(input_filename,output_filename) != 0) &&
1912 "DelegateFailed",
"`%s'",commands[i]);
1923 for ( ; commands[i] != (
char *) NULL; i++)
1977 if (file == (
const FILE *) NULL)
1982 path=(
const char *) NULL;
1983 for (i=0; i < (ssize_t) number_delegates; i++)
1987 if ((path == (
const char *) NULL) ||
1990 if (delegate_info[i]->path != (
char *) NULL)
1994 "-------------------------------------------------" 1995 "------------------------------\n");
1997 path=delegate_info[i]->
path;
1999 if (delegate_info[i]->encode != (
char *) NULL)
2005 if (commands == (
char **) NULL)
2008 delegate_info[i]->decode :
"",delegate_info[i]->mode <= 0 ?
'<' :
' ',
2009 delegate_info[i]->mode >= 0 ?
'>' :
' ',delegate);
2012 for (j=1; commands[j] != (
char *) NULL; j++)
2017 for (j=0; commands[j] != (
char *) NULL; j++)
2021 (void) fflush(file);
2059 const char *xml,
const char *filename,
const size_t depth,
2082 "Loading delegate configuration file \"%s\" ...",filename);
2083 if (xml == (
const char *) NULL)
2089 for (q=(
const char *) xml; *q !=
'\0'; )
2121 while (((*token !=
'/') && (*(token+1) !=
'>')) && (*q !=
'\0'))
2148 if (file_xml != (
char *) NULL)
2165 sizeof(*delegate_info));
2166 (void) memset(delegate_info,0,
sizeof(*delegate_info));
2185 (void)
GetNextToken(q,(
const char **) NULL,extent,token);
2201 #if defined(MAGICKCORE_WINDOWS_SUPPORT) 2202 if (strchr(commands,
'@') != (
char *) NULL)
2219 if (delegate_info->
commands != (
char *) NULL)
2232 delegate_info->
mode=1;
2243 delegate_info->
mode=(-1);
2253 delegate_info->
mode=1;
2255 delegate_info->
mode=0;
2258 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 size_t StripMagickString(char *message)
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 MagickBooleanType AcquireUniqueFilename(char *path)
MagickBooleanType thread_support
SemaphoreInfo * semaphore
MagickExport void * GetNextValueInLinkedList(LinkedListInfo *list_info)
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)
MagickExport MagickBooleanType IsEventLogging(void)
#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)
#define magick_unreferenced(x)
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