pajoye Sun Jul 16 15:56:00 2006 UTC
Modified files:
/php-src/ext/standard string.c
Log:
- MFB: PATHINFO_FILENAME constant registration (Sara)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.552&r2=1.553&diff_format=u
Index: php-src/ext/standard/string.c
diff -u php-src/ext/standard/string.c:1.552 php-src/ext/standard/string.c:1.553
--- php-src/ext/standard/string.c:1.552 Sun Jul 16 10:34:31 2006
+++ php-src/ext/standard/string.c Sun Jul 16 15:56:00 2006
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: string.c,v 1.552 2006/07/16 10:34:31 helly Exp $ */
+/* $Id: string.c,v 1.553 2006/07/16 15:56:00 pajoye Exp $ */
/* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
@@ -78,9 +78,10 @@
REGISTER_LONG_CONSTANT("PATHINFO_DIRNAME", PHP_PATHINFO_DIRNAME,
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PATHINFO_BASENAME", PHP_PATHINFO_BASENAME,
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PATHINFO_EXTENSION", PHP_PATHINFO_EXTENSION,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PATHINFO_FILENAME", PHP_PATHINFO_FILENAME,
CONST_CS | CONST_PERSISTENT);
#ifdef HAVE_LOCALECONV
- /* If last members of struct lconv equal CHAR_MAX, no grouping is done
*/
+ /* If last members of struct lconv equal CHAR_MAX, no grouping is done
*/
/* This is bad, but since we are going to be hardcoding in the POSIX stuff
anyway... */
# ifndef HAVE_LIMITS_H
@@ -101,7 +102,7 @@
REGISTER_LONG_CONSTANT("LC_MESSAGES", LC_MESSAGES, CONST_CS |
CONST_PERSISTENT);
# endif
#endif
-
+
}
/* }}} */
@@ -125,14 +126,14 @@
size_t i, j;
result = (unsigned char *) safe_emalloc(oldlen * 2, sizeof(char), 1);
-
+
for (i = j = 0; i < oldlen; i++) {
result[j++] = hexconvtab[old[i] >> 4];
result[j++] = hexconvtab[old[i] & 15];
}
result[j] = '\0';
- if (newlen)
+ if (newlen)
*newlen = oldlen * 2 * sizeof(char);
return (char*)result;
@@ -199,7 +200,7 @@
}
result = php_bin2hex(data, data_len, &newlen);
-
+
if (!result) {
RETURN_FALSE;
}
@@ -217,7 +218,7 @@
int len1, len2;
zend_uchar type1, type2;
long start, len; /* For UNICODE, these are codepoint units */
-
+
start = 0;
len = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "TT|ll",
@@ -225,13 +226,13 @@
&start, &len) ==
FAILURE) {
return;
}
-
+
if (ZEND_NUM_ARGS() < 4) {
len = len1;
}
-
+
/* look at substr() function for more information */
-
+
if (start < 0) {
start += len1;
if (start < 0) {
@@ -240,14 +241,14 @@
} else if (start > len1) {
RETURN_FALSE;
}
-
+
if (len < 0) {
len += (len1 - start);
if (len < 0) {
len = 0;
}
}
-
+
if (((unsigned) start + (unsigned) len) > len1) {
len = len1 - start;
}
@@ -480,7 +481,7 @@
{
zval **item;
char *value;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &item) ==
FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -509,7 +510,7 @@
convert_to_string_ex(s1);
convert_to_string_ex(s2);
- RETURN_LONG(strcoll((const char *) Z_STRVAL_PP(s1),
+ RETURN_LONG(strcoll((const char *) Z_STRVAL_PP(s1),
(const char *) Z_STRVAL_PP(s2)));
}
/* }}} */
@@ -517,7 +518,7 @@
/* {{{ php_charmask
* Fills a 256-byte bytemask with input. You can specify a range like 'a..z',
- * it needs to be incrementing.
+ * it needs to be incrementing.
* Returns: FAILURE/SUCCESS whether the input was correct (i.e. no range
errors)
*/
static inline int php_charmask(unsigned char *input, int len, char *mask
TSRMLS_DC)
@@ -528,8 +529,8 @@
memset(mask, 0, 256);
for (end = input+len; input < end; input++) {
- c=*input;
- if ((input+3 < end) && input[1] == '.' && input[2] == '.'
+ c=*input;
+ if ((input+3 < end) && input[1] == '.' && input[2] == '.'
&& input[3] >= c) {
memset(mask+c, 1, input[3] - c + 1);
input+=3;
@@ -550,7 +551,7 @@
php_error_docref(NULL TSRMLS_CC, E_WARNING,
"Invalid '..'-range, '..'-range needs to be incrementing.");
result = FAILURE;
continue;
- }
+ }
/* FIXME: better error (a..b..c is the only left
possibility?) */
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid
'..'-range.");
result = FAILURE;
@@ -1016,7 +1017,7 @@
}
positions[found++] = p1 = p2 + delim_len;
} while ( (p2 = php_memnstr(p1, delim, delim_len, endp)) !=
NULL );
-
+
to_return = limit + found;
/* limit is at least -1 therefore no need of bounds checking :
i will be always less than found */
for ( i = 0 ; i < to_return ; i++ ) { /* this checks also for
to_return > 0 */
@@ -1084,7 +1085,7 @@
}
positions[found++] = p1 = p2 + delim_len;
} while ( (p2 = zend_u_memnstr(p1, delim, delim_len, endp)) !=
NULL );
-
+
to_return = limit + found;
/* limit is at least -1 therefore no need of bounds checking :
i will be always less than found */
for ( i = 0 ; i < to_return ; i++ ) { /* this checks also for
to_return > 0 */
@@ -1161,7 +1162,7 @@
/* {{{ php_implode
*/
-PHPAPI void php_implode(zval *delim, zval *arr, zval *retval)
+PHPAPI void php_implode(zval *delim, zval *arr, zval *retval)
{
zend_uchar return_type;
int numelems, i=0;
@@ -1313,7 +1314,7 @@
}
/* }}} */
-#define STRTOK_TABLE(p) BG(strtok_table)[(unsigned char) *p]
+#define STRTOK_TABLE(p) BG(strtok_table)[(unsigned char) *p]
/* {{{ proto string strtok([string str,] string token) U
Tokenize a string */
@@ -1453,10 +1454,10 @@
}
skipped++;
}
- /* We know at this place that *p is no delimiter, so skip it */
+ /* We know at this place that *p is no delimiter, so skip it */
while (++p < pe) {
if (STRTOK_TABLE(p)) {
- goto return_token;
+ goto return_token;
}
}
@@ -1484,7 +1485,7 @@
PHPAPI char *php_strtoupper(char *s, size_t len)
{
unsigned char *c, *e;
-
+
c = (unsigned char*)s;
e = c+len;
@@ -1503,7 +1504,7 @@
UChar *dest = NULL;
int dest_len;
UErrorCode status;
-
+
dest_len = *len;
while (1) {
status = U_ZERO_ERROR;
@@ -1532,7 +1533,7 @@
PHP_FUNCTION(strtoupper)
{
zval **arg;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg)) {
WRONG_PARAM_COUNT;
}
@@ -1584,7 +1585,7 @@
PHPAPI char *php_strtolower(char *s, size_t len)
{
unsigned char *c, *e;
-
+
c = (unsigned char*)s;
e = c+len;
@@ -1601,7 +1602,7 @@
PHP_FUNCTION(strtolower)
{
zval **str;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str)) {
WRONG_PARAM_COUNT;
}
@@ -1635,7 +1636,7 @@
int32_t dest_len;
UErrorCode status = U_ZERO_ERROR;
UBreakIterator *brkiter;
-
+
dest_len = *len;
brkiter = ubrk_open(UBRK_WORD, locale, *s, *len, &status);
while (1) {
@@ -1667,7 +1668,7 @@
PHP_FUNCTION(strtotitle)
{
zval **str;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str)) {
WRONG_PARAM_COUNT;
}
@@ -1793,7 +1794,7 @@
len_adjust += 2;
if (2 == len) {
/* Return "c:" on Win32 for dirname("c:").
- * It would be more consistent to return "c:."
+ * It would be more consistent to return "c:."
* but that would require making the string *longer*.
*/
return len;
@@ -1801,7 +1802,7 @@
}
#elif defined(NETWARE)
/*
- * Find the first occurence of : from the left
+ * Find the first occurence of : from the left
* move the path pointer to the position just after :
* increment the len_adjust to the length of path till colon
character(inclusive)
* If there is no character beyond : simple return len
@@ -1844,7 +1845,7 @@
path[0] = '.';
path[1] = '\0';
return 1; //only one character
- }
+ }
else {
path[0] = '\0';
return len_adjust;
@@ -1886,7 +1887,7 @@
ret = estrndup(Z_STRVAL_PP(str), Z_STRLEN_PP(str));
ret_len = php_dirname(ret, Z_STRLEN_PP(str));
-
+
RETVAL_RT_STRINGL(ret, ret_len, 0);
if (UG(unicode)) {
efree(ret);
@@ -1910,7 +1911,7 @@
MAKE_STD_ZVAL(tmp);
array_init(tmp);
-
+
if ((opt & PHP_PATHINFO_DIRNAME) == PHP_PATHINFO_DIRNAME) {
ret = estrndup(path, path_len);
php_dirname(ret, path_len);
@@ -1919,15 +1920,15 @@
}
efree(ret);
}
-
+
if ((opt & PHP_PATHINFO_BASENAME) == PHP_PATHINFO_BASENAME) {
php_basename(path, path_len, NULL, 0, &ret, &ret_len TSRMLS_CC);
add_assoc_rt_stringl(tmp, "basename", ret, ret_len, 0);
if (UG(unicode)) {
efree(ret);
}
- }
-
+ }
+
if ((opt & PHP_PATHINFO_EXTENSION) == PHP_PATHINFO_EXTENSION) {
char *p;
int idx;
@@ -1949,7 +1950,7 @@
efree(ret);
}
}
-
+
if ((opt & PHP_PATHINFO_FILENAME) == PHP_PATHINFO_FILENAME) {
char *p;
int idx;
@@ -2508,7 +2509,7 @@
php_error_docref(NULL TSRMLS_CC, E_WARNING,
"needle is not a string or an integer.");
RETURN_FALSE;
break;
-
+
}
if (Z_TYPE_P(haystack) == IS_UNICODE) {
if (U_IS_BMP(ch)) {
@@ -2529,9 +2530,9 @@
needle_char[1] = '\0';
haystack_dup = estrndup(Z_STRVAL_P(haystack),
haystack_len);
php_strtolower((char *)haystack_dup, haystack_len);
- found = php_memnstr((char *)haystack_dup + offset,
- (char
*)needle_char,
-
sizeof(needle_char) - 1,
+ found = php_memnstr((char *)haystack_dup + offset,
+ (char
*)needle_char,
+
sizeof(needle_char) - 1,
(char
*)haystack_dup + haystack_len);
}
}
@@ -2705,7 +2706,7 @@
}
if (needle_len == 1) {
- /* Single character search can shortcut memcmps
+ /* Single character search can shortcut memcmps
Can also avoid tolower emallocs */
if (offset >= 0) {
p = haystack + offset;
@@ -2880,7 +2881,7 @@
/* {{{ proto string chunk_split(string str [, int chunklen [, string ending]])
Returns split line */
-PHP_FUNCTION(chunk_split)
+PHP_FUNCTION(chunk_split)
{
zval **p_str, **p_chunklen, **p_ending;
char *result;
@@ -2918,8 +2919,8 @@
result = emalloc(result_len + 1);
memcpy(result, Z_STRVAL_PP(p_str), Z_STRLEN_PP(p_str));
memcpy(result + Z_STRLEN_PP(p_str), end, endlen);
- result[result_len] = '\0';
- RETURN_STRINGL(result, result_len, 0);
+ result[result_len] = '\0';
+ RETURN_STRINGL(result, result_len, 0);
}
if (!Z_STRLEN_PP(p_str)) {
@@ -2960,7 +2961,7 @@
if (ZEND_NUM_ARGS() == 2) {
l = cp_len;
}
-
+
/* if "from" position is negative, count start position from the end
* of the string
*/
@@ -3112,7 +3113,7 @@
if (argc < 3 || argc > 4 || zend_get_parameters_ex(argc, &str, &repl,
&from, &len) == FAILURE) {
WRONG_PARAM_COUNT;
}
-
+
if (Z_TYPE_PP(str) != IS_ARRAY && Z_TYPE_PP(str) != IS_UNICODE &&
Z_TYPE_PP(str) != IS_STRING) {
convert_to_text_ex(str);
@@ -3150,7 +3151,7 @@
}
}
-
+
if (Z_TYPE_PP(str) != IS_ARRAY) {
if (Z_TYPE_PP(from) != IS_ARRAY ) {
if (Z_TYPE_PP(repl) == IS_ARRAY) {
@@ -3185,7 +3186,7 @@
}
} else {
php_error_docref(NULL TSRMLS_CC, E_WARNING,
"Functionality of 'from' and 'len' as arrays is not implemented.");
- RETURN_ZVAL(*str, 1, 0);
+ RETURN_ZVAL(*str, 1, 0);
}
} else { /* str is array of strings */
array_init(return_value);
@@ -3236,7 +3237,7 @@
if (Z_TYPE_PP(repl) != IS_UNICODE &&
Z_TYPE_PP(repl) != IS_STRING && Z_TYPE_PP(repl) != IS_STRING) {
convert_to_text_ex(tmp_repl);
}
-
zend_hash_move_forward_ex(Z_ARRVAL_PP(repl), &pos_repl);
+
zend_hash_move_forward_ex(Z_ARRVAL_PP(repl), &pos_repl);
} else {
tmp_repl = NULL;
}
@@ -3280,7 +3281,7 @@
char *old_end;
char *p, *q;
char c;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE)
{
WRONG_PARAM_COUNT;
}
@@ -3293,9 +3294,9 @@
if (old == old_end) {
RETURN_FALSE;
}
-
+
str = safe_emalloc(2, Z_STRLEN_PP(arg), 1);
-
+
for (p = old, q = str; p != old_end; p++) {
c = *p;
switch (c) {
@@ -3327,7 +3328,7 @@
PHP_FUNCTION(ord)
{
zval **str;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE)
{
WRONG_PARAM_COUNT;
}
@@ -3347,12 +3348,12 @@
{
zval **num;
char temp[2];
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE)
{
WRONG_PARAM_COUNT;
}
convert_to_long_ex(num);
-
+
if (UG(unicode)) {
UChar buf[2];
int buf_len;
@@ -3399,7 +3400,7 @@
PHP_FUNCTION(ucfirst)
{
zval **str;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE)
{
WRONG_PARAM_COUNT;
}
@@ -3475,7 +3476,7 @@
tmp_len += zend_codepoint_to_uchar(cp, tmp +
tmp_len);
}
}
-
+
last_pos = pos;
}
tmp[tmp_len] = 0;
@@ -3498,7 +3499,7 @@
PHP_FUNCTION(ucwords)
{
zval **str;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE)
{
WRONG_PARAM_COUNT;
}
@@ -3554,7 +3555,7 @@
{
int i;
int can_optimize = 1;
-
+
if ((trlen < 1) || (len < 1)) {
return str;
}
@@ -3606,7 +3607,7 @@
HashTable *tmp_hash;
int minlen = 128*1024, maxlen;
zval *tmp;
-
+
tmp_hash = emalloc(sizeof(HashTable));
zend_hash_init(tmp_hash, 0, NULL, NULL, 0);
@@ -3637,7 +3638,7 @@
ulong num_key;
int maxlen = 0, len;
zval ctmp;
-
+
zend_hash_init(tmp_hash, 0, NULL, NULL, 0);
zend_hash_internal_pointer_reset_ex(hash, &hpos);
while (zend_hash_get_current_data_ex(hash, (void **)&entry, &hpos) ==
SUCCESS) {
@@ -3655,12 +3656,12 @@
if (len < minlen) {
minlen = len;
}
- break;
-
+ break;
+
case HASH_KEY_IS_LONG:
Z_TYPE(ctmp) = IS_LONG;
Z_LVAL(ctmp) = num_key;
-
+
convert_to_unicode(&ctmp);
len = Z_USTRLEN(ctmp);
zend_u_hash_add(tmp_hash, IS_UNICODE,
Z_UNIVAL(ctmp), len+1, entry, sizeof(zval*), NULL);
@@ -3703,7 +3704,7 @@
for (len = maxlen; len >= minlen; len--) {
key[len] = 0;
-
+
if (zend_u_hash_find(hash, IS_UNICODE, ZSTR(key),
len+1, (void**)&trans) == SUCCESS) {
UChar *tval;
int tlen;
@@ -3728,7 +3729,7 @@
zval_dtor(&tmp);
}
break;
- }
+ }
}
if (! found) {
@@ -3760,7 +3761,7 @@
HashPosition hpos;
smart_str result = {0};
HashTable tmp_hash;
-
+
zend_hash_init(&tmp_hash, 0, NULL, NULL, 0);
zend_hash_internal_pointer_reset_ex(hash, &hpos);
while (zend_hash_get_current_data_ex(hash, (void **)&entry, &hpos) ==
SUCCESS) {
@@ -3778,12 +3779,12 @@
if (len < minlen) {
minlen = len;
}
- break;
-
+ break;
+
case HASH_KEY_IS_LONG:
Z_TYPE(ctmp) = IS_LONG;
Z_LVAL(ctmp) = num_key;
-
+
convert_to_string(&ctmp);
len = Z_STRLEN(ctmp);
zend_hash_add(&tmp_hash, Z_STRVAL(ctmp), len+1,
entry, sizeof(zval*), NULL);
@@ -3813,7 +3814,7 @@
for (len = maxlen; len >= minlen; len--) {
key[len] = 0;
-
+
if (zend_hash_find(&tmp_hash, key, len+1,
(void**)&trans) == SUCCESS) {
char *tval;
int tlen;
@@ -3838,7 +3839,7 @@
zval_dtor(&tmp);
}
break;
- }
+ }
}
if (! found) {
@@ -3856,14 +3857,14 @@
/* {{{ proto string strtr(string str, string from[, string to])
Translates characters in str using given translation tables */
PHP_FUNCTION(strtr)
-{
+{
zval **str, **from, **to;
int ac = ZEND_NUM_ARGS();
if (ac < 2 || ac > 3 || zend_get_parameters_ex(ac, &str, &from, &to) ==
FAILURE) {
WRONG_PARAM_COUNT;
}
-
+
if (ac == 2 && Z_TYPE_PP(from) != IS_ARRAY) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The second
argument is not an array.");
RETURN_FALSE;
@@ -3887,7 +3888,7 @@
if (ac == 2) {
int minlen, maxlen;
HashTable *hash;
-
+
hash =
php_u_strtr_array_prepare_hashtable(HASH_OF(*from), &minlen, &maxlen TSRMLS_CC);
outstr = php_u_strtr_array(Z_USTRVAL_PP(str),
Z_USTRLEN_PP(str), hash, minlen, maxlen, &outlen TSRMLS_CC);
zend_hash_destroy(hash);
@@ -3907,7 +3908,7 @@
MIN(Z_USTRLEN_PP(from),
Z_USTRLEN_PP(to)),
&outlen TSRMLS_CC);
ZVAL_UNICODEL(return_value, outstr, outlen, 0);
-
+
Z_TYPE_P(return_value) = IS_UNICODE;
}
} else {
@@ -3918,12 +3919,12 @@
convert_to_string_ex(to);
ZVAL_STRINGL(return_value, Z_STRVAL_PP(str),
Z_STRLEN_PP(str), 1);
-
+
php_strtr(Z_STRVAL_P(return_value),
Z_STRLEN_P(return_value),
Z_STRVAL_PP(from),
Z_STRVAL_PP(to),
- MIN(Z_STRLEN_PP(from),
+ MIN(Z_STRLEN_PP(from),
Z_STRLEN_PP(to)));
}
}
@@ -3939,7 +3940,7 @@
int32_t i, x1, x2;
UChar32 ch;
UChar *u_s, *u_n = NULL, *u_p;
-
+
if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &str) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -3982,7 +3983,7 @@
}
*p = '\0';
}
-
+
if (Z_TYPE_PP(str) == IS_UNICODE) {
RETVAL_UNICODEL(u_n, Z_USTRLEN_PP(str), 0);
} else {
@@ -4035,7 +4036,7 @@
char *end1 = (char *) txt1 + len1;
char *end2 = (char *) txt2 + len2;
int l;
-
+
*max = 0;
for (p = (char *) txt1; p < end1; p++) {
for (q = (char *) txt2; q < end2; q++) {
@@ -4060,11 +4061,11 @@
php_similar_str(txt1, len1, txt2, len2, &pos1, &pos2, &max);
if ((sum = max)) {
if (pos1 && pos2) {
- sum += php_similar_char(txt1, pos1,
+ sum += php_similar_char(txt1, pos1,
txt2,
pos2);
}
if ((pos1 + max < len1) && (pos2 + max < len2)) {
- sum += php_similar_char(txt1 + pos1 + max, len1 - pos1
- max,
+ sum += php_similar_char(txt1 + pos1 + max, len1 - pos1
- max,
txt2 +
pos2 + max, len2 - pos2 - max);
}
}
@@ -4106,7 +4107,7 @@
if (ac < 2 || ac > 3 || zend_get_parameters_ex(ac, &t1, &t2, &percent)
== FAILURE) {
WRONG_PARAM_COUNT;
- }
+ }
if (Z_TYPE_PP(t1) != IS_UNICODE && Z_TYPE_PP(t1) != IS_STRING) {
convert_to_text_ex(t1);
}
@@ -4135,7 +4136,7 @@
if (str_type == IS_UNICODE) {
sim = php_u_similar_char(Z_USTRVAL_PP(t1), Z_USTRLEN_PP(t1),
Z_USTRVAL_PP(t2), Z_USTRLEN_PP(t2));
} else {
- sim = php_similar_char(Z_STRVAL_PP(t1), Z_STRLEN_PP(t1),
Z_STRVAL_PP(t2), Z_STRLEN_PP(t2));
+ sim = php_similar_char(Z_STRVAL_PP(t1), Z_STRLEN_PP(t1),
Z_STRVAL_PP(t2), Z_STRLEN_PP(t2));
}
if (ac > 2) {
@@ -4244,9 +4245,9 @@
RETURN_STRINGL(Z_STRVAL_PP(str), Z_STRLEN_PP(str), 1);
}
- RETURN_STRING(php_addcslashes(Z_STRVAL_PP(str),
- Z_STRLEN_PP(str),
- &Z_STRLEN_P(return_value), 0,
+ RETURN_STRING(php_addcslashes(Z_STRVAL_PP(str),
+ Z_STRLEN_PP(str),
+ &Z_STRLEN_P(return_value), 0,
Z_STRVAL_PP(what),
Z_STRLEN_PP(what) TSRMLS_CC), 0);
}
@@ -4288,7 +4289,7 @@
PHP_FUNCTION(stripcslashes)
{
zval **str;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE)
{
WRONG_PARAM_COUNT;
}
@@ -4304,7 +4305,7 @@
PHP_FUNCTION(stripslashes)
{
zval **str;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE)
{
WRONG_PARAM_COUNT;
}
@@ -4323,7 +4324,7 @@
#ifndef HAVE_STRERROR
/* {{{ php_strerror
*/
-char *php_strerror(int errnum)
+char *php_strerror(int errnum)
{
extern int sys_nerr;
extern char *sys_errlist[];
@@ -4374,8 +4375,8 @@
break;
}
/* break is left intentionally */
- default:
- i=0;
+ default:
+ i=0;
while (source < end && *source >= '0'
&& *source <= '7' && i<3) {
numtmp[i++] = *source++;
}
@@ -4401,7 +4402,7 @@
*len = nlen;
}
/* }}} */
-
+
/* {{{ php_addcslashes
*/
PHPAPI char *php_addcslashes(char *str, int length, int *new_length, int
should_free, char *what, int wlength TSRMLS_DC)
@@ -4438,7 +4439,7 @@
default: target += sprintf(target,
"%03o", (unsigned char) c);
}
continue;
- }
+ }
*target++ = '\\';
}
*target++ = c;
@@ -4498,7 +4499,7 @@
/* break is missing *intentionally* */
default:
buf_len += zend_codepoint_to_uchar(ch,
buf+buf_len);
- break;
+ break;
}
}
@@ -4530,7 +4531,7 @@
char *source, *target;
char *end;
int local_new_length;
-
+
if (!new_length) {
new_length = &local_new_length;
}
@@ -4542,7 +4543,7 @@
source = str;
end = source + length;
target = new_str;
-
+
while (source < end) {
switch (*source) {
case '\0':
@@ -4556,7 +4557,7 @@
/* break is missing *intentionally* */
default:
*target++ = *source;
- break;
+ break;
}
source++;
@@ -4585,7 +4586,7 @@
int char_count = 0;
int replaced = 0;
char *source, *target, *tmp, *source_end=str+len, *tmp_end = NULL;
-
+
if (case_sensitivity) {
char *p = str, *e = p + len;
while ((p = memchr(p, from, (e - p)))) {
@@ -4604,7 +4605,7 @@
ZVAL_STRINGL(result, str, len, 1);
return 0;
}
-
+
Z_STRLEN_P(result) = len + (char_count * (to_len - 1));
Z_STRVAL_P(result) = target = emalloc(Z_STRLEN_P(result) + 1);
Z_TYPE_P(result) = IS_STRING;
@@ -4655,7 +4656,7 @@
/* {{{ php_str_to_str_ex
*/
-PHPAPI char *php_str_to_str_ex(char *haystack, int length,
+PHPAPI char *php_str_to_str_ex(char *haystack, int length,
char *needle, int needle_len, char *str, int str_len, int *_new_length,
int case_sensitivity, int *replace_count)
{
char *new_str;
@@ -4810,11 +4811,11 @@
/* {{{ php_str_to_str
*/
-PHPAPI char *php_str_to_str(char *haystack, int length,
+PHPAPI char *php_str_to_str(char *haystack, int length,
char *needle, int needle_len, char *str, int str_len, int *_new_length)
{
return php_str_to_str_ex(haystack, length, needle, needle_len, str,
str_len, _new_length, 1, NULL);
-}
+}
/* }}}
*/
@@ -4828,21 +4829,21 @@
char *replace_value = NULL;
int replace_len = 0;
- /* Make sure we're dealing with strings. */
+ /* Make sure we're dealing with strings. */
convert_to_string_ex(subject);
Z_TYPE_P(result) = IS_STRING;
if (Z_STRLEN_PP(subject) == 0) {
ZVAL_STRINGL(result, "", 0, 1);
return;
}
-
+
/* If search is an array */
if (Z_TYPE_P(search) == IS_ARRAY) {
/* Duplicate subject string for repeated replacement */
*result = **subject;
zval_copy_ctor(result);
INIT_PZVAL(result);
-
+
zend_hash_internal_pointer_reset(Z_ARRVAL_P(search));
if (Z_TYPE_P(replace) == IS_ARRAY) {
@@ -4855,7 +4856,7 @@
/* For each entry in the search array, get the entry */
while (zend_hash_get_current_data(Z_ARRVAL_P(search), (void **)
&search_entry) == SUCCESS) {
- /* Make sure we're dealing with strings. */
+ /* Make sure we're dealing with strings. */
SEPARATE_ZVAL(search_entry);
convert_to_string(*search_entry);
if (Z_STRLEN_PP(search_entry) == 0) {
@@ -4870,9 +4871,9 @@
if (Z_TYPE_P(replace) == IS_ARRAY) {
/* Get current entry */
if
(zend_hash_get_current_data(Z_ARRVAL_P(replace), (void **)&replace_entry) ==
SUCCESS) {
- /* Make sure we're dealing with
strings. */
+ /* Make sure we're dealing with
strings. */
convert_to_string_ex(replace_entry);
-
+
/* Set replacement value to the one we
got from array */
replace_value =
Z_STRVAL_PP(replace_entry);
replace_len =
Z_STRLEN_PP(replace_entry);
@@ -4884,7 +4885,7 @@
replace_len = 0;
}
}
-
+
if (Z_STRLEN_PP(search_entry) == 1) {
php_char_to_str_ex(Z_STRVAL_P(result),
Z_STRLEN_P(result),
@@ -4991,12 +4992,12 @@
add_index_zval(return_value, num_key,
result);
break;
}
-
+
zend_hash_move_forward(Z_ARRVAL_PP(subject));
}
} else { /* if subject is not an array */
php_str_replace_in_subject(*search, *replace, subject,
return_value, case_sensitivity, (argc > 3) ? &count : NULL);
- }
+ }
if (argc > 3) {
zval_dtor(*zcount);
ZVAL_LONG(*zcount, count);
@@ -5033,7 +5034,7 @@
long max_chars=0;
int begin, end, char_count, orig_begin;
-
+
switch (ZEND_NUM_ARGS()) {
case 1:
if (zend_get_parameters_ex(1, &str) == FAILURE) {
@@ -5051,9 +5052,9 @@
WRONG_PARAM_COUNT;
break;
}
-
+
convert_to_string_ex(str);
-
+
if (Z_STRLEN_PP(str) == 0) {
RETURN_FALSE;
}
@@ -5073,7 +5074,7 @@
} else {
block_type = _HEB_BLOCK_TYPE_ENG;
}
-
+
do {
if (block_type == _HEB_BLOCK_TYPE_HEB) {
while ((isheb((int)*(tmp+1)) || _isblank((int)*(tmp+1))
|| ispunct((int)*(tmp+1)) || (int)*(tmp+1)=='\n' ) &&
block_end<Z_STRLEN_PP(str)-1) {
@@ -5143,7 +5144,7 @@
broken_str = (char *) emalloc(Z_STRLEN_PP(str)+1);
begin=end=Z_STRLEN_PP(str)-1;
target = broken_str;
-
+
while (1) {
char_count=0;
while ((!max_chars || char_count < max_chars) && begin > 0) {
@@ -5159,7 +5160,7 @@
}
if (char_count == max_chars) { /* try to avoid breaking words */
int new_char_count=char_count, new_begin=begin;
-
+
while (new_char_count > 0) {
if (_isblank(heb_str[new_begin]) ||
_isnewline(heb_str[new_begin])) {
break;
@@ -5173,7 +5174,7 @@
}
}
orig_begin=begin;
-
+
if (_isblank(heb_str[begin])) {
heb_str[begin]='\n';
}
@@ -5241,12 +5242,12 @@
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zstr) ==
FAILURE) {
WRONG_PARAM_COUNT;
}
-
+
convert_to_string_ex(zstr);
str = Z_STRVAL_PP(zstr);
end = str + Z_STRLEN_PP(zstr);
-
+
/* it is really faster to scan twice and allocate mem once insted
scanning once
and constantly reallocing */
while (str < end) {
@@ -5261,10 +5262,10 @@
}
repl_cnt++;
}
-
+
str++;
}
-
+
if (repl_cnt == 0) {
RETURN_STRINGL(Z_STRVAL_PP(zstr), Z_STRLEN_PP(zstr), 1);
}
@@ -5284,7 +5285,7 @@
*target++ = ' ';
*target++ = '/';
*target++ = '>';
-
+
if ((*str == '\r' && *(str+1) == '\n') || (*str
== '\n' && *(str+1) == '\r')) {
*target++ = *str++;
}
@@ -5292,10 +5293,10 @@
default:
*target++ = *str;
}
-
+
str++;
}
-
+
*target = '\0';
RETURN_STRINGL(tmp, new_length, 0);
@@ -5346,7 +5347,7 @@
#ifdef HAVE_SETLOCALE
pcategory = args[0];
if (Z_TYPE_PP(pcategory) == IS_LONG) {
- convert_to_long_ex(pcategory);
+ convert_to_long_ex(pcategory);
cat = Z_LVAL_PP(pcategory);
} else { /* FIXME: The following behaviour should be removed. */
char *category;
@@ -5394,13 +5395,13 @@
}
convert_to_string_ex(plocale);
-
+
if (!strcmp ("0", Z_STRVAL_PP(plocale))) {
loc = NULL;
} else {
loc = Z_STRVAL_PP(plocale);
}
-
+
retval = setlocale (cat, loc);
if (retval) {
/* Remember if locale was changed */
@@ -5408,13 +5409,13 @@
STR_FREE(BG(locale_string));
BG(locale_string) = estrdup(retval);
}
-
+
efree(args);
RETVAL_STRING(retval, 1);
-
+
return;
}
-
+
if (Z_TYPE_PP(args[1]) == IS_ARRAY) {
if (zend_hash_move_forward(Z_ARRVAL_PP(args[1])) ==
FAILURE) break;
} else {
@@ -5459,7 +5460,7 @@
/* Clear out the array that was passed in. */
zval_dtor(*arrayArg);
array_init(*arrayArg);
-
+
sapi_module.treat_data(PARSE_STRING, res, *arrayArg TSRMLS_CC);
}
}
@@ -5469,7 +5470,7 @@
/* php_u_tag_find / php_tag_find
*
- * Check if tag is in a set of tags
+ * Check if tag is in a set of tags
*
* states:
*
@@ -5542,7 +5543,7 @@
n = norm;
t = tag;
c = tolower(*t);
- /*
+ /*
normalize the tag removing leading and trailing whitespace
and turn any <a whatever...> into just <a> and any </tag>
into <tag>
@@ -5574,9 +5575,9 @@
break;
}
c = tolower(*(++t));
- }
+ }
*(n++) = '>';
- *n = '\0';
+ *n = '\0';
if (strstr(set, norm)) {
done=1;
} else {
@@ -5588,9 +5589,9 @@
/* }}} */
/* php_u_strip_tags / php_strip_tags
-
- A simple little state-machine to strip out html and php tags
-
+
+ A simple little state-machine to strip out html and php tags
+
State 0 is the output state, State 1 means we are inside a
normal html tag and state 2 means we are inside a php tag.
@@ -5670,7 +5671,7 @@
} else if (state == 0) {
*(rp++) = ch;
}
- break;
+ break;
case 0x29: /* ')' */
if (state == 2) {
@@ -5684,14 +5685,14 @@
} else if (state == 0) {
*(rp++) = ch;
}
- break;
+ break;
case 0x3E: /* '>' */
if (depth) {
depth--;
break;
}
-
+
switch (state) {
case 1: /* HTML/XML */
last = ch;
@@ -5707,14 +5708,14 @@
tp = tbuf;
}
break;
-
+
case 2: /* PHP */
if (!br && last != 0x22 && prev1 == 0x3F) { /*
'"' & '?' */
state = 0;
tp = tbuf;
}
break;
-
+
case 3:
state = 0;
tp = tbuf;
@@ -5748,7 +5749,7 @@
*(tp++) = ch;
}
break;
-
+
case 0x21: /* '!' */
/* JavaScript & Other HTML scripting languages */
if (state == 1 && prev1 == 0x3C) { /* '<' */
@@ -5815,7 +5816,7 @@
} else if (allow_len && state == 1) {
tp = ((tp-tbuf) >= UBYTES(PHP_TAG_BUF_SIZE) ?
tbuf: tp);
tp += zend_codepoint_to_uchar(ch, tp);
- }
+ }
break;
}
}
@@ -5890,7 +5891,7 @@
} else if (state == 0) {
*(rp++) = c;
}
- break;
+ break;
case ')':
if (state == 2) {
@@ -5904,14 +5905,14 @@
} else if (state == 0) {
*(rp++) = c;
}
- break;
+ break;
case '>':
if (depth) {
depth--;
break;
}
-
+
switch (state) {
case 1: /* HTML/XML */
lc = '>';
@@ -5927,14 +5928,14 @@
tp = tbuf;
}
break;
-
+
case 2: /* PHP */
if (!br && lc != '\"' && *(p-1)
== '?') {
state = 0;
tp = tbuf;
}
break;
-
+
case 3:
state = 0;
tp = tbuf;
@@ -5968,10 +5969,10 @@
*(tp++) = c;
}
break;
-
- case '!':
+
+ case '!':
/* JavaScript & Other HTML scripting languages
*/
- if (state == 1 && *(p-1) == '<') {
+ if (state == 1 && *(p-1) == '<') {
state = 3;
lc = c;
} else {
@@ -5994,7 +5995,7 @@
case '?':
- if (state == 1 && *(p-1) == '<') {
+ if (state == 1 && *(p-1) == '<') {
br=0;
state=2;
break;
@@ -6034,12 +6035,12 @@
} else if (allow && state == 1) {
tp = ((tp-tbuf) >= PHP_TAG_BUF_SIZE ?
tbuf: tp);
*(tp++) = c;
- }
+ }
break;
}
c = *(++p);
i++;
- }
+ }
if (rp < rbuf + len) {
*rp = '\0';
}
@@ -6085,7 +6086,7 @@
}
}
- /* Initialize the result string */
+ /* Initialize the result string */
result_chars = (input_str_chars * mult) + 1;
if ( input_str_type == IS_UNICODE ) {
input_str_len = UBYTES(input_str_chars);
@@ -6107,7 +6108,7 @@
}
}
result = emalloc(result_len);
-
+
/* Heavy optimization for situations where input string is 1 byte long
*/
if ( input_str_len == 1 ) {
memset(result, *((char *)input_str), mult);
@@ -6125,7 +6126,7 @@
e += l;
}
}
-
+
if ( input_str_type == IS_UNICODE ) {
*(((UChar *)result)+result_chars-1) = 0;
RETURN_UNICODEL((UChar *)result, result_chars-1, 0);
@@ -6152,19 +6153,19 @@
if (ac < 1 || ac > 2 || zend_get_parameters_ex(ac, &input, &mode) ==
FAILURE) {
WRONG_PARAM_COUNT;
}
-
+
convert_to_string_ex(input);
if (ac == 2) {
convert_to_long_ex(mode);
mymode = Z_LVAL_PP(mode);
-
+
if (mymode < 0 || mymode > 4) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown
mode.");
RETURN_FALSE;
}
}
-
+
len = Z_STRLEN_PP(input);
buf = (unsigned char *) Z_STRVAL_PP(input);
memset((void*) chars, 0, sizeof(chars));
@@ -6206,7 +6207,7 @@
break;
}
}
-
+
if (mymode >= 3 && mymode <= 4) {
RETURN_STRINGL(retstr, retlen, 1);
}
@@ -6264,7 +6265,7 @@
struct lconv currlocdata;
localeconv_r( &currlocdata );
-
+
/* Grab the grouping data out of the array */
len = strlen(currlocdata.grouping);
@@ -6430,7 +6431,7 @@
RETURN_LONG(count);
}
-/* }}} */
+/* }}} */
/* {{{ proto string str_pad(string input, int pad_length [, string pad_string
[, int pad_type]]) U
Returns input string padded on the left or right to specified length with
pad_string */
@@ -6443,7 +6444,7 @@
long pad_type; /* Padding type (left/right/both) */
int input_len, padstr_len; /* Lengths in code units for Unicode */
zend_uchar input_type, padstr_type;
-
+
/* Helper variables */
int input_codepts; /* Number of codepts in Unicode input */
int num_pad_chars; /* Number of padding characters (total - input
size) */
@@ -6568,14 +6569,14 @@
}
}
/* }}} */
-
+
/* {{{ proto mixed sscanf(string str, string format [, string ...])
Implements an ANSI C compatible sscanf */
PHP_FUNCTION(sscanf)
{
zval ***args;
int result;
- int argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
if (argc < 2) {
WRONG_PARAM_COUNT;
@@ -6589,7 +6590,7 @@
convert_to_string_ex(args[0]);
convert_to_string_ex(args[1]);
-
+
result = php_sscanf_internal(Z_STRVAL_PP(args[0]),
Z_STRVAL_PP(args[1]),
argc, args,
@@ -6630,13 +6631,13 @@
/* The implementation is stolen from array_data_shuffle */
/* Thus the characteristics of the randomization are the same */
n_elems = len;
-
+
if (n_elems <= 1) {
return;
}
n_left = n_elems;
-
+
while (--n_left) {
rnd_idx = php_rand(TSRMLS_C);
RAND_RANGE(rnd_idx, 0, n_left, PHP_RAND_MAX);
@@ -6654,14 +6655,14 @@
PHP_FUNCTION(str_shuffle)
{
zval **arg;
-
+
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg)) {
WRONG_PARAM_COUNT;
}
-
+
convert_to_string_ex(arg);
RETVAL_ZVAL(*arg, 1, 0);
- if (Z_STRLEN_P(return_value) > 1) {
+ if (Z_STRLEN_P(return_value) > 1) {
php_string_shuffle(Z_STRVAL_P(return_value), (long)
Z_STRLEN_P(return_value) TSRMLS_CC);
}
}
@@ -6673,7 +6674,7 @@
found inside the string. If format of 2 is specified, then the function
will return an associated array where the position of the word is the
key
and the word itself is the value.
-
+
For the purpose of this function, 'word' is defined as a locale
dependent
string containing alphabetic characters, which also may contain, but
not start
with "'" and "-" characters.
@@ -6691,10 +6692,10 @@
if (char_list) {
php_charmask((unsigned char*)char_list, char_list_len, ch
TSRMLS_CC);
}
-
+
p = str;
e = str + str_len;
-
+
if (type == 1 || type == 2) {
array_init(return_value);
}
@@ -6726,14 +6727,14 @@
break;
default:
word_count++;
- break;
+ break;
}
}
p++;
}
-
+
if (!type) {
- RETURN_LONG(word_count);
+ RETURN_LONG(word_count);
}
}
@@ -6774,7 +6775,7 @@
long split_length = 1;
char *p;
int n_reg_segments;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &str,
&str_len, &split_length) == FAILURE) {
return;
}
@@ -6813,7 +6814,7 @@
int haystack_len, char_list_len;
zend_uchar haystack_type, char_list_type;
void *p = NULL;
-
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "TT",
&haystack,
&haystack_len, &haystack_type,
&char_list,
&char_list_len, &char_list_type) == FAILURE) {
@@ -6822,7 +6823,7 @@
if (!char_list_len) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The character list
cannot be empty.");
- RETURN_FALSE;
+ RETURN_FALSE;
}
if (haystack_type == IS_UNICODE) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php