(parse_integer): Add `const' to char* parameter and
authorJim Meyering <jim@meyering.net>
Sun, 22 Aug 1999 08:46:33 +0000 (08:46 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 22 Aug 1999 08:46:33 +0000 (08:46 +0000)
add a separate `suffix' variable.

src/dd.c

index dd473c0709410a316253eb269f58d188510a0596..adf9a023058fdcd0c3ade80d5697f022cee761c0 100644 (file)
--- a/src/dd.c
+++ b/src/dd.c
@@ -462,7 +462,8 @@ write_output (void)
   oc = 0;
 }
 
-/* Interpret one "conv=..." option. */
+/* Interpret one "conv=..." option.
+   As a by product, this function replaces each `,' in STR with a NUL byte.  */
 
 static void
 parse_conversion (char *str)
@@ -496,14 +497,15 @@ parse_conversion (char *str)
    this format. */
 
 static uintmax_t
-parse_integer (char *str, int *invalid)
+parse_integer (const char *str, int *invalid)
 {
   uintmax_t n;
-  enum strtol_error e = xstrtoumax (str, &str, 10, &n, "bcEGkMPTwYZ0");
+  char *suffix;
+  enum strtol_error e = xstrtoumax (str, &suffix, 10, &n, "bcEGkMPTwYZ0");
 
-  if (e == LONGINT_INVALID_SUFFIX_CHAR && *str == 'x')
+  if (e == LONGINT_INVALID_SUFFIX_CHAR && *suffix == 'x')
     {
-      uintmax_t multiplier = parse_integer (str + 1, invalid);
+      uintmax_t multiplier = parse_integer (suffix + 1, invalid);
 
       if (multiplier != 0 && n * multiplier / multiplier != n)
        {