mirror of
https://github.com/golang/go
synced 2024-11-18 15:44:41 -07:00
time: unconditionally use RegLoadMUIString on Windows
RegLoadMUIString is supported on Windows Vista and later, so this should be safe to do unconditionally. While here, also unconditionally use GetDynamicTimeZoneInformation in syscall/windows/registry tests, since it's also supported on Windows Vista and later. Change-Id: Ifa32a81f4727d4810f2b9ccc814aa77a43513e59 Reviewed-on: https://go-review.googlesource.com/c/go/+/527595 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Heschi Kreinick <heschi@google.com> Run-TryBot: Quim Muntal <quimmuntal@gmail.com>
This commit is contained in:
parent
856cf23a8a
commit
de4ead8102
@ -599,12 +599,6 @@ func TestInvalidValues(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGetMUIStringValue(t *testing.T) {
|
||||
if err := registry.LoadRegLoadMUIString(); err != nil {
|
||||
t.Skip("regLoadMUIString not supported; skipping")
|
||||
}
|
||||
if err := procGetDynamicTimeZoneInformation.Find(); err != nil {
|
||||
t.Skipf("%s not supported; skipping", procGetDynamicTimeZoneInformation.Name)
|
||||
}
|
||||
var dtzi DynamicTimezoneinformation
|
||||
if _, err := GetDynamicTimeZoneInformation(&dtzi); err != nil {
|
||||
t.Fatal(err)
|
||||
|
@ -17,10 +17,6 @@ const (
|
||||
_ERROR_NO_MORE_ITEMS syscall.Errno = 259
|
||||
)
|
||||
|
||||
func LoadRegLoadMUIString() error {
|
||||
return procRegLoadMUIStringW.Find()
|
||||
}
|
||||
|
||||
//sys regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW
|
||||
//sys regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) = advapi32.RegDeleteKeyW
|
||||
//sys regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) = advapi32.RegSetValueExW
|
||||
|
@ -115,9 +115,6 @@ func (k Key) GetStringValue(name string) (val string, valtype uint32, err error)
|
||||
// the specified value name associated with an open key k.
|
||||
// If the value name doesn't exist or the localized string value
|
||||
// can't be resolved, GetMUIStringValue returns ErrNotExist.
|
||||
// GetMUIStringValue panics if the system doesn't support
|
||||
// regLoadMUIString; use LoadRegLoadMUIString to check if
|
||||
// regLoadMUIString is supported before calling this function.
|
||||
func (k Key) GetMUIStringValue(name string) (string, error) {
|
||||
pname, err := syscall.UTF16PtrFromString(name)
|
||||
if err != nil {
|
||||
|
@ -20,8 +20,8 @@ var platformZoneSources []string // none: Windows uses system calls instead
|
||||
// time apply to all previous and future years as well.
|
||||
|
||||
// matchZoneKey checks if stdname and dstname match the corresponding key
|
||||
// values "MUI_Std" and MUI_Dlt" or "Std" and "Dlt" (the latter down-level
|
||||
// from Vista) in the kname key stored under the open registry key zones.
|
||||
// values "MUI_Std" and MUI_Dlt" or "Std" and "Dlt" in the kname key stored
|
||||
// under the open registry key zones.
|
||||
func matchZoneKey(zones registry.Key, kname string, stdname, dstname string) (matched bool, err2 error) {
|
||||
k, err := registry.OpenKey(zones, kname, registry.READ)
|
||||
if err != nil {
|
||||
@ -30,13 +30,11 @@ func matchZoneKey(zones registry.Key, kname string, stdname, dstname string) (ma
|
||||
defer k.Close()
|
||||
|
||||
var std, dlt string
|
||||
if err = registry.LoadRegLoadMUIString(); err == nil {
|
||||
// Try MUI_Std and MUI_Dlt first, fallback to Std and Dlt if *any* error occurs
|
||||
std, err = k.GetMUIStringValue("MUI_Std")
|
||||
if err == nil {
|
||||
dlt, err = k.GetMUIStringValue("MUI_Dlt")
|
||||
}
|
||||
}
|
||||
if err != nil { // Fallback to Std and Dlt
|
||||
if std, _, err = k.GetStringValue("Std"); err != nil {
|
||||
return false, err
|
||||
|
@ -45,13 +45,11 @@ func TestToEnglishName(t *testing.T) {
|
||||
defer k.Close()
|
||||
|
||||
var std, dlt string
|
||||
if err = registry.LoadRegLoadMUIString(); err == nil {
|
||||
// Try MUI_Std and MUI_Dlt first, fallback to Std and Dlt if *any* error occurs
|
||||
std, err = k.GetMUIStringValue("MUI_Std")
|
||||
if err == nil {
|
||||
dlt, err = k.GetMUIStringValue("MUI_Dlt")
|
||||
}
|
||||
}
|
||||
if err != nil { // Fallback to Std and Dlt
|
||||
if std, _, err = k.GetStringValue("Std"); err != nil {
|
||||
t.Fatalf("cannot read CEST Std registry key: %s", err)
|
||||
|
Loading…
Reference in New Issue
Block a user