[#15625] rb_hash_initialize — Takaaki Tateishi <ttate@...>

立石です.

22 messages 2002/01/04
[#15627] Re: rb_hash_initialize — matz@... (Yukihiro Matsumoto) 2002/01/04

まつもと ゆきひろです

[#15628] Re: rb_hash_initialize — Takaaki Tateishi <ttate@...> 2002/01/04

立石です.

[#15685] undefined method `inherited' for false (NameError) — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2002/01/15
[#15686] Re: undefined method `inherited' for false (NameError) — nobu.nakada@... 2002/01/15

なかだです。

[#15757] 文字列→整数変換 — nobu.nakada@...

なかだです。

30 messages 2002/01/25

[#15830] [ 提案 ] puts, print 等を IO から分離 — UENO Katsuhiro <unnie@...>

うえのです。

14 messages 2002/01/31

[ruby-dev:15731] win32/registry.rb (Re: [patch] resolv.rb for win32 platform)

From: Tietew <tietew-ml-ruby-dev@...>
Date: 2002-01-20 13:12:32 UTC
List: ruby-dev #15731
Tietew です。

On Sun, 20 Jan 2002 00:44:20 +0900
In article <20020120004003.DE29.USA@osb.att.ne.jp>
[[ruby-dev:15727] Re: [patch] resolv.rb for win32 platform]
"U.Nakamura" <usa@osb.att.ne.jp> wrote:

> > なお,win32/registry.rb はレジストリアクセス用のクラスです。
> > 現在の DNS Servers を得るのに必要だったなので作りました。
> 
> 今頃反応で申し訳ないのですが、質問です。
> 
> REG_EXPAND_SZ が REG_MULTI_SZ と同じ扱いになってますけど、こ
> れって何か意図がありますか?
> REG_SZ と同じ扱いにするのが普通だと思ったのですが。

いいえ,私の勘違いです。REG_SZ と同じ扱いが正しいです。
勢いだけで書いてしまったので…と言い訳してみる(^^;

あと,ちょこっとバグを見つけたのでそれの修正です。


--- registry.rb.orig	Fri Dec 28 14:19:44 2001
+++ registry.rb	Sun Jan 20 22:09:19 2002
@@ -67,7 +67,7 @@
     ((|type|)) is value type. (see Constants module)
     ((|data|)) is value data, its class is:
-    :REG_SZ
+    :REG_SZ, REG_EXPAND_SZ
        String
-    :REG_MULTI_SZ, REG_EXPAND_SZ
+    :REG_MULTI_SZ
        Array of String
     :REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_QWORD
@@ -451,9 +451,9 @@
     end
     
-    def open(subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED)
-      type.open(self, subkey, desired, opt)
+    def open(subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED, &blk)
+      type.open(self, subkey, desired, opt, &blk)
     end
-    def create(subkey, desired = KEY_ALL_ACCESS, opt = REG_OPTION_RESERVED)
-      type.create(self, subkey, desired, opt)
+    def create(subkey, desired = KEY_ALL_ACCESS, opt = REG_OPTION_RESERVED, &blk)
+      type.create(self, subkey, desired, opt, &blk)
     end
     def close
@@ -506,7 +506,7 @@
       type, data = API.QueryValue(@hkey, name)
       case type
-      when REG_SZ
+      when REG_SZ, REG_EXPAND_SZ
         [ type, data.chop ]
-      when REG_EXPAND_SZ, REG_MULTI_SZ
+      when REG_MULTI_SZ
         [ type, data.split(/\0/) ]
       when REG_BINARY
@@ -555,8 +555,8 @@
     def write(name, type, data)
       case type
-      when REG_SZ
+      when REG_SZ, REG_EXPAND_SZ
         size = data.length + 1
-        data << "\0"
-      when REG_EXPAND_SZ, REG_MULTI_SZ
+        data += "\0"
+      when REG_MULTI_SZ
         size = 0
         data.each { |d| size += d.length + 1 }
@@ -604,13 +604,13 @@
       begin
         API.EnumKey @hkey, 0
-        raise Error.new(0)
       rescue Error
-        API.DeleteKey(@hkey, name)
+        return API.DeleteKey(@hkey, name)
       end
+      raise Error.new(5) ## ERROR_ACCESS_DENIED
     end
     
     def delete_key_r(name)
-      open(name) do |reg|
-        reg.each_key do |key|
+      open(name, KEY_ALL_ACCESS) do |reg|
+        reg.each_key do |key,|
           reg.delete_key_r(key)
         end



—[ Tietew ]——————————————————————————
 メ : tietew@tietew.net / tietew@raug.net / tietew@masuclub.net
ホペ: http://www.tietew.net/     Tietew Windows Lab.
      http://www.masuclub.net/   鱒倶楽部
指紋: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA

In This Thread