diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2013-02-26 00:36:53 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-02-26 00:36:53 +0100 |
commit | 1961aea305e258ba7ab3910d084451220f55ed44 (patch) | |
tree | bd889c8e596051c187b93af9c50508c6009f2683 /shell | |
parent | 3305c008ed6084f58b59dde5198ae92e3a458e46 (diff) | |
download | busybox-w32-1961aea305e258ba7ab3910d084451220f55ed44.tar.gz busybox-w32-1961aea305e258ba7ab3910d084451220f55ed44.tar.bz2 busybox-w32-1961aea305e258ba7ab3910d084451220f55ed44.zip |
move endofname() to libbb
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 24 | ||||
-rw-r--r-- | shell/math.c | 12 | ||||
-rw-r--r-- | shell/math.h | 5 |
3 files changed, 3 insertions, 38 deletions
diff --git a/shell/ash.c b/shell/ash.c index 31fbc550a..0b5111a39 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -385,6 +385,9 @@ static void trace_vprintf(const char *fmt, va_list va); | |||
385 | /* ============ Utility functions */ | 385 | /* ============ Utility functions */ |
386 | #define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0) | 386 | #define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0) |
387 | 387 | ||
388 | #define is_name(c) ((c) == '_' || isalpha((unsigned char)(c))) | ||
389 | #define is_in_name(c) ((c) == '_' || isalnum((unsigned char)(c))) | ||
390 | |||
388 | static int isdigit_str9(const char *str) | 391 | static int isdigit_str9(const char *str) |
389 | { | 392 | { |
390 | int maxlen = 9 + 1; /* max 9 digits: 999999999 */ | 393 | int maxlen = 9 + 1; /* max 9 digits: 999999999 */ |
@@ -2008,27 +2011,6 @@ getoptsreset(const char *value) | |||
2008 | } | 2011 | } |
2009 | #endif | 2012 | #endif |
2010 | 2013 | ||
2011 | /* math.h has these, otherwise define our private copies */ | ||
2012 | #if !ENABLE_SH_MATH_SUPPORT | ||
2013 | #define is_name(c) ((c) == '_' || isalpha((unsigned char)(c))) | ||
2014 | #define is_in_name(c) ((c) == '_' || isalnum((unsigned char)(c))) | ||
2015 | /* | ||
2016 | * Return the pointer to the first char which is not part of a legal variable name | ||
2017 | * (a letter or underscore followed by letters, underscores, and digits). | ||
2018 | */ | ||
2019 | static const char* | ||
2020 | endofname(const char *name) | ||
2021 | { | ||
2022 | if (!is_name(*name)) | ||
2023 | return name; | ||
2024 | while (*++name) { | ||
2025 | if (!is_in_name(*name)) | ||
2026 | break; | ||
2027 | } | ||
2028 | return name; | ||
2029 | } | ||
2030 | #endif | ||
2031 | |||
2032 | /* | 2014 | /* |
2033 | * Compares two strings up to the first = or '\0'. The first | 2015 | * Compares two strings up to the first = or '\0'. The first |
2034 | * string must be terminated by '='; the second may be terminated by | 2016 | * string must be terminated by '='; the second may be terminated by |
diff --git a/shell/math.c b/shell/math.c index 15c003965..3da151137 100644 --- a/shell/math.c +++ b/shell/math.c | |||
@@ -494,18 +494,6 @@ static const char op_tokens[] ALIGN1 = { | |||
494 | }; | 494 | }; |
495 | #define ptr_to_rparen (&op_tokens[sizeof(op_tokens)-7]) | 495 | #define ptr_to_rparen (&op_tokens[sizeof(op_tokens)-7]) |
496 | 496 | ||
497 | const char* FAST_FUNC | ||
498 | endofname(const char *name) | ||
499 | { | ||
500 | if (!is_name(*name)) | ||
501 | return name; | ||
502 | while (*++name) { | ||
503 | if (!is_in_name(*name)) | ||
504 | break; | ||
505 | } | ||
506 | return name; | ||
507 | } | ||
508 | |||
509 | static arith_t FAST_FUNC | 497 | static arith_t FAST_FUNC |
510 | evaluate_string(arith_state_t *math_state, const char *expr) | 498 | evaluate_string(arith_state_t *math_state, const char *expr) |
511 | { | 499 | { |
diff --git a/shell/math.h b/shell/math.h index 2d305eb12..864bee691 100644 --- a/shell/math.h +++ b/shell/math.h | |||
@@ -73,11 +73,6 @@ typedef long arith_t; | |||
73 | #define strto_arith_t strtoul | 73 | #define strto_arith_t strtoul |
74 | #endif | 74 | #endif |
75 | 75 | ||
76 | /* ash's and hush's endofname is the same, so... */ | ||
77 | # define is_name(c) ((c) == '_' || isalpha((unsigned char)(c))) | ||
78 | # define is_in_name(c) ((c) == '_' || isalnum((unsigned char)(c))) | ||
79 | const char* FAST_FUNC endofname(const char *name); | ||
80 | |||
81 | typedef const char* FAST_FUNC (*arith_var_lookup_t)(const char *name); | 76 | typedef const char* FAST_FUNC (*arith_var_lookup_t)(const char *name); |
82 | typedef void FAST_FUNC (*arith_var_set_t)(const char *name, const char *val); | 77 | typedef void FAST_FUNC (*arith_var_set_t)(const char *name, const char *val); |
83 | //typedef const char* FAST_FUNC (*arith_var_endofname_t)(const char *name); | 78 | //typedef const char* FAST_FUNC (*arith_var_endofname_t)(const char *name); |