mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
win32/registry.rb: encode name
* ext/win32/lib/win32/registry.rb (Win32::Registry#each_value): encode name. * ext/win32/lib/win32/registry.rb (Win32::Registry#each_key): ditto. * ext/win32/lib/win32/registry.rb (Win32::Registry#export_string): encode to locale encoding if default internal is not set. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
14695c4c1a
commit
79e880c90d
2 changed files with 20 additions and 2 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
Tue Sep 24 16:39:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* ext/win32/lib/win32/registry.rb (Win32::Registry#each_value): encode
|
||||||
|
name.
|
||||||
|
|
||||||
|
* ext/win32/lib/win32/registry.rb (Win32::Registry#each_key): ditto.
|
||||||
|
|
||||||
|
* ext/win32/lib/win32/registry.rb (Win32::Registry#export_string):
|
||||||
|
encode to locale encoding if default internal is not set.
|
||||||
|
|
||||||
Tue Sep 24 16:35:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue Sep 24 16:35:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumKey):
|
* ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumKey):
|
||||||
|
|
|
@ -290,7 +290,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
name = WCHAR_NUL * Constants::MAX_KEY_LENGTH
|
name = WCHAR_NUL * Constants::MAX_KEY_LENGTH
|
||||||
size = packdw(Constants::MAX_KEY_LENGTH)
|
size = packdw(Constants::MAX_KEY_LENGTH)
|
||||||
check RegEnumValueW.call(hkey, index, name, size, 0, 0, 0, 0)
|
check RegEnumValueW.call(hkey, index, name, size, 0, 0, 0, 0)
|
||||||
name[0, unpackdw(size)].encode
|
name[0, unpackdw(size)]
|
||||||
end
|
end
|
||||||
|
|
||||||
def EnumKey(hkey, index)
|
def EnumKey(hkey, index)
|
||||||
|
@ -298,7 +298,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
size = packdw(Constants::MAX_KEY_LENGTH)
|
size = packdw(Constants::MAX_KEY_LENGTH)
|
||||||
wtime = ' ' * 8
|
wtime = ' ' * 8
|
||||||
check RegEnumKeyExW.call(hkey, index, name, size, 0, 0, 0, wtime)
|
check RegEnumKeyExW.call(hkey, index, name, size, 0, 0, 0, wtime)
|
||||||
[ name[0, unpackdw(size)].encode, unpackqw(wtime) ]
|
[ name[0, unpackdw(size)], unpackqw(wtime) ]
|
||||||
end
|
end
|
||||||
|
|
||||||
def QueryValue(hkey, name)
|
def QueryValue(hkey, name)
|
||||||
|
@ -558,6 +558,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
rescue Error
|
rescue Error
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
subkey = export_string(subkey)
|
||||||
begin
|
begin
|
||||||
type, data = read(subkey)
|
type, data = read(subkey)
|
||||||
rescue Error
|
rescue Error
|
||||||
|
@ -594,6 +595,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
rescue Error
|
rescue Error
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
subkey = export_string(subkey)
|
||||||
yield subkey, wtime
|
yield subkey, wtime
|
||||||
index += 1
|
index += 1
|
||||||
end
|
end
|
||||||
|
@ -883,5 +885,11 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
end
|
end
|
||||||
__END__
|
__END__
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def export_string(str, enc = Encoding.default_internal || LOCALE) # :nodoc:
|
||||||
|
str.encode(enc)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue