ふなばです。

考えたら、pack/unpack、strftime でもありうることだと気がつきました (他
にもあるかな)。ということで、またまた参考まで。


--- pack.c.orig	Fri Jun 26 18:44:28 1998
+++ pack.c	Sun Jul 12 23:36:41 1998
@@ -105,3 +105,6 @@
 
-    
+    if (TYPE(fmt) != T_STRING) {
+	TypeError("wrong argument type %s (expected String)",
+		  rb_class2name(CLASS_OF(fmt)));
+    }
     p = str2cstr(fmt, &plen);
@@ -554,2 +557,6 @@
     send = s + len;
+    if (TYPE(fmt) != T_STRING) {
+	TypeError("wrong argument type %s (expected String)",
+		  rb_class2name(CLASS_OF(fmt)));
+    }
     p = str2cstr(fmt, &len);

--- time.c.orig	Tue Jun 30 11:20:18 1998
+++ time.c	Sun Jul 12 23:45:53 1998
@@ -748,2 +748,6 @@
     }
+    if (TYPE(fmt) != T_STRING) {
+	TypeError("wrong argument type %s (expected String)",
+		  rb_class2name(CLASS_OF(fmt)));
+    }
     fmt = str2cstr(format, &len);


--Tadayoshi Funaba