]> git.saurik.com Git - apple/libc.git/blobdiff - stdio/FreeBSD/flags.c
Libc-997.1.1.tar.gz
[apple/libc.git] / stdio / FreeBSD / flags.c
index 17d175db19130c6ed12e31d6aef343d3507c63a3..3b90476c2c24bd323dbac74e0112d254e30e12ef 100644 (file)
@@ -81,10 +81,17 @@ __sflags(mode, optr)
        }
 
        /* [rwa]\+ or [rwa]b\+ means read and write */
-       if (*mode == '+' || (*mode == 'b' && mode[1] == '+')) {
+       if (*mode == 'b')
+               mode++;
+       if (*mode == '+') {
                ret = __SRW;
                m = O_RDWR;
+               mode++;
+               if (*mode == 'b')
+                       mode++;
        }
+       if (*mode == 'x')
+               o |= O_EXCL;
        *optr = m | o;
        return (ret);
 }