From e6dc364272c7963f511b04178caa6edb8a7ff7a7 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 31 Mar 2008 16:55:54 +0000 Subject: * lib/resolv.rb (Resolv::Config.default_config_hash): requires win32/resolv to use Win32::Resolv. [ruby-dev:34138] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/dl/win32/lib/win32/registry.rb | 5 +++-- ext/dl/win32/lib/win32/resolv.rb | 12 ++++++++---- lib/resolv.rb | 1 + version.h | 8 ++++---- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index b61c663b7..026d65a66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 1 01:55:52 2008 Nobuyoshi Nakada + + * lib/resolv.rb (Resolv::Config.default_config_hash): requires + win32/resolv to use Win32::Resolv. [ruby-dev:34138] + Tue Apr 1 01:40:58 2008 Tadayoshi Funaba * complex.c: adopted the ruby's style. diff --git a/ext/dl/win32/lib/win32/registry.rb b/ext/dl/win32/lib/win32/registry.rb index 9a2f3827b..ccdd72181 100644 --- a/ext/dl/win32/lib/win32/registry.rb +++ b/ext/dl/win32/lib/win32/registry.rb @@ -337,9 +337,10 @@ module Win32 FormatMessageA = Win32API.new('kernel32.dll', 'FormatMessageA', 'LPLLPLP', 'L') def initialize(code) @code = code - msg = "\0" * 1024 + msg = "\0".force_encoding(Encoding::ASCII_8BIT) * 1024 len = FormatMessageA.call(0x1200, 0, code, 0, msg, 1024, 0) - super msg[0, len].tr("\r", '').chomp + msg = msg[0, len].force_encoding(Encoding.find(Encoding.locale_charmap)) + super msg.tr("\r", '').chomp end attr_reader :code end diff --git a/ext/dl/win32/lib/win32/resolv.rb b/ext/dl/win32/lib/win32/resolv.rb index 92336fac2..4e69f5808 100644 --- a/ext/dl/win32/lib/win32/resolv.rb +++ b/ext/dl/win32/lib/win32/resolv.rb @@ -82,10 +82,14 @@ if info.unpack('V5')[4] == 2 # VER_PLATFORM_WIN32_NT reg.open(iface) do |regif| begin [ 'NameServer', 'DhcpNameServer' ].each do |key| - ns = regif.read_s(key) - unless ns.empty? - nameserver.concat(ns.split(/[,\s]\s*/)) - break + begin + ns = regif.read_s(key) + rescue + else + unless ns.empty? + nameserver.concat(ns.split(/[,\s]\s*/)) + break + end end end rescue Registry::Error diff --git a/lib/resolv.rb b/lib/resolv.rb index a0c29ffb8..33afad336 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -777,6 +777,7 @@ class Resolv config_hash = Config.parse_resolv_conf(filename) else if /mswin32|cygwin|mingw|bccwin/ =~ RUBY_PLATFORM + require 'win32/resolv' search, nameserver = Win32::Resolv.get_resolv_info config_hash = {} config_hash[:nameserver] = nameserver if nameserver diff --git a/version.h b/version.h index 6c1e1d0df..f60ecd032 100644 --- a/version.h +++ b/version.h @@ -1,15 +1,15 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2008-03-31" +#define RUBY_RELEASE_DATE "2008-04-01" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20080331 +#define RUBY_RELEASE_CODE 20080401 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2008 -#define RUBY_RELEASE_MONTH 3 -#define RUBY_RELEASE_DAY 31 +#define RUBY_RELEASE_MONTH 4 +#define RUBY_RELEASE_DAY 1 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; -- cgit