Added extra option to the skip spaces to the MagicInfo.

This commit is contained in:
Dirk Lemstra
2022-07-04 19:46:13 +02:00
parent 3036966f9a
commit 1563f074ff
3 changed files with 18 additions and 8 deletions
+9 -2
View File
@@ -80,6 +80,9 @@ typedef struct _MagicMapInfo
const size_t
length;
const MagickBooleanType
skip_spaces;
} MagicMapInfo;
struct _MagicInfo
@@ -96,6 +99,9 @@ struct _MagicInfo
MagickOffsetType
offset;
MagickBooleanType
skip_spaces;
size_t
signature;
};
@@ -214,6 +220,7 @@ static LinkedListInfo *AcquireMagicList(ExceptionInfo *exception)
magic_info->offset=p->offset;
magic_info->magic=(unsigned char *) p->magic;
magic_info->length=p->length;
magic_info->skip_spaces=p->skip_spaces;
magic_info->signature=MagickCoreSignature;
status&=InsertValueInSortedLinkedList(list,CompareMagickInfoExtent,
NULL,magic_info);
@@ -291,7 +298,7 @@ MagickExport const MagicInfo *GetMagicInfo(const unsigned char *magic,
p=(const MagicInfo *) GetNextValueInLinkedList(magic_cache);
while (p != (const MagicInfo *) NULL)
{
if (LocaleCompare(p->name,"SVG") == 0)
if (p->skip_spaces != MagickFalse)
while (isspace(*magic) != 0) magic++;
offset=p->offset+(MagickOffsetType) p->length;
if ((offset <= (MagickOffsetType) length) &&
@@ -317,7 +324,7 @@ MagickExport const MagicInfo *GetMagicInfo(const unsigned char *magic,
while (p != (const MagicInfo *) NULL)
{
assert(p->offset >= 0);
if (LocaleCompare(p->name,"SVG") == 0)
if (p->skip_spaces != MagickFalse)
while (isspace(*magic) != 0) magic++;
offset=p->offset+(MagickOffsetType) p->length;
if ((offset <= (MagickOffsetType) length) &&
+5 -2
View File
@@ -21,8 +21,11 @@
#include "MagickCore/property.h"
#include "MagickCore/string_.h"
#define MagickCoderHeader(coder,offset,magic) { coder, offset, \
(const unsigned char *) (magic), sizeof(magic)-1 },
#define MagickCoderHeader(coder,offset,magic) \
{ coder, offset, (const unsigned char *) (magic), sizeof(magic)-1, MagickFalse },
#define MagickExtendedCoderHeader(coder,offset,magic,skip_spaces) \
{ coder, offset, (const unsigned char *) (magic), sizeof(magic)-1, skip_spaces },
#define MagickCoderAlias(coder,alias) { alias, coder },
+4 -4
View File
@@ -17,10 +17,10 @@
#include "coders/coders-private.h"
#define MagickSVGHeaders \
MagickCoderHeader("SVG", 1, "?XML") \
MagickCoderHeader("SVG", 1, "?xml") \
MagickCoderHeader("SVG", 1, "SVG") \
MagickCoderHeader("SVG", 1, "svg")
MagickExtendedCoderHeader("SVG", 1, "?XML", MagickTrue) \
MagickExtendedCoderHeader("SVG", 1, "?xml", MagickTrue) \
MagickExtendedCoderHeader("SVG", 1, "SVG", MagickTrue) \
MagickExtendedCoderHeader("SVG", 1, "svg", MagickTrue)
#define MagickSVGAliases \
MagickCoderAlias("SVG", "SVGZ") \