aboutsummaryrefslogtreecommitdiff
path: root/src/os/stat_windows.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/stat_windows.go')
-rw-r--r--src/os/stat_windows.go18
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)
}