aboutsummaryrefslogtreecommitdiffstats
path: root/ext/win32/lib
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-06-26 01:20:27 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-06-26 01:20:27 +0000
commit9c19c6a3559ee32df9074e856c3b99a0b6449bae (patch)
treeb4e39dbca0efb0dda7d474a6d395cfc87553ee83 /ext/win32/lib
parent97d13d7a8f6fca9954a25d62b7d2bb4aaa6a774b (diff)
downloadruby-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
Diffstat (limited to 'ext/win32/lib')
-rw-r--r--ext/win32/lib/Win32API.rb8
-rw-r--r--ext/win32/lib/win32/resolv.rb2
2 files changed, 8 insertions, 2 deletions
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)