]> granicus.if.org Git - imagemagick/commitdiff
MagickCommandGenesis no longer writes the metadata to stdout but uses the supplied...
authordirk <dirk@git.imagemagick.org>
Wed, 27 Apr 2016 09:11:53 +0000 (11:11 +0200)
committerdirk <dirk@git.imagemagick.org>
Wed, 27 Apr 2016 09:12:21 +0000 (11:12 +0200)
MagickWand/mogrify.c
utilities/magick.c

index 482636231a8420d7b5c67550f822348af7d8872b..9593b3fdcf2d3f787e1137cd0b77b039cc8d70bd 100644 (file)
@@ -176,7 +176,11 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
   }
   if (iterations == 1)
     {
-      status=command(image_info,argc,argv,metadata,exception);
+      char
+        *text;
+
+      text=(char *) NULL;
+      status=command(image_info,argc,argv,&text,exception);
       if (exception->severity != UndefinedException)
         {
           if ((exception->severity > ErrorException) ||
@@ -184,10 +188,11 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
             status=MagickFalse;
           CatchException(exception);
         }
-      if ((metadata != (char **) NULL) && (*metadata != (char *) NULL))
+      if (text != (char *) NULL)
         {
-          (void) fputs(*metadata,stdout);
-          *metadata=DestroyString(*metadata);
+          if (metadata != (char **) NULL)
+            (void) ConcatenateString(&(*metadata),text);
+          text=DestroyString(text);
         }
       return(status);
     }
@@ -209,6 +214,10 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
       {
         for (i=0; i < (ssize_t) iterations; i++)
         {
+          char
+            *text;
+
+          text=(char *) NULL;
           if (status == MagickFalse)
             continue;
           if (duration > 0)
@@ -217,7 +226,7 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
                 continue;
               (void) ContinueTimer(timer);
             }
-          status=command(image_info,argc,argv,metadata,exception);
+          status=command(image_info,argc,argv,&text,exception);
           if (exception->severity != UndefinedException)
             {
               if ((exception->severity > ErrorException) ||
@@ -225,12 +234,13 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
                 status=MagickFalse;
               CatchException(exception);
             }
-          if ((metadata != (char **) NULL) && (*metadata != (char *) NULL))
+          if (text != (char *) NULL)
             {
-              (void) fputs(*metadata,stdout);
-              *metadata=DestroyString(*metadata);
+              if (metadata != (char **) NULL)
+                (void) ConcatenateString(&(*metadata),text);
+              text=DestroyString(text);
             }
-        }
+          }
       }
     else
       {
@@ -240,6 +250,10 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
 #endif
         for (i=0; i < (ssize_t) iterations; i++)
         {
+          char
+            *text;
+
+          text=(char *) NULL;
           if (status == MagickFalse)
             continue;
           if (duration > 0)
@@ -248,7 +262,7 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
                 continue;
               (void) ContinueTimer(timer);
             }
-          status=command(image_info,argc,argv,metadata,exception);
+          status=command(image_info,argc,argv,&text,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
           # pragma omp critical (MagickCore_MagickCommandGenesis)
 #endif
@@ -260,10 +274,11 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
                   status=MagickFalse;
                 CatchException(exception);
               }
-            if ((metadata != (char **) NULL) && (*metadata != (char *) NULL))
+            if (text != (char *) NULL)
               {
-                (void) fputs(*metadata,stdout);
-                *metadata=DestroyString(*metadata);
+                if (metadata != (char **) NULL)
+                  (void) ConcatenateString(&(*metadata),text);
+                text=DestroyString(text);
               }
           }
         }
index e9bceb8550ef96ed3946a7af7da739528fbf2fcb..657433836df61b8067fa2c0f3795d07952861f12 100644 (file)
@@ -91,7 +91,8 @@ static int MagickMain(int argc,char **argv)
     };
 
   char
-    client_name[MagickPathExtent];
+    client_name[MagickPathExtent],
+    *metadata;
 
   ExceptionInfo
     *exception;
@@ -134,8 +135,14 @@ static int MagickMain(int argc,char **argv)
       }
       i%=(sizeof(MagickCommands)/sizeof(MagickCommands[0]));
     }
+  metadata=(char *) NULL;
   status=MagickCommandGenesis(image_info,MagickCommands[i].command,argc,argv,
-    (char **) NULL,exception);
+    &metadata,exception);
+  if (metadata != (char *) NULL)
+  {
+    (void) fputs(metadata,stdout);
+    metadata=DestroyString(metadata);
+  }
   image_info=DestroyImageInfo(image_info);
   exception=DestroyExceptionInfo(exception);
   MagickCoreTerminus();