iliaa Thu Feb 13 10:09:39 2003 EDT Modified files: /php4/main streams.c Log: Simplified the mode validation code & added support for read+write mode to 'x' mode. Index: php4/main/streams.c diff -u php4/main/streams.c:1.150 php4/main/streams.c:1.151 --- php4/main/streams.c:1.150 Thu Feb 13 09:52:54 2003 +++ php4/main/streams.c Thu Feb 13 10:09:39 2003 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.150 2003/02/13 14:52:54 wez Exp $ */ +/* $Id: streams.c,v 1.151 2003/02/13 15:09:39 iliaa Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -1853,27 +1853,13 @@ switch (mode[0]) { case 'r': - if (strchr(mode, '+')) { - flags = O_RDWR; - } else { - flags = O_RDONLY; - } + flags = 0; break; case 'w': - if (strchr(mode, '+')) { - flags = O_RDWR; - } else { - flags = O_WRONLY; - } - flags |= O_TRUNC|O_CREAT; + flags = O_TRUNC|O_CREAT; break; case 'a': - if (strchr(mode, '+')) { - flags = O_RDWR; - } else { - flags = O_WRONLY; - } - flags |= O_CREAT|O_APPEND; + flags = O_CREAT|O_APPEND; break; case 'x': flags = O_CREAT|O_EXCL; @@ -1881,6 +1867,14 @@ default: /* unknown mode */ return FAILURE; + } + + if (strchr(mode, '+')) { + flags |= O_RDWR; + } else if (flags) { + flags |= O_WRONLY; + } else { + flags |= O_RDONLY' } #ifdef O_BINARY
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php