1
0
mirror of https://github.com/golang/go synced 2024-09-25 01:20:13 -06:00

os, syscall: mingw bug fixes

R=rsc
CC=golang-dev
https://golang.org/cl/815044
This commit is contained in:
Alex Brainman 2010-04-13 22:30:41 -07:00 committed by Russ Cox
parent 6aad41919b
commit 035265975f
3 changed files with 11 additions and 14 deletions

View File

@ -55,7 +55,7 @@ func Open(name string, flag int, perm int) (file *File, err Error) {
if e == nil {
return r, nil
}
r, e = openFile(name, flag|syscall.O_CLOEXEC, perm)
r, e = openFile(name, flag, perm)
if e == nil {
return r, nil
}

View File

@ -10,8 +10,7 @@ func fileInfoFromStat(name string, fi *FileInfo, lstat, stat *syscall.Stat_t) *F
fi.Mode = 0
if stat.Windata.FileAttributes == syscall.FILE_ATTRIBUTE_DIRECTORY {
fi.Mode = fi.Mode | syscall.S_IFDIR
}
if stat.Windata.FileAttributes == syscall.FILE_ATTRIBUTE_NORMAL {
} else {
fi.Mode = fi.Mode | syscall.S_IFREG
}
if stat.Windata.FileAttributes == syscall.FILE_ATTRIBUTE_READONLY {

View File

@ -132,21 +132,19 @@ func Open(path string, mode int, perm int) (fd int, errno int) {
if len(path) == 0 {
return -1, ERROR_FILE_NOT_FOUND
}
var access, sharemode uint32
switch {
case mode&O_CREAT != 0:
access = GENERIC_READ | GENERIC_WRITE
sharemode = 0
case mode&O_RDWR == O_RDONLY:
var access uint32
switch mode & (O_RDONLY | O_WRONLY | O_RDWR) {
case O_RDONLY:
access = GENERIC_READ
sharemode = FILE_SHARE_READ
case mode&O_RDWR == O_WRONLY:
case O_WRONLY:
access = GENERIC_WRITE
sharemode = FILE_SHARE_READ
case mode&O_RDWR == O_RDWR:
case O_RDWR:
access = GENERIC_READ | GENERIC_WRITE
sharemode = FILE_SHARE_READ | FILE_SHARE_WRITE
}
if mode&O_CREAT != 0 {
access |= GENERIC_WRITE
}
sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE)
var createmode uint32
switch {
case mode&O_CREAT != 0: