diff options
author | Antony Dovgal <tony2001@php.net> | 2008-03-19 12:41:23 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2008-03-19 12:41:23 +0000 |
commit | 7b1bc753c6840c1e2dd001f498764a1ba07ccda6 (patch) | |
tree | 04a8ae906b29a8b28cd3fa24be09ddb159aa961b /Zend/zend_operators.c | |
parent | 8b5524e2fe4efe68406b4121cc4cee3a0a19d1a7 (diff) | |
download | php-git-7b1bc753c6840c1e2dd001f498764a1ba07ccda6.tar.gz |
MFH: add zend_atol()
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) { |