diff options
Diffstat (limited to 'src/os/stat_windows.go')
-rw-r--r-- | src/os/stat_windows.go | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/os/stat_windows.go b/src/os/stat_windows.go index 033c3b9353..668255f74a 100644 --- a/src/os/stat_windows.go +++ b/src/os/stat_windows.go @@ -20,7 +20,7 @@ func (file *File) Stat() (FileInfo, error) { } // stat implements both Stat and Lstat of a file. -func stat(funcname, name string, followSymlinks bool) (FileInfo, error) { +func stat(funcname, name string, followSurrogates bool) (FileInfo, error) { if len(name) == 0 { return nil, &PathError{Op: funcname, Path: name, Err: syscall.Errno(syscall.ERROR_PATH_NOT_FOUND)} } @@ -44,7 +44,7 @@ func stat(funcname, name string, followSymlinks bool) (FileInfo, error) { } syscall.FindClose(sh) if fd.FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT == 0 { - // Not a symlink or mount point. FindFirstFile is good enough. + // Not a surrogate for another named entity. FindFirstFile is good enough. fs := newFileStatFromWin32finddata(&fd) if err := fs.saveInfoFromPath(name); err != nil { return nil, err @@ -54,7 +54,7 @@ func stat(funcname, name string, followSymlinks bool) (FileInfo, error) { } if err == nil && fa.FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT == 0 { - // The file is definitely not a symlink, because it isn't any kind of reparse point. + // Not a surrogate for another named entity, because it isn't any kind of reparse point. // The information we got from GetFileAttributesEx is good enough for now. fs := &fileStat{ FileAttributes: fa.FileAttributes, @@ -70,21 +70,21 @@ func stat(funcname, name string, followSymlinks bool) (FileInfo, error) { return fs, nil } - // Use CreateFile to determine whether the file is a symlink and, if so, + // Use CreateFile to determine whether the file is a name surrogate and, if so, // save information about the link target. // Set FILE_FLAG_BACKUP_SEMANTICS so that CreateFile will create the handle // even if name refers to a directory. h, err := syscall.CreateFile(namep, 0, 0, nil, syscall.OPEN_EXISTING, syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OPEN_REPARSE_POINT, 0) if err != nil { // Since CreateFile failed, we can't determine whether name refers to a - // symlink, or some other kind of reparse point. Since we can't return a + // name surrogate, or some other kind of reparse point. Since we can't return a // FileInfo with a known-accurate Mode, we must return an error. return nil, &PathError{Op: "CreateFile", Path: name, Err: err} } fi, err := statHandle(name, h) syscall.CloseHandle(h) - if err == nil && followSymlinks && fi.(*fileStat).isSymlink() { + if err == nil && followSurrogates && fi.(*fileStat).isReparseTagNameSurrogate() { // To obtain information about the link target, we reopen the file without // FILE_FLAG_OPEN_REPARSE_POINT and examine the resulting handle. // (See https://devblogs.microsoft.com/oldnewthing/20100212-00/?p=14963.) @@ -123,14 +123,14 @@ func statNolog(name string) (FileInfo, error) { // lstatNolog implements Lstat for Windows. func lstatNolog(name string) (FileInfo, error) { - followSymlinks := false + followSurrogates := false if name != "" && IsPathSeparator(name[len(name)-1]) { // We try to implement POSIX semantics for Lstat path resolution // (per https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/basedefs/V1_chap04.html#tag_04_12): // symlinks before the last separator in the path must be resolved. Since // the last separator in this case follows the last path element, we should // follow symlinks in the last path element. - followSymlinks = true + followSurrogates = true } - return stat("Lstat", name, followSymlinks) + return stat("Lstat", name, followSurrogates) } |