diff options
Diffstat (limited to 'Zend/zend_operators.c')
| -rw-r--r-- | Zend/zend_operators.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 542af1576f..6a905cef9d 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -71,6 +71,33 @@ ZEND_API int zend_atoi(const char *str, int str_len) return retval; } +ZEND_API long zend_atol(const char *str, int str_len) +{ + long retval; + + if (!str_len) { + str_len = strlen(str); + } + retval = strtol(str, NULL, 0); + if (str_len>0) { + switch (str[str_len-1]) { + case 'g': + case 'G': + retval *= 1024; + /* break intentionally missing */ + case 'm': + case 'M': + retval *= 1024; + /* break intentionally missing */ + case 'k': + case 'K': + retval *= 1024; + break; + } + } + return retval; +} + ZEND_API double zend_string_to_double(const char *number, zend_uint length) { |
