version 1.1, 2012/02/21 23:48:02
|
version 1.1.1.3, 2013/07/22 01:32:05
|
Line 2
|
Line 2
|
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| PHP Version 5 | |
| PHP Version 5 | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Copyright (c) 1997-2012 The PHP Group | | | Copyright (c) 1997-2013 The PHP Group | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| This source file is subject to version 3.01 of the PHP license, | |
| This source file is subject to version 3.01 of the PHP license, | |
| that is bundled with this package in the file LICENSE, and is | |
| that is bundled with this package in the file LICENSE, and is | |
Line 39
|
Line 39
|
#include <sys/param.h> |
#include <sys/param.h> |
#endif |
#endif |
#include "ext/standard/head.h" |
#include "ext/standard/head.h" |
#include "safe_mode.h" |
|
#include "php_string.h" |
#include "php_string.h" |
#include "pack.h" |
#include "pack.h" |
#if HAVE_PWD_H |
#if HAVE_PWD_H |
Line 759 PHP_FUNCTION(unpack)
|
Line 758 PHP_FUNCTION(unpack)
|
|
|
case 'i': |
case 'i': |
case 'I': { |
case 'I': { |
long v = 0; | long v; |
int issigned = 0; |
int issigned = 0; |
|
|
if (type == 'i') { |
if (type == 'i') { |
issigned = input[inputpos + (machine_little_endian ? (sizeof(int) - 1) : 0)] & 0x80; |
issigned = input[inputpos + (machine_little_endian ? (sizeof(int) - 1) : 0)] & 0x80; |
} else if (sizeof(long) > 4 && (input[inputpos + machine_endian_long_map[3]] & 0x80) == 0x80) { |
|
v = ~INT_MAX; |
|
} |
} |
|
|
v |= php_unpack(&input[inputpos], sizeof(int), issigned, int_map); | v = php_unpack(&input[inputpos], sizeof(int), issigned, int_map); |
add_assoc_long(return_value, n, v); |
add_assoc_long(return_value, n, v); |
break; |
break; |
} |
} |