diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-09 01:30:47 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-09 01:30:47 +0000 |
commit | b16b5afa2446c1b8663c38e09b1341d9f1e6afe5 (patch) | |
tree | bb0e12e9b25972e36aa3b0ebd23f2643ef6ce26a /ext/fiddle/win32 | |
parent | d9194a4604eede7be29ff3fd5f270dd8526268aa (diff) | |
download | ruby-b16b5afa2446c1b8663c38e09b1341d9f1e6afe5.tar.gz |
* ext/{dl,fiddle}/win32/lib/win32/registry.rb
(Win32::Registry.expand_environ): use suitable encoding for the
string.
* ext/{dl,fiddle}/win32/lib/win32/registry.rb (Win32::Registry#read):
should return REG_SZ, REG_EXPAND_SZ and REG_MULTI_SZ values with
the expected encoding -- assumed as the same encoding of name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/fiddle/win32')
-rw-r--r-- | ext/fiddle/win32/lib/win32/registry.rb | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/fiddle/win32/lib/win32/registry.rb b/ext/fiddle/win32/lib/win32/registry.rb index 1c881ee300..21ee6bb030 100644 --- a/ext/fiddle/win32/lib/win32/registry.rb +++ b/ext/fiddle/win32/lib/win32/registry.rb @@ -340,7 +340,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr # For detail, see expandEnvironmentStrings[http://msdn.microsoft.com/library/en-us/sysinfo/base/expandenvironmentstrings.asp] \Win32 \API. # def self.expand_environ(str) - str.gsub(Regexp.compile("%([^%]+)%".encode(str.encoding))) { ENV[$1] || ENV[$1.upcase] || $& } + str.gsub(Regexp.compile("%([^%]+)%".encode(str.encoding))) { (e = ENV[$1.encode(locale)], e.encode(str.encoding) if e) || (e = ENV[$1.encode(locale).upcase], e.encode(str.encoding) if e) || $& } end @@type2name = { } @@ -600,9 +600,9 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr end case type when REG_SZ, REG_EXPAND_SZ - [ type, data.chop ] + [ type, data.encode(name.encoding).rstrip ] when REG_MULTI_SZ - [ type, data.split(/\0/) ] + [ type, data.encode(name.encoding).split(/\0/) ] when REG_BINARY [ type, data ] when REG_DWORD |