diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-06-26 01:20:27 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-06-26 01:20:27 +0000 |
commit | 9c19c6a3559ee32df9074e856c3b99a0b6449bae (patch) | |
tree | b4e39dbca0efb0dda7d474a6d395cfc87553ee83 | |
parent | 97d13d7a8f6fca9954a25d62b7d2bb4aaa6a774b (diff) | |
download | ruby-9c19c6a3559ee32df9074e856c3b99a0b6449bae.tar.gz |
Explicit ".dll" suffix
* ext/win32/lib/Win32API.rb (Win32API#initialize): Cygwin
2.5.2-1 (perhaps) seems to no longer append ".dll" suffix
implicitly.
* ext/win32/lib/win32/resolv.rb (Win32::Resolv): ditto. Fix the
error reported by yamataka AT u08.itscom.net in
[ruby-list:50339], and pointed out and patched by cerberus AT
m3.kcn.ne.jp in [ruby-list:50341].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | ext/win32/lib/Win32API.rb | 8 | ||||
-rw-r--r-- | ext/win32/lib/win32/resolv.rb | 2 |
3 files changed, 19 insertions, 2 deletions
@@ -1,3 +1,14 @@ +Sun Jun 26 10:20:25 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ext/win32/lib/Win32API.rb (Win32API#initialize): Cygwin + 2.5.2-1 (perhaps) seems to no longer append ".dll" suffix + implicitly. + + * ext/win32/lib/win32/resolv.rb (Win32::Resolv): ditto. Fix the + error reported by yamataka AT u08.itscom.net in + [ruby-list:50339], and pointed out and patched by cerberus AT + m3.kcn.ne.jp in [ruby-list:50341]. + Sat Jun 25 10:07:52 2016 Kazuki Yamaguchi <k@rhe.jp> * test/openssl/test_ocsp.rb: Ignore errors caused by bugs that exist in diff --git a/ext/win32/lib/Win32API.rb b/ext/win32/lib/Win32API.rb index 43db7db67b..fb40798a46 100644 --- a/ext/win32/lib/Win32API.rb +++ b/ext/win32/lib/Win32API.rb @@ -12,7 +12,13 @@ class Win32API def initialize(dllname, func, import, export = "0", calltype = :stdcall) @proto = [import].join.tr("VPpNnLlIi", "0SSI").sub(/^(.)0*$/, '\1') - handle = DLL[dllname] ||= Fiddle.dlopen(dllname) + handle = DLL[dllname] ||= + begin + Fiddle.dlopen(dllname) + rescue Fiddle::DLError + raise unless File.extname(dllname).empty? + Fiddle.dlopen(dllname + ".dll") + end @func = Fiddle::Function.new( handle[func], diff --git a/ext/win32/lib/win32/resolv.rb b/ext/win32/lib/win32/resolv.rb index 271084b65b..95054575b7 100644 --- a/ext/win32/lib/win32/resolv.rb +++ b/ext/win32/lib/win32/resolv.rb @@ -38,7 +38,7 @@ module Win32 nt = Module.new do break true if [nil].pack("p").size > 4 extend Importer - dlload "kernel32" + dlload "kernel32.dll" getv = extern "int GetVersionExA(void *)", :stdcall info = [ 148, 0, 0, 0, 0 ].pack('V5') + "\0" * 128 getv.call(info) |