]> granicus.if.org Git - imagemagick/commitdiff
comments and reorganise percent escapes
authoranthony <anthony@git.imagemagick.org>
Sun, 2 Oct 2011 12:01:40 +0000 (12:01 +0000)
committeranthony <anthony@git.imagemagick.org>
Sun, 2 Oct 2011 12:01:40 +0000 (12:01 +0000)
MagickCore/property.c

index 6dab5b2c89b45a7fababcc2368330f8692198abf..ab13b65b1881f427b9a081b35219c584b0a5e556 100644 (file)
@@ -2620,14 +2620,128 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
     p++;
     switch (*p)
     {
-      case 'b':
+      case '[':  /* multi-character substitution */
       {
         char
-          format[MaxTextExtent];
+          pattern[MaxTextExtent];
+
+        const char
+          *key,
+          *value;
+
+        ssize_t
+          depth;
 
         /*
-          File size.
+          Image value.
         */
+        if (strchr(p,']') == (char *) NULL)
+          break;
+        depth=1;
+        p++;
+        for (i=0; (i < (MaxTextExtent-1L)) && (*p != '\0'); i++)
+        {
+          if (*p == '[')
+            depth++;
+          if (*p == ']')
+            depth--;
+          if (depth <= 0)
+            break;
+          pattern[i]=(*p++);
+        }
+        pattern[i]='\0';
+        value=GetImageProperty(image,pattern);
+        if (value != (const char *) NULL)
+          {
+            length=strlen(value);
+            if ((size_t) (q-interpret_text+length+1) >= extent)
+              {
+                extent+=length;
+                interpret_text=(char *) ResizeQuantumMemory(interpret_text,
+                  extent+MaxTextExtent,sizeof(*interpret_text));
+                if (interpret_text == (char *) NULL)
+                  break;
+                q=interpret_text+strlen(interpret_text);
+              }
+            (void) CopyMagickString(q,value,extent);
+            q+=length;
+            break;
+          }
+        else
+          if (IsGlob(pattern) != MagickFalse)
+            {
+              /*
+                Iterate over image properties.
+              */
+              ResetImagePropertyIterator(image);
+              key=GetNextImageProperty(image);
+              while (key != (const char *) NULL)
+              {
+                if (GlobExpression(key,pattern,MagickTrue) != MagickFalse)
+                  {
+                    value=GetImageProperty(image,key);
+                    if (value != (const char *) NULL)
+                      {
+                        length=strlen(key)+strlen(value)+2;
+                        if ((size_t) (q-interpret_text+length+1) >= extent)
+                          {
+                            extent+=length;
+                            interpret_text=(char *) ResizeQuantumMemory(
+                              interpret_text,extent+MaxTextExtent,
+                              sizeof(*interpret_text));
+                            if (interpret_text == (char *) NULL)
+                              break;
+                            q=interpret_text+strlen(interpret_text);
+                          }
+                        q+=FormatLocaleString(q,extent,"%s=%s\n",key,value);
+                      }
+                  }
+                key=GetNextImageProperty(image);
+              }
+            }
+        value=GetMagickProperty(image_info,image,pattern);
+        if (value != (const char *) NULL)
+          {
+            length=strlen(value);
+            if ((size_t) (q-interpret_text+length+1) >= extent)
+              {
+                extent+=length;
+                interpret_text=(char *) ResizeQuantumMemory(interpret_text,
+                  extent+MaxTextExtent,sizeof(*interpret_text));
+                if (interpret_text == (char *) NULL)
+                  break;
+                q=interpret_text+strlen(interpret_text);
+              }
+            (void) CopyMagickString(q,value,extent);
+            q+=length;
+            break;
+          }
+        if (image_info == (ImageInfo *) NULL)
+          break;
+        value=GetImageOption(image_info,pattern);
+        if (value != (char *) NULL)
+          {
+            length=strlen(value);
+            if ((size_t) (q-interpret_text+length+1) >= extent)
+              {
+                extent+=length;
+                interpret_text=(char *) ResizeQuantumMemory(interpret_text,
+                  extent+MaxTextExtent,sizeof(*interpret_text));
+                if (interpret_text == (char *) NULL)
+                  break;
+                q=interpret_text+strlen(interpret_text);
+              }
+            (void) CopyMagickString(q,value,extent);
+            q+=length;
+            break;
+          }
+        break;
+      }
+      case 'b':  /* image size as read in */
+      {
+        char
+          format[MaxTextExtent];
+
         (void) FormatLocaleString(format,MaxTextExtent,"%.20g",(double)
           ((MagickOffsetType) image->extent));
         if (image->extent != (MagickSizeType) ((size_t) image->extent))
@@ -2636,11 +2750,8 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
         q+=ConcatenateMagickString(q,"B",extent);
         break;
       }
-      case 'c':
+      case 'c':  /* image comment properity */
       {
-        /*
-          Image comment.
-        */
         value=GetImageProperty(image,"comment");
         if (value == (const char *) NULL)
           break;
@@ -2658,98 +2769,56 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
         q+=length;
         break;
       }
-      case 'd':
-      case 'e':
-      case 'f':
-      case 't':
+      case 'd':  /* Directory component of filename */
       {
-        /*
-          Label segment is the base of the filename.
-        */
-        if (*image->magick_filename == '\0')
-          break;
-        switch (*p)
-        {
-          case 'd':
-          {
-            /*
-              Directory.
-            */
-            GetPathComponent(image->magick_filename,HeadPath,filename);
-            q+=CopyMagickString(q,filename,extent);
-            break;
-          }
-          case 'e':
-          {
-            /*
-              Filename extension.
-            */
-            GetPathComponent(image->magick_filename,ExtensionPath,filename);
-            q+=CopyMagickString(q,filename,extent);
-            break;
-          }
-          case 'f':
-          {
-            /*
-              Filename.
-            */
-            GetPathComponent(image->magick_filename,TailPath,filename);
-            q+=CopyMagickString(q,filename,extent);
-            break;
-          }
-          case 't':
-          {
-            /*
-              Base filename.
-            */
-            GetPathComponent(image->magick_filename,BasePath,filename);
-            q+=CopyMagickString(q,filename,extent);
-            break;
-          }
-        }
+        GetPathComponent(image->magick_filename,HeadPath,filename);
+        q+=CopyMagickString(q,filename,extent);
         break;
       }
-      case 'g':
+      case 'e': /* Filename extension (suffix) of image file */
+      {
+        GetPathComponent(image->magick_filename,ExtensionPath,filename);
+        q+=CopyMagickString(q,filename,extent);
+        break;
+      }
+      case 'f': /* Filename without directory component */
+      {
+        GetPathComponent(image->magick_filename,TailPath,filename);
+        q+=CopyMagickString(q,filename,extent);
+        break;
+      }
+      case 't': /* Base filename without directory or extention */
+      {
+        GetPathComponent(image->magick_filename,BasePath,filename);
+        q+=CopyMagickString(q,filename,extent);
+        break;
+      }
+      case 'g': /* Image geometry,  canvas and offset */
       {
-        /*
-          Image geometry.
-        */
         q+=FormatLocaleString(q,extent,"%.20gx%.20g%+.20g%+.20g",(double)
           image->page.width,(double) image->page.height,(double) image->page.x,
           (double) image->page.y);
         break;
       }
-      case 'h':
+      case 'h': /* Image height */
       {
-        /*
-          Image height.
-        */
         q+=FormatLocaleString(q,extent,"%.20g",(double) (image->rows != 0 ?
           image->rows : image->magick_rows));
         break;
       }
-      case 'i':
+      case 'i': /* Images filename - (output filename with "info:" ) */
       {
-        /*
-          Image filename.
-        */
         q+=CopyMagickString(q,image->filename,extent);
         break;
       }
-      case 'k':
+      case 'k': /* Number of unique colors  */
       {
-        /*
-          Number of unique colors.
-        */
         q+=FormatLocaleString(q,extent,"%.20g",(double) GetNumberColors(image,
           (FILE *) NULL,&image->exception));
         break;
       }
-      case 'l':
+      case 'l': /* Image label  */
       {
-        /*
-          Image label.
-        */
         value=GetImageProperty(image,"label");
         if (value == (const char *) NULL)
           break;
@@ -2766,65 +2835,44 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
         q+=CopyMagickString(q,value,extent);
         break;
       }
-      case 'm':
+      case 'm': /* Image format (file magick) */
       {
-        /*
-          Image format.
-        */
         q+=CopyMagickString(q,image->magick,extent);
         break;
       }
-      case 'M':
+      case 'M': /* Magick filename - exactly as given incl. read mods */
       {
-        /*
-          Image magick filename.
-        */
         q+=CopyMagickString(q,image->magick_filename,extent);
         break;
       }
-      case 'n':
+      case 'n': /* Number of images in the list.  */
       {
-        /*
-          Number of images in the list.
-        */
         q+=FormatLocaleString(q,extent,"%.20g",(double)
           GetImageListLength(image));
         break;
       }
-      case 'o':
+      case 'o': /* Image output filename */
       {
-        /*
-          Image output filename.
-        */
         q+=CopyMagickString(q,image_info->filename,extent);
         break;
       }
-      case 'p':
+      case 'p': /* Image index in curent image list  */
       {
-        /*
-          Image index in list.
-        */
         q+=FormatLocaleString(q,extent,"%.20g",(double)
             GetImageIndexInList(image));
         break;
       }
-      case 'q':
+      case 'q': /* Quantum depth of image in memory */
       {
-        /*
-          Image depth.
-        */
         q+=FormatLocaleString(q,extent,"%.20g",(double)
           MAGICKCORE_QUANTUM_DEPTH);
         break;
       }
-      case 'r':
+      case 'r': /* Image storage class and colorspace.  */
       {
         ColorspaceType
           colorspace;
 
-        /*
-          Image storage class and colorspace.
-        */
         colorspace=image->colorspace;
         if (IsImageGray(image,&image->exception) != MagickFalse)
           colorspace=GRAYColorspace;
@@ -2834,123 +2882,93 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
           image->matte != MagickFalse ? "Matte" : "");
         break;
       }
-      case 's':
+      case 's': /* Image scene number  */
       {
-        /*
-          Image scene number.
-        */
         if (image_info->number_scenes == 0)
           q+=FormatLocaleString(q,extent,"%.20g",(double) image->scene);
         else
           q+=FormatLocaleString(q,extent,"%.20g",(double) image_info->scene);
         break;
       }
-      case 'u':
+      case 'u': /* Unique filename */
       {
-        /*
-          Unique filename.
-        */
         (void) CopyMagickString(filename,image_info->unique,extent);
         q+=CopyMagickString(q,filename,extent);
         break;
       }
-      case 'w':
+      case 'w': /* Image width  */
       {
-        /*
-          Image width.
-        */
         q+=FormatLocaleString(q,extent,"%.20g",(double) (image->columns != 0 ?
           image->columns : image->magick_columns));
         break;
       }
-      case 'x':
+      case 'x': /* Image horizontal resolution (density).  */
       {
-        /*
-          Image horizontal resolution.
-        */
         q+=FormatLocaleString(q,extent,"%g %s",image->x_resolution,
           CommandOptionToMnemonic(MagickResolutionOptions,(ssize_t)
             image->units));
         break;
       }
-      case 'y':
+      case 'y': /* Image vertical resolution (density)  */
       {
-        /*
-          Image vertical resolution.
-        */
         q+=FormatLocaleString(q,extent,"%g %s",image->y_resolution,
           CommandOptionToMnemonic(MagickResolutionOptions,(ssize_t)
           image->units));
         break;
       }
-      case 'z':
+      case 'z': /* Image depth as read in */
       {
-        /*
-          Image depth.
-        */
         q+=FormatLocaleString(q,extent,"%.20g",(double) image->depth);
         break;
       }
-      case 'A':
+      case 'A': /* Image alpha channel  */
       {
-        /*
-          Image alpha channel.
-        */
         q+=FormatLocaleString(q,extent,"%s",CommandOptionToMnemonic(
           MagickBooleanOptions,(ssize_t) image->matte));
         break;
       }
-      case 'C':
+      case 'C': /* Image compression method.  */
       {
-        /*
-          Image compression method.
-        */
         q+=FormatLocaleString(q,extent,"%s",CommandOptionToMnemonic(
           MagickCompressOptions,(ssize_t) image->compression));
         break;
       }
-      case 'D':
+      case 'D': /* Image dispose method.  */
       {
-        /*
-          Image dispose method.
-        */
         q+=FormatLocaleString(q,extent,"%s",CommandOptionToMnemonic(
           MagickDisposeOptions,(ssize_t) image->dispose));
         break;
       }
-      case 'G':
+      case 'G': /* Image size as geometry = "%wx%h" */
       {
         q+=FormatLocaleString(q,extent,"%.20gx%.20g",(double)
           image->magick_columns,(double) image->magick_rows);
         break;
       }
-      case 'H':
+      case 'H': /* layer canvas height */
       {
         q+=FormatLocaleString(q,extent,"%.20g",(double) image->page.height);
         break;
       }
-      case 'O':
+      case 'O': /* layer canvas offset with sign = "+%X+%Y" */
       {
         q+=FormatLocaleString(q,extent,"%+ld%+ld",(long) image->page.x,(long)
           image->page.y);
         break;
       }
-      case 'P':
+      case 'P': /* layer canvas page size = "%Wx%H" */
       {
         q+=FormatLocaleString(q,extent,"%.20gx%.20g",(double) image->page.width,
           (double) image->page.height);
         break;
       }
-      case 'Q':
+      case 'Q': /* image compression quality */
       {
         q+=FormatLocaleString(q,extent,"%.20g",(double) image->quality);
         break;
       }
-      case 'S':
+      case 'S': /* Image scenes  */
       {
-        /*
-          Image scenes.
-        */
         if (image_info->number_scenes == 0)
           q+=CopyMagickString(q,"2147483647",extent);
         else
@@ -2958,171 +2976,45 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
             image_info->number_scenes));
         break;
       }
-      case 'T':
+      case 'T': /* image time delay for animations */
       {
         q+=FormatLocaleString(q,extent,"%.20g",(double) image->delay);
         break;
       }
-      case 'W':
+      case 'W': /* layer canvas width */
       {
         q+=FormatLocaleString(q,extent,"%.20g",(double) image->page.width);
         break;
       }
-      case 'X':
+      case 'X': /* layer canvas X offset */
       {
         q+=FormatLocaleString(q,extent,"%+.20g",(double) image->page.x);
         break;
       }
-      case 'Y':
+      case 'Y': /* layer canvas Y offset */
       {
         q+=FormatLocaleString(q,extent,"%+.20g",(double) image->page.y);
         break;
       }
-      case 'Z':
+      case 'Z': /* Unique filename. */
       {
-        /*
-          Unique filename.
-        */
         (void) CopyMagickString(filename,image_info->zero,extent);
         q+=CopyMagickString(q,filename,extent);
         break;
       }
-      case '[':
-      {
-        char
-          pattern[MaxTextExtent];
-
-        const char
-          *key,
-          *value;
-
-        ssize_t
-          depth;
-
-        /*
-          Image value.
-        */
-        if (strchr(p,']') == (char *) NULL)
-          break;
-        depth=1;
-        p++;
-        for (i=0; (i < (MaxTextExtent-1L)) && (*p != '\0'); i++)
-        {
-          if (*p == '[')
-            depth++;
-          if (*p == ']')
-            depth--;
-          if (depth <= 0)
-            break;
-          pattern[i]=(*p++);
-        }
-        pattern[i]='\0';
-        value=GetImageProperty(image,pattern);
-        if (value != (const char *) NULL)
-          {
-            length=strlen(value);
-            if ((size_t) (q-interpret_text+length+1) >= extent)
-              {
-                extent+=length;
-                interpret_text=(char *) ResizeQuantumMemory(interpret_text,
-                  extent+MaxTextExtent,sizeof(*interpret_text));
-                if (interpret_text == (char *) NULL)
-                  break;
-                q=interpret_text+strlen(interpret_text);
-              }
-            (void) CopyMagickString(q,value,extent);
-            q+=length;
-            break;
-          }
-        else
-          if (IsGlob(pattern) != MagickFalse)
-            {
-              /*
-                Iterate over image properties.
-              */
-              ResetImagePropertyIterator(image);
-              key=GetNextImageProperty(image);
-              while (key != (const char *) NULL)
-              {
-                if (GlobExpression(key,pattern,MagickTrue) != MagickFalse)
-                  {
-                    value=GetImageProperty(image,key);
-                    if (value != (const char *) NULL)
-                      {
-                        length=strlen(key)+strlen(value)+2;
-                        if ((size_t) (q-interpret_text+length+1) >= extent)
-                          {
-                            extent+=length;
-                            interpret_text=(char *) ResizeQuantumMemory(
-                              interpret_text,extent+MaxTextExtent,
-                              sizeof(*interpret_text));
-                            if (interpret_text == (char *) NULL)
-                              break;
-                            q=interpret_text+strlen(interpret_text);
-                          }
-                        q+=FormatLocaleString(q,extent,"%s=%s\n",key,value);
-                      }
-                  }
-                key=GetNextImageProperty(image);
-              }
-            }
-        value=GetMagickProperty(image_info,image,pattern);
-        if (value != (const char *) NULL)
-          {
-            length=strlen(value);
-            if ((size_t) (q-interpret_text+length+1) >= extent)
-              {
-                extent+=length;
-                interpret_text=(char *) ResizeQuantumMemory(interpret_text,
-                  extent+MaxTextExtent,sizeof(*interpret_text));
-                if (interpret_text == (char *) NULL)
-                  break;
-                q=interpret_text+strlen(interpret_text);
-              }
-            (void) CopyMagickString(q,value,extent);
-            q+=length;
-            break;
-          }
-        if (image_info == (ImageInfo *) NULL)
-          break;
-        value=GetImageOption(image_info,pattern);
-        if (value != (char *) NULL)
-          {
-            length=strlen(value);
-            if ((size_t) (q-interpret_text+length+1) >= extent)
-              {
-                extent+=length;
-                interpret_text=(char *) ResizeQuantumMemory(interpret_text,
-                  extent+MaxTextExtent,sizeof(*interpret_text));
-                if (interpret_text == (char *) NULL)
-                  break;
-                q=interpret_text+strlen(interpret_text);
-              }
-            (void) CopyMagickString(q,value,extent);
-            q+=length;
-            break;
-          }
-        break;
-      }
-      case '@':
+      case '@': /* Image bounding box.  */
       {
         RectangleInfo
           page;
 
-        /*
-          Image bounding box.
-        */
         page=GetImageBoundingBox(image,exception);
         q+=FormatLocaleString(q,MaxTextExtent,"%.20gx%.20g%+.20g%+.20g",
           (double) page.width,(double) page.height,(double) page.x,(double)
           page.y);
         break;
       }
-      case '#':
+      case '#': /* Image signature */
       {
-        /*
-          Image signature.
-        */
         (void) SignatureImage(image,exception);
         value=GetImageProperty(image,"signature");
         if (value == (const char *) NULL)
@@ -3130,12 +3022,12 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
         q+=CopyMagickString(q,value,extent);
         break;
       }
-      case '%':
+      case '%': /* percent escaped */
       {
         *q++=(*p);
         break;
       }
-      default:
+      default: /* percent not expanded */
       {
         *q++='%';
         *q++=(*p);