]> granicus.if.org Git - imagemagick/commitdiff
Allow +-X+-Y is geometry arguments
authoranthony <anthony@git.imagemagick.org>
Thu, 19 Apr 2012 14:40:36 +0000 (14:40 +0000)
committeranthony <anthony@git.imagemagick.org>
Thu, 19 Apr 2012 14:40:36 +0000 (14:40 +0000)
MagickCore/geometry.c

index 3e133dae8a2d7612b086bf05d004bd2f95b15ada..dba5c33b357d1cf95e55f65d2de8c33d04feaa5a 100644 (file)
@@ -115,7 +115,7 @@ MagickExport MagickStatusType GetGeometry(const char *geometry,ssize_t *x,
         (void) CopyMagickString(p,p+1,MaxTextExtent);
         continue;
       }
-    c=(int) ((unsigned int) *p);
+    c=(int)*p;
     switch (c)
     {
       case '%':
@@ -210,7 +210,6 @@ MagickExport MagickStatusType GetGeometry(const char *geometry,ssize_t *x,
       if (p != q)
         flags|=WidthValue;
     }
-  c=(*p);
   c=(int) ((unsigned char) *p);
   if ((c == 215) || (*p == 'x') || (*p == 'X'))
     {
@@ -516,8 +515,6 @@ MagickExport MagickBooleanType IsGeometry(const char *geometry)
   if (geometry == (const char *) NULL)
     return(MagickFalse);
   flags=ParseGeometry(geometry,&geometry_info);
-  if (flags == NoValue)
-    flags=ParseGeometry(geometry+1,&geometry_info);  /* i.e. +-4+-4 */
   return(flags != NoValue ? MagickTrue : MagickFalse);
 }
 \f
@@ -913,7 +910,7 @@ MagickExport MagickStatusType ParseGeometry(const char *geometry,
       /*
         Parse xi value.
       */
-      if ((*p == ',') || (*p == '/') || (*p == ':'))
+      if ((*p == '+') || (*p == ',') || (*p == '/') || (*p == ':') )
         p++;
       q=p;
       value=StringToDouble(p,&p);
@@ -932,7 +929,7 @@ MagickExport MagickStatusType ParseGeometry(const char *geometry,
           /*
             Parse psi value.
           */
-          if ((*p == ',') || (*p == '/') || (*p == ':'))
+          if ((*p == '+') || (*p == ',') || (*p == '/') || (*p == ':'))
             p++;
           q=p;
           value=StringToDouble(p,&p);
@@ -952,7 +949,7 @@ MagickExport MagickStatusType ParseGeometry(const char *geometry,
           /*
             Parse chi value.
           */
-          if ((*p == ',') || (*p == '/') || (*p == ':'))
+          if ((*p == '+') || (*p == ',') || (*p == '/') || (*p == ':'))
             p++;
           q=p;
           value=StringToDouble(p,&p);