summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/dir.c4
-rw-r--r--main/php_streams.h8
-rw-r--r--main/streams/streams.c20
3 files changed, 16 insertions, 16 deletions
diff --git a/ext/standard/dir.c b/ext/standard/dir.c
index ae38a20130..357146146f 100644
--- a/ext/standard/dir.c
+++ b/ext/standard/dir.c
@@ -554,7 +554,7 @@ PHP_FUNCTION(scandir)
char *dirn;
int dirn_len;
long flags = 0;
- char **namelist;
+ zend_string **namelist;
int n, i;
zval *zcontext = NULL;
php_stream_context *context = NULL;
@@ -587,7 +587,7 @@ PHP_FUNCTION(scandir)
array_init(return_value);
for (i = 0; i < n; i++) {
- add_next_index_string(return_value, namelist[i], 0);
+ add_next_index_str(return_value, namelist[i]);
}
if (n) {
diff --git a/main/php_streams.h b/main/php_streams.h
index ad16d4b74f..39a4a961e7 100644
--- a/main/php_streams.h
+++ b/main/php_streams.h
@@ -348,11 +348,11 @@ PHPAPI php_stream_dirent *_php_stream_readdir(php_stream *dirstream, php_stream_
#define php_stream_closedir(dirstream) php_stream_close((dirstream))
#define php_stream_rewinddir(dirstream) php_stream_rewind((dirstream))
-PHPAPI int php_stream_dirent_alphasort(const char **a, const char **b);
-PHPAPI int php_stream_dirent_alphasortr(const char **a, const char **b);
+PHPAPI int php_stream_dirent_alphasort(const zend_string **a, const zend_string **b);
+PHPAPI int php_stream_dirent_alphasortr(const zend_string **a, const zend_string **b);
-PHPAPI int _php_stream_scandir(const char *dirname, char **namelist[], int flags, php_stream_context *context,
- int (*compare) (const char **a, const char **b) TSRMLS_DC);
+PHPAPI int _php_stream_scandir(const char *dirname, zend_string **namelist[], int flags, php_stream_context *context,
+ int (*compare) (const zend_string **a, const zend_string **b) TSRMLS_DC);
#define php_stream_scandir(dirname, namelist, context, compare) _php_stream_scandir((dirname), (namelist), 0, (context), (compare) TSRMLS_CC)
PHPAPI int _php_stream_set_option(php_stream *stream, int option, int value, void *ptrparam TSRMLS_DC);
diff --git a/main/streams/streams.c b/main/streams/streams.c
index c595c80240..cd24a16440 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -2243,28 +2243,28 @@ PHPAPI int php_stream_context_set_option(php_stream_context *context,
/* {{{ php_stream_dirent_alphasort
*/
-PHPAPI int php_stream_dirent_alphasort(const char **a, const char **b)
+PHPAPI int php_stream_dirent_alphasort(const zend_string **a, const zend_string **b)
{
- return strcoll(*a, *b);
+ return strcoll((*a)->val, (*b)->val);
}
/* }}} */
/* {{{ php_stream_dirent_alphasortr
*/
-PHPAPI int php_stream_dirent_alphasortr(const char **a, const char **b)
+PHPAPI int php_stream_dirent_alphasortr(const zend_string **a, const zend_string **b)
{
- return strcoll(*b, *a);
+ return strcoll((*b)->val, (*a)->val);
}
/* }}} */
/* {{{ php_stream_scandir
*/
-PHPAPI int _php_stream_scandir(const char *dirname, char **namelist[], int flags, php_stream_context *context,
- int (*compare) (const char **a, const char **b) TSRMLS_DC)
+PHPAPI int _php_stream_scandir(const char *dirname, zend_string **namelist[], int flags, php_stream_context *context,
+ int (*compare) (const zend_string **a, const zend_string **b) TSRMLS_DC)
{
php_stream *stream;
php_stream_dirent sdp;
- char **vector = NULL;
+ zend_string **vector = NULL;
unsigned int vector_size = 0;
unsigned int nfiles = 0;
@@ -2290,10 +2290,10 @@ PHPAPI int _php_stream_scandir(const char *dirname, char **namelist[], int flags
}
vector_size *= 2;
}
- vector = (char **) safe_erealloc(vector, vector_size, sizeof(char *), 0);
+ vector = (zend_string **) safe_erealloc(vector, vector_size, sizeof(char *), 0);
}
- vector[nfiles] = estrdup(sdp.d_name);
+ vector[nfiles] = STR_INIT(sdp.d_name, strlen(sdp.d_name), 0);
nfiles++;
if(vector_size < 10 || nfiles == 0) {
@@ -2308,7 +2308,7 @@ PHPAPI int _php_stream_scandir(const char *dirname, char **namelist[], int flags
*namelist = vector;
if (nfiles > 0 && compare) {
- qsort(*namelist, nfiles, sizeof(char *), (int(*)(const void *, const void *))compare);
+ qsort(*namelist, nfiles, sizeof(zend_string *), (int(*)(const void *, const void *))compare);
}
return nfiles;
}