Loading...
--- Libc/Libc-583/sys/open.c
+++ Libc/Libc-498.1.7/sys/open.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2009 Apple Inc. All rights reserved.
+ * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
@@ -22,26 +22,24 @@
  */
 
 #include <sys/types.h>
-#include <fcntl.h>
-#include <stdarg.h>
+/*
+ * We need O_NOCTTY from fcntl.h, but that would also drag in the variadic
+ * prototype for open(), and so we'd have to use stdarg.h to get the mode.
+ * So open.h just contains O_NOCTTY, which it gets from fcntl.h.
+ *
+ * This is for legacy only.
+ */
+#include "open.h"
 
 int __open_nocancel(const char *path, int flags, mode_t mode);
+int open(const char *path, int flags, mode_t mode) LIBC_ALIAS_C(open);
 
 /*
  * open stub: The legacy interface never automatically associated a controlling
  * tty, so we always pass O_NOCTTY.
  */
 int
-open(const char *path, int flags, ...)
+open(const char *path, int flags, mode_t mode)
 {
-	mode_t mode = 0;
-
-	if(flags & O_CREAT) {
-		va_list ap;
-		va_start(ap, flags);
-		// compiler warns to pass int (not mode_t) to va_arg
-		mode = va_arg(ap, int);
-		va_end(ap);
-	}
 	return(__open_nocancel(path, flags | O_NOCTTY, mode));
 }