Skip to content

Commit 66845fb

Browse files
committed
More work, get strings working, sort-of...
1 parent 89aea2f commit 66845fb

File tree

3 files changed

+340
-341
lines changed

3 files changed

+340
-341
lines changed

ext/standard/math.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ PHPAPI long _php_math_basetolong(zval *arg, int base)
803803

804804
s = Z_STRVAL_P(arg);
805805

806-
for (i = Z_STRLEN_P(arg); i > 0; i--) {
806+
for (i = Z_STRSIZE_P(arg); i > 0; i--) {
807807
c = *s++;
808808

809809
digit = (c >= '0' && c <= '9') ? c - '0'
@@ -855,7 +855,7 @@ PHPAPI int _php_math_basetozval(zval *arg, int base, zval *ret)
855855
cutoff = LONG_MAX / base;
856856
cutlim = LONG_MAX % base;
857857

858-
for (i = Z_STRLEN_P(arg); i > 0; i--) {
858+
for (i = Z_STRSIZE_P(arg); i > 0; i--) {
859859
c = *s++;
860860

861861
/* might not work for EBCDIC */
@@ -1098,7 +1098,7 @@ PHPAPI char *_php_math_number_format(double d, int dec, char dec_point, char tho
10981098
}
10991099

11001100
static char *_php_math_number_format_ex_len(double d, int dec, char *dec_point,
1101-
size_t dec_point_len, char *thousand_sep, size_t thousand_sep_len,
1101+
zend_str_size_size_t dec_point_len, char *thousand_sep, zend_str_size_size_t thousand_sep_len,
11021102
int *result_len)
11031103
{
11041104
char *tmpbuf = NULL, *resbuf;
@@ -1219,7 +1219,7 @@ static char *_php_math_number_format_ex_len(double d, int dec, char *dec_point,
12191219
}
12201220

12211221
PHPAPI char *_php_math_number_format_ex(double d, int dec, char *dec_point,
1222-
size_t dec_point_len, char *thousand_sep, size_t thousand_sep_len)
1222+
zend_str_size_size_t dec_point_len, char *thousand_sep, zend_str_size_size_t thousand_sep_len)
12231223
{
12241224
return _php_math_number_format_ex_len(d, dec, dec_point, dec_point_len,
12251225
thousand_sep, thousand_sep_len, NULL);
@@ -1234,9 +1234,9 @@ PHP_FUNCTION(number_format)
12341234
long dec = 0;
12351235
char *thousand_sep = NULL, *dec_point = NULL;
12361236
char thousand_sep_chr = ',', dec_point_chr = '.';
1237-
int thousand_sep_len = 0, dec_point_len = 0;
1237+
zend_str_size thousand_sep_len = 0, dec_point_len = 0;
12381238

1239-
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "d|ls!s!", &num, &dec, &dec_point, &dec_point_len, &thousand_sep, &thousand_sep_len) == FAILURE) {
1239+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "d|lS!S!", &num, &dec, &dec_point, &dec_point_len, &thousand_sep, &thousand_sep_len) == FAILURE) {
12401240
return;
12411241
}
12421242

@@ -1261,7 +1261,7 @@ PHP_FUNCTION(number_format)
12611261
Z_TYPE_P(return_value) = IS_STRING;
12621262
Z_STRVAL_P(return_value) = _php_math_number_format_ex_len(num, dec,
12631263
dec_point, dec_point_len, thousand_sep, thousand_sep_len,
1264-
&Z_STRLEN_P(return_value));
1264+
&Z_STRSIZE_P(return_value));
12651265
break;
12661266
default:
12671267
WRONG_PARAM_COUNT;

ext/standard/php_string.h

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -112,36 +112,36 @@ PHP_MINIT_FUNCTION(nl_langinfo);
112112
strnatcmp_ex(a, strlen(a), b, strlen(b), 0)
113113
#define strnatcasecmp(a, b) \
114114
strnatcmp_ex(a, strlen(a), b, strlen(b), 1)
115-
PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case);
115+
PHPAPI int strnatcmp_ex(char const *a, zend_str_size_size_t a_len, char const *b, zend_str_size_size_t b_len, int fold_case);
116116

117117
#ifdef HAVE_LOCALECONV
118118
PHPAPI struct lconv *localeconv_r(struct lconv *out);
119119
#endif
120120

121-
PHPAPI char *php_strtoupper(char *s, size_t len);
122-
PHPAPI char *php_strtolower(char *s, size_t len);
123-
PHPAPI char *php_strtr(char *str, int len, char *str_from, char *str_to, int trlen);
124-
PHPAPI char *php_addslashes(char *str, int length, int *new_length, int freeit TSRMLS_DC);
125-
PHPAPI char *php_addcslashes(const char *str, int length, int *new_length, int freeit, char *what, int wlength TSRMLS_DC);
126-
PHPAPI void php_stripslashes(char *str, int *len TSRMLS_DC);
127-
PHPAPI void php_stripcslashes(char *str, int *len);
128-
PHPAPI void php_basename(const char *s, size_t len, char *suffix, size_t sufflen, char **p_ret, size_t *p_len TSRMLS_DC);
129-
PHPAPI size_t php_dirname(char *str, size_t len);
130-
PHPAPI char *php_stristr(char *s, char *t, size_t s_len, size_t t_len);
131-
PHPAPI char *php_str_to_str_ex(char *haystack, int length, char *needle,
132-
int needle_len, char *str, int str_len, int *_new_length, int case_sensitivity, int *replace_count);
133-
PHPAPI char *php_str_to_str(char *haystack, int length, char *needle,
134-
int needle_len, char *str, int str_len, int *_new_length);
135-
PHPAPI char *php_trim(char *c, int len, char *what, int what_len, zval *return_value, int mode TSRMLS_DC);
136-
PHPAPI size_t php_strip_tags(char *rbuf, int len, int *state, char *allow, int allow_len);
137-
PHPAPI size_t php_strip_tags_ex(char *rbuf, int len, int *stateptr, char *allow, int allow_len, zend_bool allow_tag_spaces);
138-
PHPAPI int php_char_to_str_ex(char *str, uint len, char from, char *to, int to_len, zval *result, int case_sensitivity, int *replace_count);
139-
PHPAPI int php_char_to_str(char *str, uint len, char from, char *to, int to_len, zval *result);
121+
PHPAPI char *php_strtoupper(char *s, zend_str_size_size_t len);
122+
PHPAPI char *php_strtolower(char *s, zend_str_size_size_t len);
123+
PHPAPI char *php_strtr(char *str, zend_str_size_int len, char *str_from, char *str_to, zend_str_size_int trlen);
124+
PHPAPI char *php_addslashes(char *str, zend_str_size_int length, zend_str_size_int *new_length, int freeit TSRMLS_DC);
125+
PHPAPI char *php_addcslashes(const char *str, zend_str_size_int length, zend_str_size_int *new_length, int freeit, char *what, zend_str_size_int wlength TSRMLS_DC);
126+
PHPAPI void php_stripslashes(char *str, zend_str_size_int *len TSRMLS_DC);
127+
PHPAPI void php_stripcslashes(char *str, zend_str_size_int *len);
128+
PHPAPI void php_basename(const char *s, zend_str_size_size_t len, char *suffix, zend_str_size_size_t sufflen, char **p_ret, zend_str_size_size_t *p_len TSRMLS_DC);
129+
PHPAPI zend_str_size_size_t php_dirname(char *str, zend_str_size_size_t len);
130+
PHPAPI char *php_stristr(char *s, char *t, zend_str_size_size_t s_len, zend_str_size_size_t t_len);
131+
PHPAPI char *php_str_to_str_ex(char *haystack, zend_str_size_int length, char *needle,
132+
zend_str_size_int needle_len, char *str, zend_str_size_int str_len, zend_str_size_int *_new_length, int case_sensitivity, zend_str_size_int *replace_count);
133+
PHPAPI char *php_str_to_str(char *haystack, zend_str_size_int length, char *needle,
134+
zend_str_size_int needle_len, char *str, zend_str_size_int str_len, zend_str_size_int *_new_length);
135+
PHPAPI char *php_trim(char *c, zend_str_size_int len, char *what, zend_str_size_int what_len, zval *return_value, int mode TSRMLS_DC);
136+
PHPAPI zend_str_size_size_t php_strip_tags(char *rbuf, zend_str_size_int len, int *state, char *allow, zend_str_size_int allow_len);
137+
PHPAPI zend_str_size_size_t php_strip_tags_ex(char *rbuf, zend_str_size_int len, int *stateptr, char *allow, zend_str_size_int allow_len, zend_bool allow_tag_spaces);
138+
PHPAPI zend_str_size_int php_char_to_str_ex(char *str, zend_str_size_uint len, char from, char *to, zend_str_size_int to_len, zval *result, int case_sensitivity, zend_str_size_int *replace_count);
139+
PHPAPI zend_str_size_int php_char_to_str(char *str, zend_str_size_uint len, char from, char *to, zend_str_size_int to_len, zval *result);
140140
PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value TSRMLS_DC);
141141
PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, long limit);
142142

143-
PHPAPI size_t php_strspn(char *s1, char *s2, char *s1_end, char *s2_end);
144-
PHPAPI size_t php_strcspn(char *s1, char *s2, char *s1_end, char *s2_end);
143+
PHPAPI zend_str_size_size_t php_strspn(char *s1, char *s2, char *s1_end, char *s2_end);
144+
PHPAPI zend_str_size_size_t php_strcspn(char *s1, char *s2, char *s1_end, char *s2_end);
145145

146146
PHPAPI int string_natural_compare_function_ex(zval *result, zval *op1, zval *op2, zend_bool case_insensitive TSRMLS_DC);
147147
PHPAPI int string_natural_compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);

0 commit comments

Comments
 (0)