]> granicus.if.org Git - imagemagick/commitdiff
Fix isalpha()
authorCristy <urban-warrior@imagemagick.org>
Sun, 28 Jul 2019 01:55:06 +0000 (21:55 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 28 Jul 2019 01:55:06 +0000 (21:55 -0400)
MagickWand/mogrify.c
MagickWand/operation.c
coders/svg.c

index f83bc5c623fcf022a048d4cee2fbbedf6f53d237..655ae7304b8003cc3688d2a02043395c5206a7e2 100644 (file)
@@ -514,8 +514,8 @@ static Image *SparseColorOption(const Image *image,
   while( *p != '\0' )
   {
     (void) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == ',' ) continue;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    if (*token == ',') continue;
+    if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
       if ( color_from_image ) {
         (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
@@ -560,9 +560,9 @@ static Image *SparseColorOption(const Image *image,
   x=0;
   while( *p != '\0' && x < number_arguments ) {
     /* X coordinate */
-    token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == '\0' ) break;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == '\0') break;
+    if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
       (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
             "Color found, instead of X-coord");
@@ -571,9 +571,9 @@ static Image *SparseColorOption(const Image *image,
     }
     sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
     /* Y coordinate */
-    token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == '\0' ) break;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == '\0') break;
+    if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
       (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
             "Color found, instead of Y-coord");
@@ -591,9 +591,9 @@ static Image *SparseColorOption(const Image *image,
 #endif
     {
       /* color name or function given in string argument */
-      token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-      if ( token[0] == '\0' ) break;
-      if ( isalpha((int) token[0]) || token[0] == '#' ) {
+      *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+      if (*token == '\0') break;
+      if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
         /* Color string given */
         (void) QueryColorCompliance(token,AllCompliance,&color,exception);
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
@@ -614,45 +614,45 @@ static Image *SparseColorOption(const Image *image,
         /* NB: token contains the first floating point value to use! */
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) &&
             (image->colorspace == CMYKColorspace))
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if (((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) &&
             (image->alpha_trait != UndefinedPixelTrait))
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
       }
     }
@@ -1999,23 +1999,23 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
 
             p=(const char *) argv[i+1];
             (void) GetNextToken(p,&p,MagickPathExtent,token);  /* get black point color */
-            if ((isalpha((int) *token) != 0) || ((*token == '#') != 0))
-              (void) QueryColorCompliance(token,AllCompliance,
-                &black_point,exception);
+            if ((isalpha((int) ((unsigned char) *token)) != 0) || ((*token == '#') != 0))
+              (void) QueryColorCompliance(token,AllCompliance,&black_point,
+                exception);
             else
-              (void) QueryColorCompliance("#000000",AllCompliance,
-                &black_point,exception);
-            if (isalpha((int) token[0]) || (token[0] == '#'))
+              (void) QueryColorCompliance("#000000",AllCompliance,&black_point,
+                exception);
+            if (isalpha((int) ((unsigned char) *token)) || (*token == '#'))
               (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == '\0')
               white_point=black_point; /* set everything to that color */
             else
               {
-                if ((isalpha((int) *token) == 0) && ((*token == '#') == 0))
+                if ((isalpha((int) ((unsigned char) *token)) == 0) && ((*token == '#') == 0))
                   (void) GetNextToken(p,&p,MagickPathExtent,token); /* Get white point color. */
-                if ((isalpha((int) *token) != 0) || ((*token == '#') != 0))
-                  (void) QueryColorCompliance(token,AllCompliance,
-                    &white_point,exception);
+                if ((isalpha((int) ((unsigned char) *token)) != 0) || ((*token == '#') != 0))
+                  (void) QueryColorCompliance(token,AllCompliance,&white_point,
+                    exception);
                 else
                   (void) QueryColorCompliance("#ffffff",AllCompliance,
                     &white_point,exception);
index dc1343eb58de869aa5f890406e88c9c1eb74a935..9817a218cc36fa20a8a6676d5ceb9371208e87c7 100644 (file)
@@ -279,7 +279,7 @@ static Image *SparseColorOption(const Image *image,
     sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
     /* Y coordinate */
     *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
-    if ( *token == '\0' ) break;
+    if (*token == '\0') break;
     if ( isalpha((int) ((unsigned char) *token)) || *token == '#' ) {
       (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
@@ -290,7 +290,7 @@ static Image *SparseColorOption(const Image *image,
     sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
     /* color name or function given in string argument */
     *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
-    if ( *token == '\0' ) break;
+    if (*token == '\0') break;
     if ( isalpha((int) ((unsigned char) *token)) || *token == '#' ) {
       /* Color string given */
       (void) QueryColorCompliance(token,AllCompliance,&color,
@@ -314,7 +314,7 @@ static Image *SparseColorOption(const Image *image,
       if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
         {
         while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
-        if ((*token == '\0') || isalpha((int)*token) || *token == '#' )
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
         *token=','; /* used this token - get another */
@@ -322,7 +322,7 @@ static Image *SparseColorOption(const Image *image,
       if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
         {
         while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
-        if ((*token == '\0') || isalpha((int)*token) || *token == '#' )
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
         *token=','; /* used this token - get another */
@@ -330,7 +330,7 @@ static Image *SparseColorOption(const Image *image,
       if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
         {
         while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
-        if ((*token == '\0') || isalpha((int)*token) || *token == '#' )
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
         *token = ','; /* used this token - get another */
@@ -339,7 +339,7 @@ static Image *SparseColorOption(const Image *image,
           (image->colorspace == CMYKColorspace))
         {
         while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
-        if ((*token == '\0') || isalpha((int)*token) || *token == '#' )
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
         *token=','; /* used this token - get another */
@@ -348,7 +348,7 @@ static Image *SparseColorOption(const Image *image,
           image->alpha_trait != UndefinedPixelTrait)
         {
         while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
-        if ( *token == '\0' || isalpha((int)*token) || *token == '#' )
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
         *token = ','; /* used this token - get another */
index a0dd964644a76c278b4da285889483de336b6cfc..606d9da6c26bf2e8412ddfe342182303435dc980 100644 (file)
@@ -5097,7 +5097,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
         (void) GetNextToken(q,&q,extent,token);
         number_attributes=1;
         for (p=token; *p != '\0'; p++)
-          if (isalpha((int) *p))
+          if (isalpha((int) ((unsigned char) *p)) != 0)
             number_attributes++;
         if (i > (ssize_t) (number_points-6*BezierQuantum*number_attributes-1))
           {