mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/socket/mkconstants.rb: generate rb_define_const directly for
rdoc. * ext/.document: add socket/constdefs.c. * ext/socket/constants.c (sock_define_const): removed. (sock_define_uconst): ditto. (rb_mSockConst): new static variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
835fa875cc
commit
d9bb9b3255
4 changed files with 31 additions and 34 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
Tue Feb 17 01:53:35 2009 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* ext/socket/mkconstants.rb: generate rb_define_const directly for
|
||||||
|
rdoc.
|
||||||
|
|
||||||
|
* ext/.document: add socket/constdefs.c.
|
||||||
|
|
||||||
|
* ext/socket/constants.c (sock_define_const): removed.
|
||||||
|
(sock_define_uconst): ditto.
|
||||||
|
(rb_mSockConst): new static variable.
|
||||||
|
|
||||||
Mon Feb 16 23:14:51 2009 Tanaka Akira <akr@fsij.org>
|
Mon Feb 16 23:14:51 2009 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* ext/socket/ancdata.c (bsock_sendmsg_internal) [OpenBSD]: don't remove
|
* ext/socket/ancdata.c (bsock_sendmsg_internal) [OpenBSD]: don't remove
|
||||||
|
|
|
@ -23,6 +23,7 @@ socket/socket.c
|
||||||
socket/option.c
|
socket/option.c
|
||||||
socket/ancdata.c
|
socket/ancdata.c
|
||||||
socket/constants.c
|
socket/constants.c
|
||||||
|
socket/constdefs.c
|
||||||
socket/lib/socket.rb
|
socket/lib/socket.rb
|
||||||
stringio/stringio.c
|
stringio/stringio.c
|
||||||
strscan/strscan.c
|
strscan/strscan.c
|
||||||
|
|
|
@ -10,13 +10,9 @@
|
||||||
|
|
||||||
#include "rubysocket.h"
|
#include "rubysocket.h"
|
||||||
|
|
||||||
static void sock_define_const(const char *name, int value, VALUE mConst);
|
static VALUE rb_mSockConst;
|
||||||
static void sock_define_uconst(const char *name, unsigned int value, VALUE mConst);
|
|
||||||
#define sock_define_const(name, value) sock_define_const(name, value, mConst)
|
|
||||||
#define sock_define_uconst(name, value) sock_define_uconst(name, value, mConst)
|
|
||||||
#include "constdefs.c"
|
#include "constdefs.c"
|
||||||
#undef sock_define_const
|
|
||||||
#undef sock_define_uconst
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
constant_arg(VALUE arg, int (*str_to_int)(const char*, int, int*), const char *errmsg)
|
constant_arg(VALUE arg, int (*str_to_int)(const char*, int, int*), const char *errmsg)
|
||||||
|
@ -138,29 +134,13 @@ shutdown_how_arg(VALUE how)
|
||||||
return constant_arg(how, shutdown_how_to_int, "unknown shutdown argument");
|
return constant_arg(how, shutdown_how_to_int, "unknown shutdown argument");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
sock_define_const(const char *name, int value, VALUE mConst)
|
|
||||||
{
|
|
||||||
rb_define_const(rb_cSocket, name, INT2NUM(value));
|
|
||||||
rb_define_const(mConst, name, INT2NUM(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
sock_define_uconst(const char *name, unsigned int value, VALUE mConst)
|
|
||||||
{
|
|
||||||
rb_define_const(rb_cSocket, name, UINT2NUM(value));
|
|
||||||
rb_define_const(mConst, name, UINT2NUM(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Socket::Constants module
|
* Socket::Constants module
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
Init_socket_constants(void)
|
Init_socket_constants(void)
|
||||||
{
|
{
|
||||||
VALUE mConst;
|
|
||||||
|
|
||||||
/* constants */
|
/* constants */
|
||||||
mConst = rb_define_module_under(rb_cSocket, "Constants");
|
rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants");
|
||||||
init_constants(mConst);
|
init_constants();
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,16 +51,16 @@ DEFS = h.to_a
|
||||||
def each_const
|
def each_const
|
||||||
DEFS.each {|name, default_value|
|
DEFS.each {|name, default_value|
|
||||||
if name =~ /\AINADDR_/
|
if name =~ /\AINADDR_/
|
||||||
define = "sock_define_uconst"
|
make_value = "UINT2NUM"
|
||||||
else
|
else
|
||||||
define = "sock_define_const"
|
make_value = "INT2NUM"
|
||||||
end
|
end
|
||||||
guard = nil
|
guard = nil
|
||||||
if /\A(AF_INET6|PF_INET6)\z/ =~ name
|
if /\A(AF_INET6|PF_INET6)\z/ =~ name
|
||||||
# IPv6 is not supported although AF_INET6 is defined on bcc32/mingw
|
# IPv6 is not supported although AF_INET6 is defined on bcc32/mingw
|
||||||
guard = "defined(INET6)"
|
guard = "defined(INET6)"
|
||||||
end
|
end
|
||||||
yield guard, define, name, default_value
|
yield guard, make_value, name, default_value
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ def each_name(pat)
|
||||||
end
|
end
|
||||||
|
|
||||||
ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_decls")
|
ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_decls")
|
||||||
% each_const {|guard, define, name, default_value|
|
% each_const {|guard, make_value, name, default_value|
|
||||||
% if default_value
|
% if default_value
|
||||||
#ifndef <%=name%>
|
#ifndef <%=name%>
|
||||||
# define <%=name%> <%=default_value%>
|
# define <%=name%> <%=default_value%>
|
||||||
|
@ -81,20 +81,21 @@ ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_decls")
|
||||||
% }
|
% }
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs_in_guard(define, name, default_value)")
|
ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs_in_guard(make_value, name, default_value)")
|
||||||
#if defined(<%=name%>)
|
#if defined(<%=name%>)
|
||||||
<%=define%>(<%=c_str name%>, <%=name%>);
|
rb_define_const(rb_cSocket, <%=c_str name%>, <%=make_value%>(<%=name%>));
|
||||||
|
rb_define_const(rb_mSockConst, <%=c_str name%>, <%=make_value%>(<%=name%>));
|
||||||
#endif
|
#endif
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs")
|
ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs")
|
||||||
% each_const {|guard, define, name, default_value|
|
% each_const {|guard, make_value, name, default_value|
|
||||||
% if guard
|
% if guard
|
||||||
#if <%=guard%>
|
#if <%=guard%>
|
||||||
<%= gen_const_defs_in_guard(define, name, default_value).chomp %>
|
<%= gen_const_defs_in_guard(make_value, name, default_value).chomp %>
|
||||||
#endif
|
#endif
|
||||||
% else
|
% else
|
||||||
<%= gen_const_defs_in_guard(define, name, default_value).chomp %>
|
<%= gen_const_defs_in_guard(make_value, name, default_value).chomp %>
|
||||||
% end
|
% end
|
||||||
% }
|
% }
|
||||||
EOS
|
EOS
|
||||||
|
@ -272,8 +273,12 @@ result = ERB.new(<<'EOS', nil, '%').result(binding)
|
||||||
<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| vardef }.join("\n") %>
|
<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| vardef }.join("\n") %>
|
||||||
|
|
||||||
static void
|
static void
|
||||||
init_constants(VALUE mConst)
|
init_constants(void)
|
||||||
{
|
{
|
||||||
|
/* for rdoc */
|
||||||
|
/* rb_cSocket = rb_define_class("Socket", rb_cBasicSocket); */
|
||||||
|
/* rb_mSockConst = rb_define_module_under(rb_cSocket, "Constants"); */
|
||||||
|
|
||||||
<%= gen_const_defs %>
|
<%= gen_const_defs %>
|
||||||
<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| gen_hash }.join("\n") %>
|
<%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| gen_hash }.join("\n") %>
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue