わたなべです.

Tadayoshi Funaba <tadf / kt.rim.or.jp> writes:

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

strftime はこのままだと正常な場合もエラーになってしまいます.
Check_Type のほうが簡単かな.

--- sprintf.c.orig Thu Jul 09 17:40:26 1998 +++ sprintf.c Sun Jul 12 16:47:00 1998 @@ -143,2 +143,3 @@ fmt = GETARG(); + Check_Type(fmt, T_STRING); p = str2cstr(fmt, &blen); --- time.c.orig Tue Jun 30 11:20:18 1998 +++ time.c Mon Jul 13 00:31:52 1998 @@ -742,6 +742,7 @@ int len; VALUE str; + Check_Type(format, T_STRING); GetTimeval(time, tobj); if (tobj->tm_got == 0) { time_localtime(time); --- pack.c.orig Fri Jun 26 18:44:28 1998 +++ pack.c Mon Jul 13 00:30:14 1998 @@ -103,7 +103,7 @@ char *ptr; int plen; - + Check_Type(fmt, T_STRING); p = str2cstr(fmt, &plen); pend = p + plen; res = str_new(0, 0); @@ -550,6 +550,7 @@ char type; int len; + Check_Type(fmt, T_STRING); s = str2cstr(str, &len); send = s + len; p = str2cstr(fmt, &len);