shell: move all definitions of strto_arith_t() together
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 26 May 2019 12:02:10 +0000 (14:02 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 26 May 2019 12:02:10 +0000 (14:02 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/math.c
shell/math.h

index 2ea0317e9e9baebf342484197653bd5c24c6abe5..eaf4f245320e921b7cd6f7ced2185d53842c3d2b 100644 (file)
@@ -545,8 +545,12 @@ static arith_t strto_arith_t(const char *nptr, char **endptr)
        *endptr = (char*)nptr;
        return n;
 }
-#define strto_arith_t(nptr, endptr, base_is_always_0) \
-       strto_arith_t(nptr, endptr)
+#else /* !ENABLE_FEATURE_SH_MATH_BASE */
+# if ENABLE_FEATURE_SH_MATH_64
+#  define strto_arith_t(nptr, endptr) strtoull(nptr, endptr, 0)
+# else
+#  define strto_arith_t(nptr, endptr) strtoul(nptr, endptr, 0)
+# endif
 #endif
 
 static arith_t FAST_FUNC
@@ -627,7 +631,7 @@ evaluate_string(arith_state_t *math_state, const char *expr)
                        /* Number */
                        numstackptr->var = NULL;
                        errno = 0;
-                       numstackptr->val = strto_arith_t(expr, (char**) &expr, 0);
+                       numstackptr->val = strto_arith_t(expr, (char**) &expr);
                        if (errno)
                                numstackptr->val = 0; /* bash compat */
                        goto num;
index ec9decb1f838e92b3e6ebcfb987564b5d0f5181f..41ef6e8dfa185efcb5f26df42c2d9fb94e27bb87 100644 (file)
@@ -71,14 +71,6 @@ typedef long arith_t;
 # define ARITH_FMT "%ld"
 #endif
 
-#if !ENABLE_FEATURE_SH_MATH_BASE
-# if ENABLE_FEATURE_SH_MATH_64
-#  define strto_arith_t strtoull
-# else
-#  define strto_arith_t strtoul
-# endif
-#endif
-
 typedef const char* FAST_FUNC (*arith_var_lookup_t)(const char *name);
 typedef void        FAST_FUNC (*arith_var_set_t)(const char *name, const char *val);
 //typedef const char* FAST_FUNC (*arith_var_endofname_t)(const char *name);