diff --git a/ChangeLog b/ChangeLog index e22739c077..447dca2056 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Jan 1 16:08:11 2009 Tanaka Akira + + * ext/socket/mkconstants.rb: generate init_constants function. + + * ext/socket/socket.c (Init_socket): call init_constants. + Thu Jan 1 16:03:04 2009 Tanaka Akira * ext/socket/mkconstants.rb (Socket::AF_INET6): moved from socket.c. diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb index 02d7e17b77..257b315c19 100644 --- a/ext/socket/mkconstants.rb +++ b/ext/socket/mkconstants.rb @@ -53,6 +53,9 @@ def each_data end result << ERB.new(<<'EOS', nil, '%').result(binding) +static void +init_constants(VALUE mConst) +{ % each_data {|guard, define, name, default_value| % if guard #if <%=guard%> @@ -69,6 +72,7 @@ result << ERB.new(<<'EOS', nil, '%').result(binding) % end % } +} EOS if opt_o diff --git a/ext/socket/socket.c b/ext/socket/socket.c index b91e1396cd..fe972ce5f7 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -3592,6 +3592,8 @@ 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 "constants.h" + /* * Class +Socket+ provides access to the underlying operating system * socket implementations. It can be used to provide more operating system @@ -3732,5 +3734,5 @@ Init_socket() /* constants */ mConst = rb_define_module_under(rb_cSocket, "Constants"); -#include "constants.h" + init_constants(mConst); }