[#11131] Re: SIGINT on windows — Daisuke Aoki <dai@...>

青木です。

36 messages 2000/10/04
[#11217] Re: SIGINT on windows — Daisuke Aoki <dai@...> 2000/10/14

青木です。

[#11250] Re: SIGINT on windows — Daisuke Aoki <dai@...> 2000/10/16

青木です。

[#11258] Re: SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/10/17

なかだです。

[#11298] Re: SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/10/27

なかだです。

[#11183] EPOC32 and Ruby 1.7 — WATANABE Hirofumi <eban@...>

わたなべです.

44 messages 2000/10/12
[#11188] Re: EPOC32 and Ruby 1.7 — matz@... (Yukihiro Matsumoto) 2000/10/12

まつもと ゆきひろです

[#11191] ruby-bugs-ja PR#20 — Kazuhiro NISHIYAMA <zn@...> 2000/10/12

On Fri, 13 Oct 2000 00:17:14 +0900

[#11205] Re: ruby-bugs-ja PR#20 — Kazuhiro NISHIYAMA <zn@...> 2000/10/13

同じ問題を短いスクリプトで再現できました。

[#11210] Re: Thread.new with irb (PR#20) — matz@... (Yukihiro Matsumoto) 2000/10/13

まつもと ゆきひろです

[#11211] Re: Thread.new with irb (PR#20) — Kazuhiro NISHIYAMA <zn@...> 2000/10/13

On Sat, 14 Oct 2000 03:41:18 +0900

[#11221] Re: Thread.new with irb (PR#20) — Kazuhiro NISHIYAMA <zn@...> 2000/10/14

[ruby-dev:11205]と同じスクリプトで-dをつけていると

[#11306] Ruby I18N — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

130 messages 2000/10/28
[#11307] Re: Ruby I18N — " たけ (tk)" <ggb03124@...> 2000/10/28

たけ(tk)です。

[#11310] Re: Ruby I18N — kenn@... 2000/10/29

長沢です。

[#11314] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/10/29

まつもと ゆきひろです

[#11315] Re: Ruby I18N — Shugo Maeda <shugo@...> 2000/10/30

前田です。

[#11324] Re: Ruby I18N — TAKAHASHI Masayoshi <maki@...> 2000/10/30

高橋征義です。

[#11337] Re: Ruby I18N — Yasushi Shoji <yashi@...> 2000/10/30

At Mon, 30 Oct 2000 13:15:23 +0900,

[#11346] Re: Ruby I18N — TAKAHASHI Masayoshi <maki@...> 2000/10/31

某2ちゃんねるで自分の名前を見つけてびびった高橋征義です。

[#11347] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/10/31

まつもと ゆきひろです

[#11370] Re: Ruby I18N — TAKAHASHI Masayoshi <maki@...> 2000/11/02

高橋征義です。

[#11372] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/02

まつもと ゆきひろです

[#11375] Re: Ruby I18N — TAKAHASHI Masayoshi <maki@...> 2000/11/04

高橋征義です。

[#11378] Re: Ruby I18N — " たけ (tk)" <ggb03124@...> 2000/11/05

たけ(tk)です。

[#11379] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/05

まつもと ゆきひろです

[#11380] Re: Ruby I18N — " たけ (tk)" <ggb03124@...> 2000/11/05

たけ(tk)です。

[#11382] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/05

まつもと ゆきひろです

[#11393] Re: Ruby I18N — "たけ(tk)" <ggb03124@...> 2000/11/07

たけ(tk)です。 ・・ 長文ご注意。

[#11396] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/07

まつもと ゆきひろです

[#11397] Re: Ruby I18N — Yasushi Shoji <yashi@...> 2000/11/07

At Tue, 7 Nov 2000 15:46:29 +0900,

[#11398] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/07

まつもと ゆきひろです

[#11399] Re: Ruby I18N — Tanaka Akira <akr@...17n.org> 2000/11/07

In article <E13t3dt-0002Fp-00@ev.netlab.zetabits.co.jp>,

[#11401] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/07

まつもと ゆきひろです

[#11404] Re: Ruby I18N — "たけ(tk)" <ggb03124@...> 2000/11/07

たけ(tk)です。

[#11406] Re: Ruby I18N — Yasushi Shoji <yashi@...> 2000/11/07

At Tue, 7 Nov 2000 19:06:27 +0900,

[#11407] Re: Ruby I18N — "たけ(tk)" <ggb03124@...> 2000/11/07

たけ(tk)です。

[#11409] Re: Ruby I18N — Minero Aoki <aamine@...> 2000/11/07

あおきです。

[#11423] Re: Ruby I18N — Tanaka Akira <akr@...17n.org> 2000/11/08

In article <E13t4Hq-0002GS-00@ev.netlab.zetabits.co.jp>,

[#11426] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/08

まつもと ゆきひろです

[#11427] Re: Ruby I18N — Tanaka Akira <akr@...17n.org> 2000/11/08

In article <E13tMYW-0002te-00@ev.netlab.zetabits.co.jp>,

[#11428] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/08

まつもと ゆきひろです

[#11430] Re: Ruby I18N — "たけ(tk)" <ggb03124@...> 2000/11/08

たけ(tk)です。

[#11433] Re: Ruby I18N — matz@... (Yukihiro Matsumoto) 2000/11/08

まつもと ゆきひろです

[#11446] 『文字列は文字の配列か』 — " たけ (tk)" <ggb03124@...> 2000/11/08

たけ(tk)です。

[#11470] Proposal of "Array of CharCode" — " たけ (tk)" <ggb03124@...> 2000/11/10

たけ(tk)です。

[#11471] Re: Proposal of "Array of CharCode" — matz@... (Yukihiro Matsumoto) 2000/11/10

まつもと ゆきひろです

[#11450] Re: Ruby I18N — Tanaka Akira <akr@...17n.org> 2000/11/09

In article <E13tNkT-00030l-00@ev.netlab.zetabits.co.jp>,

[ruby-dev:11263] arguments to Win32API

From: "Nobuyoshi.Nakada" <nobu.nakada@...>
Date: 2000-10-18 04:42:58 UTC
List: ruby-dev #11263
なかだです。

  Win32API#initialize の import と export にちょっとチェックを追加してみ
ました。copy-on-write な String でも大丈夫なはず。


diff -pruPX ./.excludes current/ext/Win32API/Win32API.c devel/ext/Win32API/Win32API.c
--- current/ext/Win32API/Win32API.c	Wed Aug 30 17:16:36 2000
+++ devel/ext/Win32API/Win32API.c	Wed Oct 18 13:20:55 2000
@@ -46,6 +46,26 @@ Win32API_FreeLibrary(hdll)
     FreeLibrary(hdll);
 }
 
+static VALUE parm_type(c, voidok)
+    int c, voidok;
+{
+    switch (c) {
+      case 'N': case 'n': case 'L': case 'l':
+	return INT2FIX(_T_NUMBER);
+      case 'P': case 'p':
+	return INT2FIX(_T_POINTER);
+      case 'I': case 'i':
+	return INT2FIX(_T_INTEGER);
+      case 'V': case 'v':
+	if (voidok) {
+	    return INT2FIX(_T_VOID);
+	}
+      default:
+	rb_raise(rb_eArgError,
+		 isprint(c) ? "invalid argument: %c" : "invalid argument: \\%.3o", c);
+    }
+}
+
 static VALUE
 Win32API_initialize(self, dllname, proc, import, export)
     VALUE self;
@@ -91,59 +111,28 @@ Win32API_initialize(self, dllname, proc,
 	ptr = RARRAY(import)->ptr;
 	for (i = 0, len = RARRAY(import)->len; i < len; i++) {
 	    Check_SafeStr(ptr[i]);
-	    switch (*(char *)RSTRING(ptr[i])->ptr) {
-	      case 'N': case 'n': case 'L': case 'l':
-		rb_ary_push(a_import, INT2FIX(_T_NUMBER));
-		break;
-	      case 'P': case 'p':
-		rb_ary_push(a_import, INT2FIX(_T_POINTER));
-		break;
-	      case 'I': case 'i':
-		rb_ary_push(a_import, INT2FIX(_T_INTEGER));
-		break;
+	    if (!RSTRING(ptr[i])->len) {
+		rb_raise(rb_eArgError, "empty argument type");
 	    }
+	    rb_ary_push(a_import, parm_type(*(char *)RSTRING(ptr[i])->ptr, FALSE));
 	}
         break;
       default:
 	Check_SafeStr(import);
 	s = RSTRING(import)->ptr;
 	for (i = 0, len = RSTRING(import)->len; i < len; i++) {
-	    switch (*s++) {
-	      case 'N': case 'n': case 'L': case 'l':
-		rb_ary_push(a_import, INT2FIX(_T_NUMBER));
-		break;
-	      case 'P': case 'p':
-		rb_ary_push(a_import, INT2FIX(_T_POINTER));
-		break;
-	      case 'I': case 'i':
-		rb_ary_push(a_import, INT2FIX(_T_INTEGER));
-		break;
-	    }
+	    rb_ary_push(a_import, parm_type(*s++, FALSE));
 	}
         break;
     }
     rb_iv_set(self, "__import__", a_import);
 
-    if (NIL_P(export)) {
-	ex = _T_VOID;
+    if (NIL_P(export) || !(Check_SafeStr(export), RSTRING(export)->len)) {
+	ex = INT2FIX(_T_VOID);
     } else {
-	Check_SafeStr(export);
-	switch (*RSTRING(export)->ptr) {
-	  case 'V': case 'v':
-	    ex = _T_VOID;
-	    break;
-	  case 'N': case 'n': case 'L': case 'l':
-	    ex = _T_NUMBER;
-	    break;
-	  case 'P': case 'p':
-	    ex = _T_POINTER;
-	    break;
-	  case 'I': case 'i':
-	    ex = _T_INTEGER;
-	    break;
-	}
+	ex = parm_type(*RSTRING(export)->ptr, TRUE);
     }
-    rb_iv_set(self, "__export__", INT2FIX(ex));
+    rb_iv_set(self, "__export__", ex);
 
     return Qnil;
 }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦


In This Thread

Prev Next