ruby-changes:21663
From: kosaki <ko1@a...>
Date: Sat, 12 Nov 2011 11:07:20 +0900 (JST)
Subject: [ruby-changes:21663] kosaki:r33711 (trunk): * io.c (+ioctl_narg_len) new helper function.
kosaki 2011-11-12 11:06:23 +0900 (Sat, 12 Nov 2011) New Revision: 33711 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33711 Log: * io.c (+ioctl_narg_len) new helper function. * io.c (rb_io_ctl): don't use ioctl specific length check if caller is fcntl. Modified files: trunk/ChangeLog trunk/io.c Index: ChangeLog =================================================================== --- ChangeLog (revision 33710) +++ ChangeLog (revision 33711) @@ -1,3 +1,9 @@ +Sat Nov 12 10:52:17 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * io.c (+ioctl_narg_len) new helper function. + * io.c (rb_io_ctl): don't use ioctl specific length check + if caller is fcntl. + Fri Nov 11 23:00:46 2011 Tanaka Akira <akr@f...> * ext/dbm/extconf.rb: db_prefix is not required now. Index: io.c =================================================================== --- io.c (revision 33710) +++ io.c (revision 33711) @@ -7909,6 +7909,25 @@ return retval; } +static long +ioctl_narg_len(int cmd) +{ + long len; + +#ifdef IOCPARM_MASK +#ifndef IOCPARM_LEN +#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK) +#endif +#endif +#ifdef IOCPARM_LEN + len = IOCPARM_LEN(cmd); /* on BSDish systems we're safe */ +#else + len = 256; /* otherwise guess at what's safe */ +#endif + + return len; +} + static VALUE rb_io_ctl(VALUE io, VALUE req, VALUE arg, int io_p) { @@ -7937,16 +7956,11 @@ } else { arg = tmp; -#ifdef IOCPARM_MASK -#ifndef IOCPARM_LEN -#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK) -#endif -#endif -#ifdef IOCPARM_LEN - len = IOCPARM_LEN(cmd); /* on BSDish systems we're safe */ -#else - len = 256; /* otherwise guess at what's safe */ -#endif + + if (io_p) + ioctl_narg_len(cmd); + else + len = 256; rb_str_modify(arg); if (len <= RSTRING_LEN(arg)) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/