hholzgra Sun Jun 12 03:53:25 2005 EDT Modified files: /php-src/ext/standard dir.c Log: Support for GLOB_ERR so that glob() reports permission problems (Bug #28355) http://cvs.php.net/diff.php/php-src/ext/standard/dir.c?r1=1.145&r2=1.146&ty=u Index: php-src/ext/standard/dir.c diff -u php-src/ext/standard/dir.c:1.145 php-src/ext/standard/dir.c:1.146 --- php-src/ext/standard/dir.c:1.145 Sat Jun 11 21:13:24 2005 +++ php-src/ext/standard/dir.c Sun Jun 12 03:53:24 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dir.c,v 1.145 2005/06/12 01:13:24 hholzgra Exp $ */ +/* $Id: dir.c,v 1.146 2005/06/12 07:53:24 hholzgra Exp $ */ /* {{{ includes/startup/misc */ @@ -155,6 +155,9 @@ #ifdef GLOB_NOESCAPE REGISTER_LONG_CONSTANT("GLOB_NOESCAPE", GLOB_NOESCAPE, CONST_CS | CONST_PERSISTENT); #endif +#ifdef GLOB_ERR + REGISTER_LONG_CONSTANT("GLOB_ERR", GLOB_ERR, CONST_CS | CONST_PERSISTENT); +#endif #ifndef GLOB_ONLYDIR #define GLOB_ONLYDIR (1<<30) @@ -395,10 +398,14 @@ if (0 != (ret = glob(pattern, flags & GLOB_FLAGMASK, NULL, &globbuf))) { #ifdef GLOB_NOMATCH if (GLOB_NOMATCH == ret) { - /* Linux handles no matches as an error condition, but FreeBSD - * doesn't. This ensure that if no match is found, an empty array - * is always returned so it can be used without worrying in e.g. - * foreach() */ + /* Some glob implementation simply return no data if no matches + were found, others return the GLOB_NOMATCH error code. + We don't want to treat GLOB_NOMATCH as an error condition + so that PHP glob() behaves the same on both types of + implementations and so that 'foreach (glob() as ...' + can be used for simple glob() calls without further error + checking. + */ array_init(return_value); return; } @@ -424,7 +431,7 @@ array_init(return_value); for (n = 0; n < globbuf.gl_pathc; n++) { - /* we need to this everytime since GLOB_ONLYDIR does not guarantee that + /* we need to do this everytime since GLOB_ONLYDIR does not guarantee that * all directories will be filtered. GNU libc documentation states the * following: * If the information about the type of the file is easily available
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php