MagickCore 7.1.0
Convert, Edit, Or Compose Bitmap Images
|
#include "MagickCore/studio.h"
#include "MagickCore/blob.h"
#include "MagickCore/blob-private.h"
#include "MagickCore/exception.h"
#include "MagickCore/exception-private.h"
#include "MagickCore/image-private.h"
#include "MagickCore/log.h"
#include "MagickCore/memory_.h"
#include "MagickCore/memory-private.h"
#include "MagickCore/semaphore.h"
#include "MagickCore/string_.h"
#include "MagickCore/string-private.h"
#include "MagickCore/token-private.h"
#include "MagickCore/xml-tree.h"
#include "MagickCore/xml-tree-private.h"
#include "MagickCore/utility.h"
#include "MagickCore/utility-private.h"
Go to the source code of this file.
Data Structures | |
struct | _XMLTreeInfo |
struct | _XMLTreeRoot |
Macros | |
#define | NumberPredefinedEntities 10 |
#define | XMLWhitespace "\t\r\n " |
Typedefs | |
typedef struct _XMLTreeRoot | XMLTreeRoot |
Functions | |
MagickExport XMLTreeInfo * | AddChildToXMLTree (XMLTreeInfo *xml_info, const char *tag, const size_t offset) |
MagickPrivate XMLTreeInfo * | AddPathToXMLTree (XMLTreeInfo *xml_info, const char *path, const size_t offset) |
MagickPrivate char * | CanonicalXMLContent (const char *content, const MagickBooleanType pedantic) |
static char ** | DestroyXMLTreeAttributes (char **attributes) |
static void | DestroyXMLTreeChild (XMLTreeInfo *xml_info) |
static void | DestroyXMLTreeOrdered (XMLTreeInfo *xml_info) |
static void | DestroyXMLTreeRoot (XMLTreeInfo *xml_info) |
MagickExport XMLTreeInfo * | DestroyXMLTree (XMLTreeInfo *xml_info) |
MagickPrivate char * | FileToXML (const char *filename, const size_t extent) |
MagickExport XMLTreeInfo * | GetNextXMLTreeTag (XMLTreeInfo *xml_info) |
MagickExport const char * | GetXMLTreeAttribute (XMLTreeInfo *xml_info, const char *tag) |
MagickPrivate MagickBooleanType | GetXMLTreeAttributes (const XMLTreeInfo *xml_info, SplayTreeInfo *attributes) |
MagickExport XMLTreeInfo * | GetXMLTreeChild (XMLTreeInfo *xml_info, const char *tag) |
MagickExport const char * | GetXMLTreeContent (XMLTreeInfo *xml_info) |
MagickPrivate XMLTreeInfo * | GetXMLTreeOrdered (XMLTreeInfo *xml_info) |
MagickPrivate XMLTreeInfo * | GetXMLTreePath (XMLTreeInfo *xml_info, const char *path) |
MagickPrivate const char ** | GetXMLTreeProcessingInstructions (XMLTreeInfo *xml_info, const char *target) |
MagickExport XMLTreeInfo * | GetXMLTreeSibling (XMLTreeInfo *xml_info) |
MagickExport const char * | GetXMLTreeTag (XMLTreeInfo *xml_info) |
MagickPrivate XMLTreeInfo * | InsertTagIntoXMLTree (XMLTreeInfo *xml_info, XMLTreeInfo *child, const size_t offset) |
static char * | ConvertUTF16ToUTF8 (const char *content, size_t *length) |
static char * | ParseEntities (char *xml, char **entities, int state) |
static void | ParseCharacterContent (XMLTreeRoot *root, char *xml, const size_t length, const char state) |
static XMLTreeInfo * | ParseCloseTag (XMLTreeRoot *root, char *tag, ExceptionInfo *exception) |
static MagickBooleanType | ValidateEntities (char *tag, char *xml, const size_t depth, char **entities) |
static void | ParseProcessingInstructions (XMLTreeRoot *root, char *xml, size_t length) |
static MagickBooleanType | ParseInternalDoctype (XMLTreeRoot *root, char *xml, size_t length, ExceptionInfo *exception) |
static void | ParseOpenTag (XMLTreeRoot *root, char *tag, char **attributes) |
static MagickBooleanType | IsSkipTag (const char *tag) |
MagickExport XMLTreeInfo * | NewXMLTree (const char *xml, ExceptionInfo *exception) |
MagickExport XMLTreeInfo * | NewXMLTreeTag (const char *tag) |
MagickPrivate XMLTreeInfo * | PruneTagFromXMLTree (XMLTreeInfo *xml_info) |
MagickPrivate XMLTreeInfo * | SetXMLTreeAttribute (XMLTreeInfo *xml_info, const char *tag, const char *value) |
MagickExport XMLTreeInfo * | SetXMLTreeContent (XMLTreeInfo *xml_info, const char *content) |
static char * | EncodePredefinedEntities (const char *source, ssize_t offset, char **destination, size_t *length, size_t *extent, MagickBooleanType pedantic) |
static char * | XMLTreeTagToXML (XMLTreeInfo *xml_info, char **source, size_t *length, size_t *extent, size_t start, char ***attributes) |
MagickExport char * | XMLTreeInfoToXML (XMLTreeInfo *xml_info) |
Variables | |
static char * | sentinel [] = { (char *) NULL } |
static const char * | ignore_tags [3] |
#define NumberPredefinedEntities 10 |
Definition at line 71 of file xml-tree.c.
#define XMLWhitespace "\t\r\n " |
Definition at line 72 of file xml-tree.c.
typedef struct _XMLTreeRoot XMLTreeRoot |
Definition at line 105 of file xml-tree.c.
MagickExport XMLTreeInfo * AddChildToXMLTree | ( | XMLTreeInfo * | xml_info, |
const char * | tag, | ||
const size_t | offset | ||
) |
Definition at line 167 of file xml-tree.c.
References AcquireMagickMemory(), _XMLTreeInfo::attributes, _XMLTreeInfo::child, ConstantString(), _XMLTreeInfo::content, _XMLTreeInfo::debug, InsertTagIntoXMLTree(), IsEventLogging(), MagickCoreSignature, _XMLTreeInfo::offset, sentinel, _XMLTreeInfo::signature, and _XMLTreeInfo::tag.
Referenced by AddPathToXMLTree(), and ParseOpenTag().
MagickPrivate XMLTreeInfo * AddPathToXMLTree | ( | XMLTreeInfo * | xml_info, |
const char * | path, | ||
const size_t | offset | ||
) |
Definition at line 215 of file xml-tree.c.
References AddChildToXMLTree(), CanonicalPath, _XMLTreeInfo::child, DestroyString(), GetMagickModule, GetPathComponent(), GetPathComponents(), GetXMLTreeChild(), GetXMLTreeOrdered(), IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickPathExtent, _XMLTreeInfo::offset, RelinquishMagickMemory(), _XMLTreeInfo::signature, StringToLong(), SubimagePath, _XMLTreeInfo::tag, and TraceEvent.
MagickPrivate char * CanonicalXMLContent | ( | const char * | content, |
const MagickBooleanType | pedantic | ||
) |
Definition at line 299 of file xml-tree.c.
References AcquireString(), Base64Encode(), ConcatenateString(), _XMLTreeInfo::content, ConvertLatin1ToUTF8(), DestroyString(), RelinquishMagickMemory(), and SubstituteXMLEntities().
Referenced by EncodePredefinedEntities().
|
static |
Definition at line 1215 of file xml-tree.c.
References AcquireQuantumMemory(), MagickPathExtent, and ResizeQuantumMemory().
Referenced by NewXMLTree().
MagickExport XMLTreeInfo * DestroyXMLTree | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 483 of file xml-tree.c.
References _XMLTreeInfo::attributes, _XMLTreeInfo::content, DestroyString(), DestroyXMLTreeAttributes(), DestroyXMLTreeChild(), DestroyXMLTreeOrdered(), DestroyXMLTreeRoot(), GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, RelinquishMagickMemory(), _XMLTreeInfo::signature, _XMLTreeInfo::tag, and TraceEvent.
Referenced by ColorDecisionListImage(), DestroyXMLTreeChild(), DestroyXMLTreeOrdered(), GetThresholdMapFile(), GetXMPProperty(), ListThresholdMapFile(), and LoadMimeCache().
|
static |
Definition at line 364 of file xml-tree.c.
References _XMLTreeInfo::attributes, DestroyString(), RelinquishMagickMemory(), and sentinel.
Referenced by DestroyXMLTree(), and NewXMLTree().
|
static |
Definition at line 388 of file xml-tree.c.
References _XMLTreeInfo::child, and DestroyXMLTree().
Referenced by DestroyXMLTree().
|
static |
Definition at line 404 of file xml-tree.c.
References DestroyXMLTree(), and _XMLTreeInfo::ordered.
Referenced by DestroyXMLTree().
|
static |
Definition at line 420 of file xml-tree.c.
References _XMLTreeInfo::attributes, _XMLTreeRoot::attributes, DestroyString(), _XMLTreeRoot::entities, GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, NumberPredefinedEntities, _XMLTreeInfo::parent, _XMLTreeRoot::processing_instructions, RelinquishMagickMemory(), _XMLTreeInfo::signature, and TraceEvent.
Referenced by DestroyXMLTree().
|
static |
Definition at line 2546 of file xml-tree.c.
References AcquireString(), CanonicalXMLContent(), DestroyString(), FormatLocaleString(), MagickPathExtent, and ResizeQuantumMemory().
Referenced by XMLTreeTagToXML().
MagickPrivate char * FileToXML | ( | const char * | filename, |
const size_t | extent | ||
) |
Definition at line 524 of file xml-tree.c.
References AcquireQuantumMemory(), LocaleCompare(), MAGICK_SSIZE_MAX, MagickMaxBufferExtent, MagickMin, MagickPathExtent, MapBlob(), O_BINARY, _XMLTreeInfo::offset, open_utf8(), ReadMode, RelinquishMagickMemory(), ResizeQuantumMemory(), and UnmapBlob().
Referenced by LoadColorCache(), LoadConfigureCache(), LoadDelegateCache(), LoadLocaleCache(), LoadLogCache(), LoadMimeCache(), and LoadPolicyCache().
MagickExport XMLTreeInfo * GetNextXMLTreeTag | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 669 of file xml-tree.c.
References GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::next, _XMLTreeInfo::signature, and TraceEvent.
Referenced by GetThresholdMapFile(), GetXMPProperty(), ListThresholdMapFile(), and LoadMimeCache().
MagickExport const char * GetXMLTreeAttribute | ( | XMLTreeInfo * | xml_info, |
const char * | tag | ||
) |
Definition at line 704 of file xml-tree.c.
References _XMLTreeInfo::attributes, _XMLTreeRoot::attributes, GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::parent, _XMLTreeRoot::root, _XMLTreeInfo::signature, _XMLTreeInfo::tag, and TraceEvent.
Referenced by GetThresholdMapFile(), ListThresholdMapFile(), LoadMimeCache(), and XMLTreeTagToXML().
MagickPrivate MagickBooleanType GetXMLTreeAttributes | ( | const XMLTreeInfo * | xml_info, |
SplayTreeInfo * | attributes | ||
) |
Definition at line 773 of file xml-tree.c.
References AddValueToSplayTree(), _XMLTreeInfo::attributes, ConstantString(), GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickTrue, _XMLTreeInfo::signature, and TraceEvent.
MagickExport XMLTreeInfo * GetXMLTreeChild | ( | XMLTreeInfo * | xml_info, |
const char * | tag | ||
) |
Definition at line 821 of file xml-tree.c.
References _XMLTreeInfo::child, GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::sibling, _XMLTreeInfo::signature, _XMLTreeInfo::tag, and TraceEvent.
Referenced by AddPathToXMLTree(), ColorDecisionListImage(), GetThresholdMapFile(), GetXMLTreePath(), GetXMPProperty(), ListThresholdMapFile(), and LoadMimeCache().
MagickExport const char * GetXMLTreeContent | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 861 of file xml-tree.c.
References _XMLTreeInfo::content, GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::signature, and TraceEvent.
Referenced by ColorDecisionListImage(), GetThresholdMapFile(), GetXMPProperty(), and ListThresholdMapFile().
MagickPrivate XMLTreeInfo * GetXMLTreeOrdered | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 893 of file xml-tree.c.
References GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::ordered, _XMLTreeInfo::signature, and TraceEvent.
Referenced by AddPathToXMLTree(), and GetXMLTreePath().
MagickPrivate XMLTreeInfo * GetXMLTreePath | ( | XMLTreeInfo * | xml_info, |
const char * | path | ||
) |
Definition at line 928 of file xml-tree.c.
References CanonicalPath, DestroyString(), GetMagickModule, GetPathComponent(), GetPathComponents(), GetXMLTreeChild(), GetXMLTreeOrdered(), IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickPathExtent, RelinquishMagickMemory(), _XMLTreeInfo::signature, StringToLong(), SubimagePath, and TraceEvent.
MagickPrivate const char ** GetXMLTreeProcessingInstructions | ( | XMLTreeInfo * | xml_info, |
const char * | target | ||
) |
Definition at line 1004 of file xml-tree.c.
References GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::parent, _XMLTreeRoot::processing_instructions, _XMLTreeRoot::root, sentinel, _XMLTreeInfo::signature, and TraceEvent.
MagickExport XMLTreeInfo * GetXMLTreeSibling | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 1052 of file xml-tree.c.
References GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::sibling, _XMLTreeInfo::signature, and TraceEvent.
Referenced by GetXMPProperty().
MagickExport const char * GetXMLTreeTag | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 1084 of file xml-tree.c.
References GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::signature, _XMLTreeInfo::tag, and TraceEvent.
Referenced by GetXMPProperty().
MagickPrivate XMLTreeInfo * InsertTagIntoXMLTree | ( | XMLTreeInfo * | xml_info, |
XMLTreeInfo * | child, | ||
const size_t | offset | ||
) |
Definition at line 1122 of file xml-tree.c.
References _XMLTreeInfo::child, _XMLTreeInfo::next, _XMLTreeInfo::offset, _XMLTreeInfo::ordered, _XMLTreeInfo::parent, _XMLTreeInfo::sibling, and _XMLTreeInfo::tag.
Referenced by AddChildToXMLTree().
|
inlinestatic |
Definition at line 1866 of file xml-tree.c.
References ignore_tags, LocaleCompare(), MagickFalse, and MagickTrue.
Referenced by NewXMLTree().
MagickExport XMLTreeInfo * NewXMLTree | ( | const char * | xml, |
ExceptionInfo * | exception | ||
) |
Definition at line 1881 of file xml-tree.c.
References AcquireQuantumMemory(), _XMLTreeRoot::attributes, ConstantString(), ConvertUTF16ToUTF8(), DestroyString(), DestroyXMLTreeAttributes(), _XMLTreeRoot::entities, GetMagickModule, IsSkipTag(), MagickFalse, NewXMLTreeTag(), _XMLTreeRoot::node, OptionWarning, ParseCharacterContent(), ParseCloseTag(), ParseEntities(), ParseInternalDoctype(), ParseOpenTag(), ParseProcessingInstructions(), ResizeQuantumMemory(), ResourceLimitError, _XMLTreeRoot::root, sentinel, _XMLTreeInfo::tag, ThrowMagickException(), and XMLWhitespace.
Referenced by ColorDecisionListImage(), GetThresholdMapFile(), GetXMPProperty(), ListThresholdMapFile(), and LoadMimeCache().
MagickExport XMLTreeInfo * NewXMLTreeTag | ( | const char * | tag | ) |
Definition at line 2287 of file xml-tree.c.
References AcquireMagickMemory(), _XMLTreeInfo::attributes, _XMLTreeRoot::attributes, ConstantString(), _XMLTreeInfo::content, _XMLTreeRoot::debug, _XMLTreeRoot::entities, IsEventLogging(), MagickCoreSignature, _XMLTreeRoot::node, NumberPredefinedEntities, _XMLTreeRoot::processing_instructions, _XMLTreeRoot::root, sentinel, _XMLTreeRoot::signature, and _XMLTreeInfo::tag.
Referenced by NewXMLTree().
|
static |
Definition at line 1474 of file xml-tree.c.
References ConcatenateString(), _XMLTreeInfo::content, DestroyString(), _XMLTreeRoot::entities, _XMLTreeRoot::node, ParseEntities(), and _XMLTreeInfo::tag.
Referenced by NewXMLTree().
|
static |
Definition at line 1499 of file xml-tree.c.
References GetMagickModule, _XMLTreeRoot::node, OptionWarning, _XMLTreeInfo::parent, _XMLTreeRoot::root, _XMLTreeInfo::tag, and ThrowMagickException().
Referenced by NewXMLTree().
|
static |
Definition at line 1296 of file xml-tree.c.
References AcquireQuantumMemory(), ConstantString(), CopyMagickString(), ResizeQuantumMemory(), ResourceLimitFatalError, and ThrowFatalException.
Referenced by NewXMLTree(), ParseCharacterContent(), and ParseInternalDoctype().
|
static |
Definition at line 1617 of file xml-tree.c.
References AcquireMagickMemory(), AcquireQuantumMemory(), _XMLTreeRoot::attributes, ConstantString(), DestroyString(), _XMLTreeRoot::entities, GetMagickModule, MagickFalse, MagickTrue, OptionWarning, ParseEntities(), ParseProcessingInstructions(), RelinquishMagickMemory(), ResizeQuantumMemory(), ResourceLimitError, ResourceLimitFatalError, sentinel, _XMLTreeRoot::standalone, ThrowFatalException, ThrowMagickException(), ValidateEntities(), and XMLWhitespace.
Referenced by NewXMLTree().
|
static |
Definition at line 1843 of file xml-tree.c.
References AddChildToXMLTree(), _XMLTreeInfo::attributes, ConstantString(), _XMLTreeInfo::content, _XMLTreeRoot::node, and _XMLTreeInfo::tag.
Referenced by NewXMLTree().
|
static |
Definition at line 1542 of file xml-tree.c.
References AcquireCriticalMemory(), AcquireQuantumMemory(), ConstantString(), CopyMagickString(), MagickTrue, _XMLTreeRoot::processing_instructions, ResizeQuantumMemory(), ResourceLimitFatalError, _XMLTreeRoot::root, _XMLTreeRoot::standalone, _XMLTreeInfo::tag, ThrowFatalException, and XMLWhitespace.
Referenced by NewXMLTree(), and ParseInternalDoctype().
MagickPrivate XMLTreeInfo * PruneTagFromXMLTree | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 2343 of file xml-tree.c.
References _XMLTreeInfo::child, GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::next, _XMLTreeInfo::ordered, _XMLTreeInfo::parent, _XMLTreeInfo::sibling, _XMLTreeInfo::signature, _XMLTreeInfo::tag, and TraceEvent.
MagickPrivate XMLTreeInfo * SetXMLTreeAttribute | ( | XMLTreeInfo * | xml_info, |
const char * | tag, | ||
const char * | value | ||
) |
Definition at line 2417 of file xml-tree.c.
References AcquireQuantumMemory(), _XMLTreeInfo::attributes, ConstantString(), DestroyString(), GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, ResizeQuantumMemory(), ResourceLimitFatalError, sentinel, _XMLTreeInfo::signature, ThrowFatalException, and TraceEvent.
MagickExport XMLTreeInfo * SetXMLTreeContent | ( | XMLTreeInfo * | xml_info, |
const char * | content | ||
) |
Definition at line 2509 of file xml-tree.c.
References ConstantString(), _XMLTreeInfo::content, DestroyString(), GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _XMLTreeInfo::signature, and TraceEvent.
|
static |
Definition at line 1513 of file xml-tree.c.
References MagickFalse, MagickMaxRecursionDepth, MagickTrue, and ValidateEntities().
Referenced by ParseInternalDoctype(), and ValidateEntities().
MagickExport char * XMLTreeInfoToXML | ( | XMLTreeInfo * | xml_info | ) |
Definition at line 2686 of file xml-tree.c.
References AcquireString(), _XMLTreeRoot::attributes, FormatLocaleString(), GetMagickModule, IsEventLogging(), LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickPathExtent, _XMLTreeInfo::ordered, _XMLTreeInfo::parent, _XMLTreeRoot::processing_instructions, ResizeQuantumMemory(), _XMLTreeRoot::root, _XMLTreeInfo::signature, _XMLTreeInfo::tag, TraceEvent, and XMLTreeTagToXML().
|
static |
Definition at line 2580 of file xml-tree.c.
References _XMLTreeInfo::attributes, _XMLTreeInfo::child, _XMLTreeInfo::content, EncodePredefinedEntities(), FormatLocaleString(), GetXMLTreeAttribute(), MagickFalse, MagickPathExtent, MagickTrue, _XMLTreeInfo::offset, _XMLTreeInfo::ordered, _XMLTreeInfo::parent, ResizeQuantumMemory(), _XMLTreeInfo::tag, and XMLTreeTagToXML().
Referenced by XMLTreeInfoToXML(), and XMLTreeTagToXML().
|
static |
Definition at line 1859 of file xml-tree.c.
Referenced by IsSkipTag().
|
static |
Definition at line 137 of file xml-tree.c.
Referenced by AddChildToXMLTree(), DestroyXMLTreeAttributes(), GetCommandOptionFlags(), GetXMLTreeProcessingInstructions(), IdentifyImage(), NewXMLTree(), NewXMLTreeTag(), ParseCommandOption(), ParseInternalDoctype(), and SetXMLTreeAttribute().