]> granicus.if.org Git - imagemagick/commitdiff
Use correct extent value when calling GetMagickToken.
authordirk <dirk@git.imagemagick.org>
Fri, 25 Mar 2016 23:36:39 +0000 (00:36 +0100)
committerdirk <dirk@git.imagemagick.org>
Fri, 25 Mar 2016 23:37:02 +0000 (00:37 +0100)
MagickCore/coder.c
MagickCore/color.c
MagickCore/configure.c
MagickCore/delegate.c
MagickCore/draw.c
MagickCore/locale.c
MagickCore/log.c
MagickCore/magic.c
MagickCore/policy.c
MagickCore/type.c
coders/svg.c

index 88f2bbf655b4d6caaec4d95ba0673a01a5a34f3f..e04c5c6ecc8c3b8f9f6d277672b466a42a5ffa21 100644 (file)
@@ -776,7 +776,7 @@ MagickExport MagickBooleanType ListCoderInfo(FILE *file,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d C o d e r L i s t                                                 %
++   L o a d C o d e r C a c h e                                               %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -819,6 +819,9 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,
   MagickStatusType
     status;
 
+  size_t
+    extent;
+
   /*
     Load the coder map file.
   */
@@ -829,12 +832,13 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,
   status=MagickTrue;
   coder_info=(CoderInfo *) NULL;
   token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -844,7 +848,7 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -853,7 +857,7 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -864,10 +868,10 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -926,11 +930,11 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,
         coder_info=(CoderInfo *) NULL;
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'M':
index b93b1cf4b912b2247a163ad1d17e33c0455867dc..f9f7ca6a46bff1aefc63b203cdac24b8375fc2c5 100644 (file)
@@ -1950,7 +1950,7 @@ MagickExport MagickBooleanType ListColorInfo(FILE *file,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d C o l o r L i s t                                                 %
++   L o a d C o l o r C a c h e                                               %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1993,6 +1993,9 @@ static MagickBooleanType LoadColorCache(LinkedListInfo *color_cache,
   MagickStatusType
     status;
 
+  size_t
+    extent;
+
   /*
     Load the color map file.
   */
@@ -2003,12 +2006,13 @@ static MagickBooleanType LoadColorCache(LinkedListInfo *color_cache,
   status=MagickTrue;
   color_info=(ColorInfo *) NULL;
   token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -2018,7 +2022,7 @@ static MagickBooleanType LoadColorCache(LinkedListInfo *color_cache,
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -2027,7 +2031,7 @@ static MagickBooleanType LoadColorCache(LinkedListInfo *color_cache,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -2038,10 +2042,10 @@ static MagickBooleanType LoadColorCache(LinkedListInfo *color_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -2099,11 +2103,11 @@ static MagickBooleanType LoadColorCache(LinkedListInfo *color_cache,
         color_info=(ColorInfo *) NULL;
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'C':
index 0962035183f4ebbd6b22a2125c60e0683b492bd5..cd64e3d5bf3dfad9a85013abe338c1ba43a9f755 100644 (file)
@@ -1109,7 +1109,7 @@ MagickExport MagickBooleanType ListConfigureInfo(FILE *file,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d C o n f i g u r e L i s t                                         %
++   L o a d C o n f i g u r e C a c h e                                       %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1152,6 +1152,9 @@ static MagickBooleanType LoadConfigureCache(LinkedListInfo *configure_cache,
   MagickStatusType
     status;
 
+  size_t
+    extent;
+
   /*
     Load the configure map file.
   */
@@ -1159,13 +1162,14 @@ static MagickBooleanType LoadConfigureCache(LinkedListInfo *configure_cache,
     "Loading configure file \"%s\" ...",filename);
   status=MagickTrue;
   configure_info=(ConfigureInfo *) NULL;
-  token=AcquireString((char *) xml);
+  token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1175,7 +1179,7 @@ static MagickBooleanType LoadConfigureCache(LinkedListInfo *configure_cache,
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1184,7 +1188,7 @@ static MagickBooleanType LoadConfigureCache(LinkedListInfo *configure_cache,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -1195,10 +1199,10 @@ static MagickBooleanType LoadConfigureCache(LinkedListInfo *configure_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -1260,11 +1264,11 @@ static MagickBooleanType LoadConfigureCache(LinkedListInfo *configure_cache,
     /*
       Parse configure element.
     */
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'N':
index c8a4334304f5c83b2006a0fcf6ff42775ecb49de..bea0555761720b54b2e449a33395f45b46c8b69a 100644 (file)
@@ -1461,7 +1461,7 @@ MagickExport MagickBooleanType ListDelegateInfo(FILE *file,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d D e l e g a t e L i s t                                           %
++   L o a d D e l e g a t e C a c h e                                         %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1504,6 +1504,9 @@ static MagickBooleanType LoadDelegateCache(LinkedListInfo *delegate_cache,
   MagickStatusType
     status;
 
+  size_t
+    extent;
+
   /*
     Load the delegate map file.
   */
@@ -1514,12 +1517,13 @@ static MagickBooleanType LoadDelegateCache(LinkedListInfo *delegate_cache,
   status=MagickTrue;
   delegate_info=(DelegateInfo *) NULL;
   token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(const char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1529,7 +1533,7 @@ static MagickBooleanType LoadDelegateCache(LinkedListInfo *delegate_cache,
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1538,7 +1542,7 @@ static MagickBooleanType LoadDelegateCache(LinkedListInfo *delegate_cache,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -1549,10 +1553,10 @@ static MagickBooleanType LoadDelegateCache(LinkedListInfo *delegate_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -1611,11 +1615,11 @@ static MagickBooleanType LoadDelegateCache(LinkedListInfo *delegate_cache,
         delegate_info=(DelegateInfo *) NULL;
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'C':
index a305091e5ce005d2dc79165001827b920d012ea9..11eb84a48e7722642db882ac5c908c44671b84e5 100644 (file)
@@ -1714,6 +1714,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
     bounds;
 
   size_t
+    extent,
     length,
     number_points,
     number_stops;
@@ -1784,6 +1785,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       graphic_context[n]->viewbox.height=image->rows;
     }
   token=AcquireString(primitive);
+  extent=strlen(token)+MagickPathExtent;
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
     return(MagickFalse);
   status=MagickTrue;
@@ -1792,7 +1794,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
     /*
       Interpret graphic primitive.
     */
-    GetMagickToken(q,&q,MagickPathExtent,keyword);
+    GetMagickToken(q,&q,extent,keyword);
     if (*keyword == '\0')
       break;
     if (*keyword == '#')
@@ -1817,27 +1819,27 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       {
         if (LocaleCompare("affine",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.rx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.ry=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,(char **) NULL);
             break;
           }
@@ -1864,7 +1866,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("border-color",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) QueryColorCompliance(token,AllCompliance,
               &graphic_context[n]->border_color,exception);
             break;
@@ -1880,7 +1882,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             /*
               Create clip mask.
             */
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->clip_mask,token);
             (void) DrawClipPath(image,graphic_context[n],
               graphic_context[n]->clip_mask,exception);
@@ -1891,7 +1893,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               fill_rule;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             fill_rule=ParseCommandOption(MagickFillRuleOptions,MagickFalse,
               token);
             if (fill_rule == -1)
@@ -1905,7 +1907,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               clip_units;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             clip_units=ParseCommandOption(MagickClipPathOptions,MagickFalse,
               token);
             if (clip_units == -1)
@@ -1946,7 +1948,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               decorate;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             decorate=ParseCommandOption(MagickDecorateOptions,MagickFalse,
               token);
             if (decorate == -1)
@@ -1957,7 +1959,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("density",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->density,token);
             break;
           }
@@ -1966,7 +1968,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               direction;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             direction=ParseCommandOption(MagickDirectionOptions,MagickFalse,
               token);
             if (direction == -1)
@@ -1988,7 +1990,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("encoding",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->encoding,token);
             break;
           }
@@ -2000,7 +2002,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       {
         if (LocaleCompare("fill",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(pattern,MagickPathExtent,"%s",token);
             if (GetImageArtifact(image,pattern) != (const char *) NULL)
               (void) DrawPatternPath(image,draw_info,token,
@@ -2027,7 +2029,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("fill-opacity",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
             graphic_context[n]->fill.alpha=(double) QuantumRange*
               factor*StringToDouble(token,(char **) NULL);
@@ -2038,7 +2040,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               fill_rule;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             fill_rule=ParseCommandOption(MagickFillRuleOptions,MagickFalse,
               token);
             if (fill_rule == -1)
@@ -2049,7 +2051,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("font",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->font,token);
             if (LocaleCompare("none",token) == 0)
               graphic_context[n]->font=(char *)
@@ -2058,13 +2060,13 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("font-family",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->family,token);
             break;
           }
         if (LocaleCompare("font-size",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->pointsize=StringToDouble(token,(char **) NULL);
             break;
           }
@@ -2073,7 +2075,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               stretch;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             stretch=ParseCommandOption(MagickStretchOptions,MagickFalse,token);
             if (stretch == -1)
               status=MagickFalse;
@@ -2086,7 +2088,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               style;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             style=ParseCommandOption(MagickStyleOptions,MagickFalse,token);
             if (style == -1)
               status=MagickFalse;
@@ -2099,7 +2101,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               weight;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             weight=ParseCommandOption(MagickWeightOptions,MagickFalse,
               token);
             if (weight == -1)
@@ -2115,7 +2117,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       {
         if (LocaleCompare("gradient-units",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("gravity",keyword) == 0)
@@ -2123,7 +2125,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               gravity;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             gravity=ParseCommandOption(MagickGravityOptions,MagickFalse,token);
             if (gravity == -1)
               status=MagickFalse;
@@ -2143,7 +2145,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
               compose;
 
             primitive_type=ImagePrimitive;
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             compose=ParseCommandOption(MagickComposeOptions,MagickFalse,token);
             if (compose == -1)
               status=MagickFalse;
@@ -2153,14 +2155,14 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("interline-spacing",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->interline_spacing=StringToDouble(token,
               (char **) NULL);
             break;
           }
         if (LocaleCompare("interword-spacing",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->interword_spacing=StringToDouble(token,
               (char **) NULL);
             break;
@@ -2173,7 +2175,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       {
         if (LocaleCompare("kerning",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->kerning=StringToDouble(token,(char **) NULL);
             break;
           }
@@ -2194,12 +2196,12 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       {
         if (LocaleCompare("offset",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("opacity",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
             graphic_context[n]->alpha=ClampToQuantum(QuantumRange*(1.0-((1.0-
               QuantumScale*graphic_context[n]->alpha)*factor*
@@ -2236,7 +2238,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("pop",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (LocaleCompare("clip-path",token) == 0)
               break;
             if (LocaleCompare("defs",token) == 0)
@@ -2268,27 +2270,27 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("push",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (LocaleCompare("clip-path",token) == 0)
               {
                 char
                   name[MagickPathExtent];
 
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) FormatLocaleString(name,MagickPathExtent,"%s",token);
                 for (p=q; *q != '\0'; )
                 {
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                   if (LocaleCompare(token,"pop") != 0)
                     continue;
-                  GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+                  GetMagickToken(q,(const char **) NULL,extent,token);
                   if (LocaleCompare(token,"clip-path") != 0)
                     continue;
                   break;
                 }
                 (void) CopyMagickString(token,p,(size_t) (q-p-4+1));
                 (void) SetImageArtifact(image,name,token);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("gradient",token) == 0)
@@ -2301,36 +2303,36 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                 SegmentInfo
                   segment;
 
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) CopyMagickString(type,token,MagickPathExtent);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 segment.x1=StringToDouble(token,(char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 segment.y1=StringToDouble(token,(char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 segment.x2=StringToDouble(token,(char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 segment.y2=StringToDouble(token,(char **) NULL);
                 if (LocaleCompare(type,"radial") == 0)
                   {
-                    GetMagickToken(q,&q,MagickPathExtent,token);
+                    GetMagickToken(q,&q,extent,token);
                     if (*token == ',')
-                      GetMagickToken(q,&q,MagickPathExtent,token);
+                      GetMagickToken(q,&q,extent,token);
                   }
                 for (p=q; *q != '\0'; )
                 {
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                   if (LocaleCompare(token,"pop") != 0)
                     continue;
-                  GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+                  GetMagickToken(q,(const char **) NULL,extent,token);
                   if (LocaleCompare(token,"gradient") != 0)
                     continue;
                   break;
@@ -2359,7 +2361,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                   MagickMax(fabs(bounds.y2-bounds.y1+1.0),1.0),
                   bounds.x1,bounds.y1);
                 (void) SetImageArtifact(image,key,geometry);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("pattern",token) == 0)
@@ -2371,32 +2373,32 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                 RectangleInfo
                   pattern_bounds;
 
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 pattern_bounds.x=(ssize_t) ceil(StringToDouble(token,
                   (char **) NULL)-0.5);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 pattern_bounds.y=(ssize_t) ceil(StringToDouble(token,
                   (char **) NULL)-0.5);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 pattern_bounds.width=(size_t) floor(StringToDouble(token,
                   (char **) NULL)+0.5);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 pattern_bounds.height=(size_t) floor(StringToDouble(token,
                   (char **) NULL)+0.5);
                 for (p=q; *q != '\0'; )
                 {
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                   if (LocaleCompare(token,"pop") != 0)
                     continue;
-                  GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+                  GetMagickToken(q,(const char **) NULL,extent,token);
                   if (LocaleCompare(token,"pattern") != 0)
                     continue;
                   break;
@@ -2411,7 +2413,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                   (double)pattern_bounds.height,(double)pattern_bounds.x,
                   (double)pattern_bounds.y);
                 (void) SetImageArtifact(image,key,geometry);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("graphic-context",token) == 0)
@@ -2448,7 +2450,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("rotate",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             angle=StringToDouble(token,(char **) NULL);
             affine.sx=cos(DegreesToRadians(fmod((double) angle,360.0)));
             affine.rx=sin(DegreesToRadians(fmod((double) angle,360.0)));
@@ -2469,24 +2471,24 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       {
         if (LocaleCompare("scale",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,(char **) NULL);
             break;
           }
         if (LocaleCompare("skewX",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             angle=StringToDouble(token,(char **) NULL);
             affine.ry=sin(DegreesToRadians(angle));
             break;
           }
         if (LocaleCompare("skewY",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             angle=StringToDouble(token,(char **) NULL);
             affine.rx=(-tan(DegreesToRadians(angle)/2.0));
             break;
@@ -2509,17 +2511,17 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                   image->filename);
                 break;
               }
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) QueryColorCompliance(token,AllCompliance,&stop_color,
               exception);
             stops[number_stops-1].color=stop_color;
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             stops[number_stops-1].offset=StringToDouble(token,(char **) NULL);
             break;
           }
         if (LocaleCompare("stroke",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(pattern,MagickPathExtent,"%s",token);
             if (GetImageArtifact(image,pattern) != (const char *) NULL)
               (void) DrawPatternPath(image,draw_info,token,
@@ -2546,7 +2548,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("stroke-antialias",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->stroke_antialias=
               StringToLong(token) != 0 ? MagickTrue : MagickFalse;
             break;
@@ -2562,14 +2564,14 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                   *r;
 
                 r=q;
-                GetMagickToken(r,&r,MagickPathExtent,token);
+                GetMagickToken(r,&r,extent,token);
                 if (*token == ',')
-                  GetMagickToken(r,&r,MagickPathExtent,token);
+                  GetMagickToken(r,&r,extent,token);
                 for (x=0; IsPoint(token) != MagickFalse; x++)
                 {
-                  GetMagickToken(r,&r,MagickPathExtent,token);
+                  GetMagickToken(r,&r,extent,token);
                   if (*token == ',')
-                    GetMagickToken(r,&r,MagickPathExtent,token);
+                    GetMagickToken(r,&r,extent,token);
                 }
                 graphic_context[n]->dash_pattern=(double *)
                   AcquireQuantumMemory((size_t) (2UL*x+1UL),
@@ -2583,9 +2585,9 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                   }
                 for (j=0; j < x; j++)
                 {
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                   if (*token == ',')
-                    GetMagickToken(q,&q,MagickPathExtent,token);
+                    GetMagickToken(q,&q,extent,token);
                   graphic_context[n]->dash_pattern[j]=StringToDouble(token,
                     (char **) NULL);
                 }
@@ -2596,12 +2598,12 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                 graphic_context[n]->dash_pattern[j]=0.0;
                 break;
               }
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("stroke-dashoffset",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->dash_offset=StringToDouble(token,
               (char **) NULL);
             break;
@@ -2611,7 +2613,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               linecap;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             linecap=ParseCommandOption(MagickLineCapOptions,MagickFalse,token);
             if (linecap == -1)
               status=MagickFalse;
@@ -2624,7 +2626,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               linejoin;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             linejoin=ParseCommandOption(MagickLineJoinOptions,MagickFalse,
               token);
             if (linejoin == -1)
@@ -2635,13 +2637,13 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("stroke-miterlimit",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->miterlimit=StringToUnsignedLong(token);
             break;
           }
         if (LocaleCompare("stroke-opacity",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
             graphic_context[n]->stroke.alpha=(double) QuantumRange*
               factor*StringToDouble(token,(char **) NULL);
@@ -2649,7 +2651,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("stroke-width",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->stroke_width=StringToDouble(token,
               (char **) NULL);
             break;
@@ -2670,7 +2672,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               align;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             align=ParseCommandOption(MagickAlignOptions,MagickFalse,token);
             if (align == -1)
               status=MagickFalse;
@@ -2683,7 +2685,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             ssize_t
               align;
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             align=ParseCommandOption(MagickAlignOptions,MagickFalse,token);
             if (align == -1)
               status=MagickFalse;
@@ -2693,25 +2695,25 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           }
         if (LocaleCompare("text-antialias",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->text_antialias=
               StringToLong(token) != 0 ? MagickTrue : MagickFalse;
             break;
           }
         if (LocaleCompare("text-undercolor",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) QueryColorCompliance(token,AllCompliance,
               &graphic_context[n]->undercolor,exception);
             break;
           }
         if (LocaleCompare("translate",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,(char **) NULL);
             break;
           }
@@ -2723,22 +2725,22 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       {
         if (LocaleCompare("viewbox",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             graphic_context[n]->viewbox.x=(ssize_t) ceil(StringToDouble(token,
               (char **) NULL)-0.5);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             graphic_context[n]->viewbox.y=(ssize_t) ceil(StringToDouble(token,
               (char **) NULL)-0.5);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             graphic_context[n]->viewbox.width=(size_t) floor(StringToDouble(
               token,(char **) NULL)+0.5);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             graphic_context[n]->viewbox.height=(size_t) floor(StringToDouble(
               token,(char **) NULL)+0.5);
             break;
@@ -2803,15 +2805,15 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
       */
       if (IsPoint(q) == MagickFalse)
         break;
-      GetMagickToken(q,&q,MagickPathExtent,token);
+      GetMagickToken(q,&q,extent,token);
       point.x=StringToDouble(token,(char **) NULL);
-      GetMagickToken(q,&q,MagickPathExtent,token);
+      GetMagickToken(q,&q,extent,token);
       if (*token == ',')
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
       point.y=StringToDouble(token,(char **) NULL);
-      GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+      GetMagickToken(q,(const char **) NULL,extent,token);
       if (*token == ',')
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
       primitive_info[i].primitive=primitive_type;
       primitive_info[i].point=point;
       primitive_info[i].coordinates=0;
@@ -2891,7 +2893,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
           *s,
           *t;
 
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
         length=1;
         t=token;
         for (s=token; *s != '\0'; s=t)
@@ -3068,7 +3070,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             status=MagickFalse;
             break;
           }
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
         method=ParseCommandOption(MagickMethodOptions,MagickFalse,token);
         if (method == -1)
           status=MagickFalse;
@@ -3084,7 +3086,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             break;
           }
         if (*token != ',')
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         primitive_info[j].text=AcquireString(token);
         break;
       }
@@ -3095,7 +3097,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             status=MagickFalse;
             break;
           }
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
         primitive_info[j].text=AcquireString(token);
         break;
       }
index 91f900c41e4354a8189591c51c5d705bfe70e094..0fa3f2332869ffab07062a36b6dd783002fe8aa8 100644 (file)
@@ -1083,7 +1083,7 @@ MagickExport MagickBooleanType ListLocaleInfo(FILE *file,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d L o c a l e L i s t                                               %
++   L o a d L o c a l e C a c h e                                             %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1174,6 +1174,9 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
   register char
     *p;
 
+  size_t
+    extent;
+
   /*
     Read the locale configure file.
   */
@@ -1188,12 +1191,13 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
   *keyword='\0';
   fatal_handler=SetFatalErrorHandler(LocaleFatalErrorHandler);
   token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickLocaleExtent);
@@ -1204,7 +1208,7 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
         {
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           while (isspace((int) ((unsigned char) *q)) != 0)
             q++;
         }
@@ -1217,7 +1221,7 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
         {
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           while (isspace((int) ((unsigned char) *q)) != 0)
             q++;
         }
@@ -1231,10 +1235,10 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickLocaleExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"locale") == 0)
             {
               if (LocaleCompare(locale,token) != 0)
@@ -1281,10 +1285,10 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
         while ((*token != '>') && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickLocaleExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         }
         continue;
       }
@@ -1306,10 +1310,10 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
         while ((*token != '>') && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickLocaleExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"name") == 0)
             {
               (void) ConcatenateMagickString(tag,token,MagickLocaleExtent);
@@ -1368,7 +1372,7 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *locale_cache,
         (void) ConcatenateMagickString(tag,"/",MagickLocaleExtent);
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
   }
index eb1deff3a2a57c58f6eefc9add5eec9d338fd0fa..820fd8102e88001a44a85ad9b35d515852ff4f97 100644 (file)
@@ -1395,7 +1395,7 @@ MagickBooleanType LogMagickEvent(const LogEventType type,const char *module,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d L o g L i s t                                                     %
++   L o a d L o g C a c h e                                                   %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1436,19 +1436,23 @@ static MagickBooleanType LoadLogCache(LinkedListInfo *log_cache,const char *xml,
   MagickStatusType
     status;
 
+  size_t
+    extent;
+
   /*
     Load the log map file.
   */
   if (xml == (const char *) NULL)
     return(MagickFalse);
   status=MagickTrue;
-  token=AcquireString((const char *) xml);
+  token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(const char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1458,7 +1462,7 @@ static MagickBooleanType LoadLogCache(LinkedListInfo *log_cache,const char *xml,
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1467,7 +1471,7 @@ static MagickBooleanType LoadLogCache(LinkedListInfo *log_cache,const char *xml,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -1478,10 +1482,10 @@ static MagickBooleanType LoadLogCache(LinkedListInfo *log_cache,const char *xml,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -1538,11 +1542,11 @@ static MagickBooleanType LoadLogCache(LinkedListInfo *log_cache,const char *xml,
         log_info=(LogInfo *) NULL;
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'E':
index c3f38dbf6b190430e35265ce22033f2484919f53..635d675759d69fb1fcf8a0d63100832bc23303b7 100644 (file)
@@ -797,7 +797,7 @@ MagickExport MagickBooleanType ListMagicInfo(FILE *file,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d M a g i c L i s t                                                 %
++   L o a d M a g i c C a c h e                                               %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -840,6 +840,9 @@ static MagickBooleanType LoadMagicCache(LinkedListInfo *magic_cache,
   MagickStatusType
     status;
 
+  size_t
+    extent;
+
   /*
     Load the magic map file.
   */
@@ -850,12 +853,13 @@ static MagickBooleanType LoadMagicCache(LinkedListInfo *magic_cache,
   status=MagickTrue;
   magic_info=(MagicInfo *) NULL;
   token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -865,7 +869,7 @@ static MagickBooleanType LoadMagicCache(LinkedListInfo *magic_cache,
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -874,7 +878,7 @@ static MagickBooleanType LoadMagicCache(LinkedListInfo *magic_cache,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -885,10 +889,10 @@ static MagickBooleanType LoadMagicCache(LinkedListInfo *magic_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -947,11 +951,11 @@ static MagickBooleanType LoadMagicCache(LinkedListInfo *magic_cache,
         magic_info=(MagicInfo *) NULL;
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'N':
index da1ff582b6cce15b8b1bfa3fe38ce3bd9797f23e..3df4d3d5eb3a90f4ea0cf5a19fb87cc940007e89 100644 (file)
@@ -705,7 +705,7 @@ MagickExport MagickBooleanType ListPolicyInfo(FILE *file,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d P o l i c y L i s t                                               %
++   L o a d P o l i c y C a c h e                                             %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -748,6 +748,9 @@ static MagickBooleanType LoadPolicyCache(LinkedListInfo *policy_cache,
   PolicyInfo
     *policy_info;
 
+  size_t
+    extent;
+
   /*
     Load the policy map file.
   */
@@ -758,12 +761,13 @@ static MagickBooleanType LoadPolicyCache(LinkedListInfo *policy_cache,
   status=MagickTrue;
   policy_info=(PolicyInfo *) NULL;
   token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
   for (q=(const char *) xml; *q != '\0'; )
   {
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -773,7 +777,7 @@ static MagickBooleanType LoadPolicyCache(LinkedListInfo *policy_cache,
           Docdomain element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -782,7 +786,7 @@ static MagickBooleanType LoadPolicyCache(LinkedListInfo *policy_cache,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -793,10 +797,10 @@ static MagickBooleanType LoadPolicyCache(LinkedListInfo *policy_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -854,11 +858,11 @@ static MagickBooleanType LoadPolicyCache(LinkedListInfo *policy_cache,
         policy_info=(PolicyInfo *) NULL;
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'D':
index 1ac7094f1fac17af44e666336b09e4db86e6e68c..58c19e545badd131a64b7cb8fd2c1689b239ad33 100644 (file)
@@ -1003,7 +1003,7 @@ MagickExport MagickBooleanType ListTypeInfo(FILE *file,ExceptionInfo *exception)
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d T y p e L i s t                                                   %
++   L o a d T y p e C a c h e                                                 %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1082,6 +1082,9 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *type_cache,
   MagickStatusType
     status;
 
+  size_t
+    extent;
+
   TypeInfo
     *type_info;
 
@@ -1095,6 +1098,7 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *type_cache,
   status=MagickTrue;
   type_info=(TypeInfo *) NULL;
   token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
   /*
     Determine the Ghostscript font path.
@@ -1108,7 +1112,7 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *type_cache,
     /*
       Interpret XML.
     */
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1118,7 +1122,7 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *type_cache,
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1127,7 +1131,7 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *type_cache,
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -1138,10 +1142,10 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *type_cache,
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetMagickToken(q,&q,MagickPathExtent,token);
+          GetMagickToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > 200)
@@ -1203,11 +1207,11 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *type_cache,
         type_info=(TypeInfo *) NULL;
         continue;
       }
-    GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+    GetMagickToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetMagickToken(q,&q,MagickPathExtent,token);
-    GetMagickToken(q,&q,MagickPathExtent,token);
+    GetMagickToken(q,&q,extent,token);
+    GetMagickToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'E':
index 38d9a6d906805da57b2dee1fbfb4f602b1a8e640..17df061ff18b4d778c9e0b38f2e97f2a9c49d7b6 100644 (file)
@@ -3634,14 +3634,13 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
     i;
 
   size_t
-    length;
+    extent,
+    length,
+    number_points;
 
   SVGInfo
     svg_info;
 
-  size_t
-    number_points;
-
   /*
     Open output image file.
   */
@@ -3688,6 +3687,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
     ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
   GetAffineMatrix(&affine);
   token=AcquireString(value);
+  extent=strlen(token)+MagickPathExtent;
   active=MagickFalse;
   n=0;
   status=MagickTrue;
@@ -3696,7 +3696,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
     /*
       Interpret graphic primitive.
     */
-    GetMagickToken(q,&q,MagickPathExtent,keyword);
+    GetMagickToken(q,&q,token,keyword);
     if (*keyword == '\0')
       break;
     if (*keyword == '#')
@@ -3732,27 +3732,27 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("affine",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.rx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.ry=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,(char **) NULL);
             break;
           }
@@ -3763,7 +3763,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("angle",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             affine.rx=StringToDouble(token,(char **) NULL);
             affine.ry=StringToDouble(token,(char **) NULL);
             break;
@@ -3792,7 +3792,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("clip-path",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "clip-path:url(#%s);",token);
             (void) WriteBlobString(image,message);
@@ -3800,7 +3800,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("clip-rule",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "clip-rule:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3808,7 +3808,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("clip-units",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "clipPathUnits=%s;",token);
             (void) WriteBlobString(image,message);
@@ -3832,7 +3832,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("decorate",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-decoration:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3857,7 +3857,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("fill",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"fill:%s;",
               token);
             (void) WriteBlobString(image,message);
@@ -3865,7 +3865,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("fill-rule",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "fill-rule:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3873,7 +3873,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("fill-alpha",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "fill-alpha:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3881,7 +3881,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("font-family",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-family:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3889,7 +3889,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("font-stretch",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-stretch:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3897,7 +3897,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("font-style",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-style:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3905,7 +3905,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("font-size",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-size:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3913,7 +3913,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("font-weight",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-weight:%s;",token);
             (void) WriteBlobString(image,message);
@@ -3927,12 +3927,12 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("gradient-units",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("text-align",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-align %s ",token);
             (void) WriteBlobString(image,message);
@@ -3940,7 +3940,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("text-anchor",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-anchor %s ",token);
             (void) WriteBlobString(image,message);
@@ -3954,7 +3954,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("image",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             primitive_type=ImagePrimitive;
             break;
           }
@@ -3977,7 +3977,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("opacity",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"opacity %s ",
               token);
             (void) WriteBlobString(image,message);
@@ -4011,7 +4011,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("pop",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (LocaleCompare("clip-path",token) == 0)
               {
                 (void) WriteBlobString(image,"</clipPath>\n");
@@ -4048,10 +4048,10 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("push",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (LocaleCompare("clip-path",token) == 0)
               {
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) FormatLocaleString(message,MagickPathExtent,
                   "<clipPath id=\"%s\">\n",token);
                 (void) WriteBlobString(image,message);
@@ -4064,27 +4064,27 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
               }
             if (LocaleCompare("gradient",token) == 0)
               {
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) CopyMagickString(type,token,MagickPathExtent);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 svg_info.segment.x1=StringToDouble(token,(char **) NULL);
                 svg_info.element.cx=StringToDouble(token,(char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 svg_info.segment.y1=StringToDouble(token,(char **) NULL);
                 svg_info.element.cy=StringToDouble(token,(char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 svg_info.segment.x2=StringToDouble(token,(char **) NULL);
                 svg_info.element.major=StringToDouble(token,
                   (char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 svg_info.segment.y2=StringToDouble(token,(char **) NULL);
                 svg_info.element.minor=StringToDouble(token,
                   (char **) NULL);
@@ -4094,9 +4094,9 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
                   svg_info.segment.y1,svg_info.segment.x2,svg_info.segment.y2);
                 if (LocaleCompare(type,"radial") == 0)
                   {
-                    GetMagickToken(q,&q,MagickPathExtent,token);
+                    GetMagickToken(q,&q,extent,token);
                     if (*token == ',')
-                      GetMagickToken(q,&q,MagickPathExtent,token);
+                      GetMagickToken(q,&q,extent,token);
                     svg_info.element.angle=StringToDouble(token,
                       (char **) NULL);
                     (void) FormatLocaleString(message,MagickPathExtent,
@@ -4122,22 +4122,22 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
               }
             if (LocaleCompare("pattern",token) == 0)
               {
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 svg_info.bounds.x=StringToDouble(token,(char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 svg_info.bounds.y=StringToDouble(token,(char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 svg_info.bounds.width=StringToDouble(token,
                   (char **) NULL);
-                GetMagickToken(q,&q,MagickPathExtent,token);
+                GetMagickToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                 svg_info.bounds.height=StringToDouble(token,
                   (char **) NULL);
                 (void) FormatLocaleString(message,MagickPathExtent,
@@ -4168,7 +4168,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("rotate",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"rotate(%s) ",
               token);
             (void) WriteBlobString(image,message);
@@ -4182,17 +4182,17 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("scale",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,(char **) NULL);
             break;
           }
         if (LocaleCompare("skewX",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"skewX(%s) ",
               token);
             (void) WriteBlobString(image,message);
@@ -4200,7 +4200,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("skewY",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"skewY(%s) ",
               token);
             (void) WriteBlobString(image,message);
@@ -4211,9 +4211,9 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
             char
               color[MagickPathExtent];
 
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) CopyMagickString(color,token,MagickPathExtent);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "  <stop offset=\"%s\" stop-color=\"%s\" />\n",token,color);
             (void) WriteBlobString(image,message);
@@ -4221,7 +4221,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"stroke:%s;",
               token);
             (void) WriteBlobString(image,message);
@@ -4229,7 +4229,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke-antialias",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-antialias:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4243,13 +4243,13 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
                   k;
 
                 p=q;
-                GetMagickToken(p,&p,MagickPathExtent,token);
+                GetMagickToken(p,&p,extent,token);
                 for (k=0; IsPoint(token); k++)
-                  GetMagickToken(p,&p,MagickPathExtent,token);
+                  GetMagickToken(p,&p,extent,token);
                 (void) WriteBlobString(image,"stroke-dasharray:");
                 for (j=0; j < k; j++)
                 {
-                  GetMagickToken(q,&q,MagickPathExtent,token);
+                  GetMagickToken(q,&q,extent,token);
                   (void) FormatLocaleString(message,MagickPathExtent,"%s ",
                     token);
                   (void) WriteBlobString(image,message);
@@ -4257,7 +4257,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
                 (void) WriteBlobString(image,";");
                 break;
               }
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-dasharray:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4265,7 +4265,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke-dashoffset",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-dashoffset:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4273,7 +4273,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke-linecap",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-linecap:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4281,7 +4281,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke-linejoin",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-linejoin:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4289,7 +4289,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke-miterlimit",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-miterlimit:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4297,7 +4297,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke-opacity",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-opacity:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4305,7 +4305,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("stroke-width",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-width:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4324,7 +4324,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("text-antialias",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-antialias:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4337,11 +4337,11 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
           }
         if (LocaleCompare("translate",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,(char **) NULL);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,(char **) NULL);
             break;
           }
@@ -4353,16 +4353,16 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       {
         if (LocaleCompare("viewbox",keyword) == 0)
           {
-            GetMagickToken(q,&q,MagickPathExtent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
+            GetMagickToken(q,&q,extent,token);
             if (*token == ',')
-              GetMagickToken(q,&q,MagickPathExtent,token);
-            GetMagickToken(q,&q,MagickPathExtent,token);
+              GetMagickToken(q,&q,extent,token);
+            GetMagickToken(q,&q,extent,token);
             break;
           }
         status=MagickFalse;
@@ -4390,15 +4390,15 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
       */
       if (IsPoint(q) == MagickFalse)
         break;
-      GetMagickToken(q,&q,MagickPathExtent,token);
+      GetMagickToken(q,&q,extent,token);
       point.x=StringToDouble(token,(char **) NULL);
-      GetMagickToken(q,&q,MagickPathExtent,token);
+      GetMagickToken(q,&q,extent,token);
       if (*token == ',')
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
       point.y=StringToDouble(token,(char **) NULL);
-      GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
+      GetMagickToken(q,(const char **) NULL,extent,token);
       if (*token == ',')
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
       primitive_info[i].primitive=primitive_type;
       primitive_info[i].point=point;
       primitive_info[i].coordinates=0;
@@ -4595,7 +4595,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
         int
           number_attributes;
 
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
         number_attributes=1;
         for (p=token; *p != '\0'; p++)
           if (isalpha((int) *p))
@@ -4626,7 +4626,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
             status=MagickFalse;
             break;
           }
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
         if (LocaleCompare("point",token) == 0)
           primitive_info[j].method=PointMethod;
         if (LocaleCompare("replace",token) == 0)
@@ -4649,7 +4649,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
             status=MagickFalse;
             break;
           }
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
         (void) FormatLocaleString(message,MagickPathExtent,
           "  <text x=\"%g\" y=\"%g\">",primitive_info[j].point.x,
           primitive_info[j].point.y);
@@ -4672,7 +4672,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
             status=MagickFalse;
             break;
           }
-        GetMagickToken(q,&q,MagickPathExtent,token);
+        GetMagickToken(q,&q,extent,token);
         (void) FormatLocaleString(message,MagickPathExtent,
           "  <image x=\"%g\" y=\"%g\" width=\"%g\" height=\"%g\" "
           "xlink:href=\"%s\"/>\n",primitive_info[j].point.x,