shithub: mc

Download patch

ref: 42a818c93ff5762836fe6951692fb8165e8fd284
parent: 5012321224ab424e3e7b166506690dc77d34d021
author: Ori Bernstein <[email protected]>
date: Tue Dec 23 10:29:57 EST 2014

Add directory modes.

--- a/libstd/sys+plan9-x64.myr
+++ b/libstd/sys+plan9-x64.myr
@@ -17,6 +17,24 @@
 	const Orclose	: fdopt = 64
 	const Oexcl	: fdopt = 0x1000
 
+	const Qtdir	: int64  = 0x80
+	const Qtappend	: int64  = 0x40
+	const Qtexcl	: int64  = 0x20
+	const Qtmount	: int64  = 0x10
+	const Qtauth	: int64  = 0x08
+	const Qttmp	: int64  = 0x04
+	const Qtfile	: int64  = 0x00
+
+	const Dmdir	: int64 = 0x8000000
+	const Dmappend	: int64 = 0x4000000
+	const Dmexcl	: int64 = 0x2000000
+	const Dmmount	: int64 = 0x1000000
+	const Dmauth	: int64 = 0x0800000
+	const Dmtmp	: int64 = 0x0400000
+	const Dmread	: int64 = 0x4
+	const Dmwrite	: int64 = 0x2
+	const Dmexec	: int64 = 0x1
+
 	const Syssysr1		: scno = 0
 	const Sys_errstr	: scno = 1
 	const Sysbind		: scno = 2
--- a/libstd/syswrap+plan9.myr
+++ b/libstd/syswrap+plan9.myr
@@ -42,7 +42,7 @@
 const open	= {path, opts;	-> openmode(path, opts, 0o777)}
 const openmode	= {path, opts, mode;
 	if opts & Ocreat
-		sys.create(path, opts, mode)
+		sys.create(path, opts castto(sys.fdopt), mode) castto(fd)
 	else
 		sys.open(path, opts castto(sys.fdopt)) castto(fd)
 	;;
@@ -57,7 +57,7 @@
 const mkdir	= {path, mode;	-> 
 	var fd
 
-	fd = sys.create(path, OREAD, DMDIR | mode)
+	fd = sys.create(path, sys.Oread, sys.Dmdir | mode)
 	if fd >= 0
 		close(fd)
 		-> 0