#define MagickCoderFilename "coder.xml"
\f
/*
- Static declarations.
+ Typedef declarations.
*/
typedef struct _CoderMapInfo
{
*magick,
*name;
} CoderMapInfo;
-
+\f
+/*
+ Static declarations.
+*/
static const CoderMapInfo
CoderMap[] =
{
{ "XTRNSTREAM", "XTRN" },
{ "XV", "VIFF" },
{ "Y", "RAW" },
- { "YCbCrA", "YCbCr" },
- { (const char *) NULL, (const char *) NULL }
+ { "YCbCrA", "YCbCr" }
};
static SemaphoreInfo
MagickStatusType
status;
- register const CoderMapInfo
- *p;
+ register long
+ i;
/*
Load built-in coder map.
return(MagickFalse);
}
}
- for (p=CoderMap; p->magick != (const char *) NULL; p++)
+ for (i=0; i < (long) (sizeof(CoderMap)/sizeof(*CoderMap)); i++)
{
CoderInfo
*coder_info;
+ register const CoderMapInfo
+ *p;
+
+ p=CoderMap+i;
coder_info=(CoderInfo *) AcquireMagickMemory(sizeof(*coder_info));
if (coder_info == (CoderInfo *) NULL)
{
#define ColorFilename "colors.xml"
\f
/*
- Static declarations.
+ Typedef declarations.
*/
typedef struct _ColorMapInfo
{
const long
compliance;
} ColorMapInfo;
-
+\f
+/*
+ Static declarations.
+*/
static const ColorMapInfo
ColorMap[] =
{
{ "yellow2", 238, 238, 0, 1, X11Compliance },
{ "yellow3", 205, 205, 0, 1, X11Compliance },
{ "yellow4", 139, 139, 0, 1, X11Compliance },
- { "YellowGreen", 154, 205, 50, 1, SVGCompliance | X11Compliance | XPMCompliance },
- { (const char *) NULL, 0, 0, 0, 0, UndefinedCompliance }
+ { "YellowGreen", 154, 205, 50, 1, SVGCompliance | X11Compliance | XPMCompliance }
};
\f
/*
MagickStatusType
status;
- register const ColorMapInfo
- *p;
+ register long
+ i;
/*
Load built-in color map.
}
}
scale=(MagickRealType) ScaleCharToQuantum(1);
- for (p=ColorMap; p->name != (const char *) NULL; p++)
+ for (i=0; i < (long) (sizeof(ColorMap)/sizeof(*ColorMap)); i++)
{
ColorInfo
*color_info;
+ register const ColorMapInfo
+ *p;
+
+ p=ColorMap+i;
color_info=(ColorInfo *) AcquireMagickMemory(sizeof(*color_info));
if (color_info == (ColorInfo *) NULL)
{
*/
#define ConfigureFilename "configure.xml"
\f
+/*
+ Typedef declarations.
+*/
+typedef struct _ConfigureMapInfo
+{
+ const char
+ *name,
+ *value;
+} ConfigureMapInfo;
+\f
/*
Static declarations.
*/
-static const char
- *ConfigureMap = (char *)
- "<?xml version=\"1.0\"?>"
- "<configuremap>"
- " <configure stealth=\"True\" />"
- "</configuremap>";
+static const ConfigureMapInfo
+ ConfigureMap[] =
+ {
+ };
static LinkedListInfo
*configure_list = (LinkedListInfo *) NULL;
*p;
p=(ConfigureInfo *) configure_info;
- if (p->path != (char *) NULL)
- p->path=DestroyString(p->path);
- if (p->name != (char *) NULL)
- p->name=DestroyString(p->name);
- if (p->value != (char *) NULL)
- p->value=DestroyString(p->value);
+ if (p->exempt == MagickFalse)
+ {
+ if (p->value != (char *) NULL)
+ p->value=DestroyString(p->value);
+ if (p->name != (char *) NULL)
+ p->name=DestroyString(p->name);
+ if (p->path != (char *) NULL)
+ p->path=DestroyString(p->path);
+ }
p=(ConfigureInfo *) RelinquishMagickMemory(p);
return((void *) NULL);
}
}
status=MagickTrue;
configure_info=(ConfigureInfo *) NULL;
- if (xml == (char *) NULL)
- token=AcquireString(ConfigureMap);
- else
- token=AcquireString((char *) xml);
+ token=AcquireString((char *) xml);
for (q=(char *) xml; *q != '\0'; )
{
/*
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(configure_info,0,sizeof(*configure_info));
configure_info->path=ConstantString(filename);
+ configure_info->exempt=MagickFalse;
configure_info->signature=MagickSignature;
continue;
}
static MagickBooleanType LoadConfigureLists(const char *filename,
ExceptionInfo *exception)
{
-#if defined(MAGICKCORE_EMBEDDABLE_SUPPORT)
- return(LoadConfigureList(ConfigureMap,"built-in",0,exception));
-#else
const StringInfo
*option;
MagickStatusType
status;
+ register long
+ i;
+
+ /*
+ Load built-in configure map.
+ */
status=MagickFalse;
+ if (configure_list == (LinkedListInfo *) NULL)
+ {
+ configure_list=NewLinkedList(0);
+ if (configure_list == (LinkedListInfo *) NULL)
+ {
+ ThrowFileException(exception,ResourceLimitError,
+ "MemoryAllocationFailed",filename);
+ return(MagickFalse);
+ }
+ }
+ for (i=0; i < (long) (sizeof(ConfigureMap)/sizeof(*ConfigureMap)); i++)
+ {
+ ConfigureInfo
+ *configure_info;
+
+ register const ConfigureMapInfo
+ *p;
+
+ p=ConfigureMap+i;
+ configure_info=(ConfigureInfo *) AcquireMagickMemory(
+ sizeof(*configure_info));
+ if (configure_info == (ConfigureInfo *) NULL)
+ {
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'",
+ configure_info->name);
+ continue;
+ }
+ (void) ResetMagickMemory(configure_info,0,sizeof(*configure_info));
+ configure_info->path=(char *) "[built-in]";
+ configure_info->name=(char *) p->name;
+ configure_info->value=(char *) p->value;
+ configure_info->exempt=MagickTrue;
+ configure_info->signature=MagickSignature;
+ status=AppendValueToLinkedList(configure_list,configure_info);
+ if (status == MagickFalse)
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'",
+ configure_info->name);
+ }
+ /*
+ Load external configure map.
+ */
options=GetConfigureOptions(filename,exception);
option=(const StringInfo *) GetNextValueInLinkedList(options);
while (option != (const StringInfo *) NULL)
option=(const StringInfo *) GetNextValueInLinkedList(options);
}
options=DestroyConfigureOptions(options);
- if ((configure_list == (LinkedListInfo *) NULL) ||
- (IsLinkedListEmpty(configure_list) != MagickFalse))
- status|=LoadConfigureList(ConfigureMap,"built-in",0,exception);
return(status != 0 ? MagickTrue : MagickFalse);
-#endif
}
*value;
MagickBooleanType
+ exempt,
stealth;
struct _ConfigureInfo
Define declarations.
*/
#define MagicFilename "magic.xml"
+#define MagickString(magic) (const unsigned char *) (magic), sizeof(magic)-1
\f
/*
- Static declarations.
+ Typedef declarations.
*/
typedef struct _MagicMapInfo
{
const size_t
length;
} MagicMapInfo;
-
-#define MagickString(magic) (const unsigned char *) (magic), sizeof(magic)-1
-
+\f
+/*
+ Static declarations.
+*/
static const MagicMapInfo
MagicMap[] =
{
{ "XEF", 0, MagickString("FOVb") },
{ "XPM", 1, MagickString("* XPM *") },
{ "XWD", 4, MagickString("\007\000\000") },
- { "XWD", 5, MagickString("\000\000\007") },
- { (const char *) NULL, 0, MagickString((const char *) NULL) }
+ { "XWD", 5, MagickString("\000\000\007") }
};
static LinkedListInfo
MagickStatusType
status;
- register const MagicMapInfo
- *p;
+ register long
+ i;
/*
Load built-in magic map.
return(MagickFalse);
}
}
- for (p=MagicMap; p->name != (const char *) NULL; p++)
+ for (i=0; i < (long) (sizeof(MagicMap)/sizeof(*MagicMap)); i++)
{
MagicInfo
*magic_info;
+ register const MagicMapInfo
+ *p;
+
+ p=MagicMap+i;
magic_info=(MagicInfo *) AcquireMagickMemory(sizeof(*magic_info));
if (magic_info == (MagicInfo *) NULL)
{
#define PolicyFilename "policy.xml"
\f
/*
- Declare policy map.
-*/
-static const char
- *PolicyMap = (const char *)
- "<?xml version=\"1.0\"?>"
- "<policymap>"
- "</policymap>";
-\f
-/*
- Domaindef declarations.
+ Typedef declarations.
*/
struct _PolicyInfo
{
char
- *path,
- *name;
+ *path;
PolicyDomain
domain;
rights;
char
+ *name,
*pattern,
*value;
MagickBooleanType
+ exempt,
stealth,
debug;
unsigned long
signature;
};
+
+typedef struct _PolicyMapInfo
+{
+ const PolicyDomain
+ domain;
+
+ const PolicyRights
+ rights;
+
+ const char
+ *name,
+ *pattern,
+ *value;
+} PolicyMapInfo;
\f
/*
Static declarations.
*/
+static const PolicyMapInfo
+ PolicyMap[] =
+ {
+ };
+
static LinkedListInfo
*policy_list = (LinkedListInfo *) NULL;
*p;
p=(PolicyInfo *) policy_info;
- if (p->value != (char *) NULL)
- p->value=DestroyString(p->value);
- if (p->pattern != (char *) NULL)
- p->pattern=DestroyString(p->pattern);
- if (p->name != (char *) NULL)
- p->name=DestroyString(p->name);
- if (p->path != (char *) NULL)
- p->path=DestroyString(p->path);
+ if (p->exempt == MagickFalse)
+ {
+ if (p->value != (char *) NULL)
+ p->value=DestroyString(p->value);
+ if (p->pattern != (char *) NULL)
+ p->pattern=DestroyString(p->pattern);
+ if (p->name != (char *) NULL)
+ p->name=DestroyString(p->name);
+ if (p->path != (char *) NULL)
+ p->path=DestroyString(p->path);
+ }
p=(PolicyInfo *) RelinquishMagickMemory(p);
return((void *) NULL);
}
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(policy_info,0,sizeof(*policy_info));
policy_info->path=ConstantString(filename);
+ policy_info->exempt=MagickFalse;
policy_info->signature=MagickSignature;
continue;
}
static MagickBooleanType LoadPolicyLists(const char *filename,
ExceptionInfo *exception)
{
-#if defined(MAGICKCORE_EMBEDDABLE_SUPPORT)
- return(LoadPolicyList(PolicyMap,"built-in",0,exception));
-#else
const StringInfo
*option;
MagickStatusType
status;
+ register long
+ i;
+
+ /*
+ Load built-in policy map.
+ */
status=MagickFalse;
+ if (policy_list == (LinkedListInfo *) NULL)
+ {
+ policy_list=NewLinkedList(0);
+ if (policy_list == (LinkedListInfo *) NULL)
+ {
+ ThrowFileException(exception,ResourceLimitError,
+ "MemoryAllocationFailed",filename);
+ return(MagickFalse);
+ }
+ }
+ for (i=0; i < (long) (sizeof(PolicyMap)/sizeof(*PolicyMap)); i++)
+ {
+ PolicyInfo
+ *policy_info;
+
+ register const PolicyMapInfo
+ *p;
+
+ p=PolicyMap+i;
+ policy_info=(PolicyInfo *) AcquireMagickMemory(sizeof(*policy_info));
+ if (policy_info == (PolicyInfo *) NULL)
+ {
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'",policy_info->name);
+ continue;
+ }
+ (void) ResetMagickMemory(policy_info,0,sizeof(*policy_info));
+ policy_info->path=(char *) "[built-in]";
+ policy_info->domain=p->domain;
+ policy_info->rights=p->rights;
+ policy_info->name=(char *) p->name;
+ policy_info->pattern=(char *) p->pattern;
+ policy_info->value=(char *) p->value;
+ policy_info->exempt=MagickTrue;
+ policy_info->signature=MagickSignature;
+ status=AppendValueToLinkedList(policy_list,policy_info);
+ if (status == MagickFalse)
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'",policy_info->name);
+ }
+ /*
+ Load external policy map.
+ */
options=GetConfigureOptions(filename,exception);
option=(const StringInfo *) GetNextValueInLinkedList(options);
while (option != (const StringInfo *) NULL)
option=(const StringInfo *) GetNextValueInLinkedList(options);
}
options=DestroyConfigureOptions(options);
- if ((policy_list == (LinkedListInfo *) NULL) ||
- (IsLinkedListEmpty(policy_list) != MagickFalse))
- status|=LoadPolicyList(PolicyMap,"built-in",0,exception);
return(status != 0 ? MagickTrue : MagickFalse);
-#endif
}
extern MagickExport const char
*GetMagickCopyright(void),
+ *GetMagickFeatures(void),
*GetMagickPackageName(void),
*GetMagickQuantumDepth(unsigned long *),
*GetMagickQuantumRange(unsigned long *),