]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 20 May 2012 16:14:14 +0000 (16:14 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 20 May 2012 16:14:14 +0000 (16:14 +0000)
coders/mpc.c

index 4b22426ce537e662995a706898c965b1535dfdb7..a156a73c9e77507f02fcf027e1cabd67a7e29c24 100644 (file)
@@ -1298,20 +1298,24 @@ static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image,
       value=GetImageProperty(image,property,exception);
       if (value != (const char *) NULL)
         {
-          for (i=0; i < (ssize_t) strlen(value); i++)
+          length=strlen(value);
+          for (i=0; i < (ssize_t) length; i++)
             if (isspace((int) ((unsigned char) value[i])) != 0)
               break;
-          if (i == (ssize_t) strlen(value))
-            (void) WriteBlob(image,strlen(value),(const unsigned char *) value);
+          if (i == (ssize_t) length)
+            (void) WriteBlob(image,length,(const unsigned char *) value);
           else
             {
               (void) WriteBlobByte(image,'{');
-              for (i=0; i < (ssize_t) strlen(value); i++)
-              {
-                if (value[i] == (int) '}')
-                  (void) WriteBlobByte(image,'\\');
-                (void) WriteBlobByte(image,value[i]);
-              }
+              if (strchr(value,'}') == (char *) NULL)
+                (void) WriteBlob(image,length,(const unsigned char *) value);
+              else
+                for (i=0; i < (ssize_t) length; i++)
+                {
+                  if (value[i] == (int) '}')
+                    (void) WriteBlobByte(image,'\\');
+                  (void) WriteBlobByte(image,value[i]);
+                }
               (void) WriteBlobByte(image,'}');
             }
         }