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

Reply via email to