]> granicus.if.org Git - graphviz/commitdiff
mm2gv: squash -Wconversion warnings for 'tolower' usage
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 9 May 2022 02:30:23 +0000 (19:30 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 14 May 2022 18:31:10 +0000 (11:31 -0700)
For historical reasons, C functions/macros like `tolower` are specified to take
and return an `int`. This means sometimes one set of pedantic compilers (MinGW
with -Wconversion) complains about passing `char` values into these ctype.h
interfaces and another set of pedantic compilers (GCC with -Wconversion)
complains about coercing the result into a `char`. This change suppresses both
of these false positives.

cmd/tools/mmio.c

index effb523bea5ca380b992523147eff94f794df500..89627e736bdd2903d8e33bf13350911ccb658b71 100644 (file)
@@ -44,10 +44,11 @@ int mm_read_banner(FILE * f, MM_typecode * matcode)
               storage_scheme) != 5)
        return MM_PREMATURE_EOF;
 
-    for (p = mtx; *p != '\0'; *p = tolower(*p), p++);  /* convert to lower case */
-    for (p = crd; *p != '\0'; *p = tolower(*p), p++);
-    for (p = data_type; *p != '\0'; *p = tolower(*p), p++);
-    for (p = storage_scheme; *p != '\0'; *p = tolower(*p), p++);
+    // convert to lower case
+    for (p = mtx; *p != '\0'; *p = (char)tolower((int)*p), p++);
+    for (p = crd; *p != '\0'; *p = (char)tolower((int)*p), p++);
+    for (p = data_type; *p != '\0'; *p = (char)tolower((int)*p), p++);
+    for (p = storage_scheme; *p != '\0'; *p = (char)tolower((int)*p), p++);
 
     /* check for banner */
     if (strncmp(banner, MatrixMarketBanner, strlen(MatrixMarketBanner)) !=