time: return ENOENT instead of ERROR_PATH_NOT_FOUND in windows

When using windows some users got a weird error (File not found) when the timezone database is not found. It happens because some methods in the time package don't treat ERROR_PATH_NOT_FOUND and ENOTDIR. To solve it was added a conversion to ENOTENT error.

Fixes #50248

Change-Id: I11c84cf409e01eafb932aea43c7293c8218259b8
GitHub-Last-Rev: fe7fff90cb
GitHub-Pull-Request: golang/go#50906
Reviewed-on: https://go-review.googlesource.com/c/go/+/381957
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
This commit is contained in:
rlanhellas 2022-01-31 22:47:42 +00:00 committed by Gopher Robot
parent 0ad74fd1dc
commit 4c565a5561
1 changed files with 4 additions and 0 deletions

View File

@ -16,6 +16,10 @@ func interrupt() {
func open(name string) (uintptr, error) {
fd, err := syscall.Open(name, syscall.O_RDONLY, 0)
if err != nil {
// This condition solves issue https://go.dev/issue/50248
if err == syscall.ERROR_PATH_NOT_FOUND {
err = syscall.ENOENT
}
return 0, err
}
return uintptr(fd), nil