????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.135.212.173 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/win32/ |
Upload File : |
#if _MSC_VERS <= 1300 #include "php_strtoi64.h" /* From APR, apr_strings.c See http://www.apache.org/licenses/LICENSE-2.0 */ PHPAPI int64_t _strtoi64(const char *nptr, char **endptr, int base) { const char *s; int64_t acc; int64_t val; int neg, any; char c; /* * Skip white space and pick up leading +/- sign if any. * If base is 0, allow 0x for hex and 0 for octal, else * assume decimal; if base is already 16, allow 0x. */ s = nptr; do { c = *s++; } while (isspace((unsigned char)c)); if (c == '-') { neg = 1; c = *s++; } else { neg = 0; if (c == '+') { c = *s++; } } if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) { c = s[1]; s += 2; base = 16; } if (base == 0) { base = c == '0' ? 8 : 10; } acc = any = 0; if (base < 2 || base > 36) { errno = EINVAL; if (endptr != NULL) { *endptr = (char *)(any ? s - 1 : nptr); } return acc; } /* The classic bsd implementation requires div/mod operators * to compute a cutoff. Benchmarking proves that iss very, very * evil to some 32 bit processors. Instead, look for underflow * in both the mult and add/sub operation. Unlike the bsd impl, * we also work strictly in a signed int64 word as we haven't * implemented the unsigned type in win32. * * Set 'any' if any `digits' consumed; make it negative to indicate * overflow. */ val = 0; for ( ; ; c = *s++) { if (c >= '0' && c <= '9') c -= '0'; #if (('Z' - 'A') == 25) else if (c >= 'A' && c <= 'Z') c -= 'A' - 10; else if (c >= 'a' && c <= 'z') c -= 'a' - 10; #elif APR_CHARSET_EBCDIC else if (c >= 'A' && c <= 'I') c -= 'A' - 10; else if (c >= 'J' && c <= 'R') c -= 'J' - 19; else if (c >= 'S' && c <= 'Z') c -= 'S' - 28; else if (c >= 'a' && c <= 'i') c -= 'a' - 10; else if (c >= 'j' && c <= 'r') c -= 'j' - 19; else if (c >= 's' && c <= 'z') c -= 'z' - 28; #else # error "CANNOT COMPILE apr_strtoi64(), only ASCII and EBCDIC supported" #endif else { break; } if (c >= base) { break; } val *= base; if ( (any < 0) /* already noted an over/under flow - short circuit */ || (neg && (val > acc || (val -= c) > acc)) /* underflow */ || (val < acc || (val += c) < acc)) { /* overflow */ any = -1; /* once noted, over/underflows never go away */ #ifdef APR_STRTOI64_OVERFLOW_IS_BAD_CHAR break; #endif } else { acc = val; any = 1; } } if (any < 0) { acc = neg ? INT64_MIN : INT64_MAX; errno = ERANGE; } else if (!any) { errno = EINVAL; } if (endptr != NULL) { *endptr = (char *)(any ? s - 1 : nptr); } return (acc); } #endif