ruby-changes:9875
From: akr <ko1@a...>
Date: Sat, 10 Jan 2009 20:52:46 +0900 (JST)
Subject: [ruby-changes:9875] Ruby:r21416 (trunk): * ext/socket/mkconstants.rb: refactored to nest properly in statically
akr 2009-01-10 20:52:06 +0900 (Sat, 10 Jan 2009) New Revision: 21416 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21416 Log: * ext/socket/mkconstants.rb: refactored to nest properly in statically and dynamically. Modified files: trunk/ChangeLog trunk/ext/socket/mkconstants.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 21415) +++ ChangeLog (revision 21416) @@ -1,3 +1,8 @@ +Sat Jan 10 20:50:02 2009 Tanaka Akira <akr@f...> + + * ext/socket/mkconstants.rb: refactored to nest properly in statically + and dynamically. + Sat Jan 10 20:26:17 2009 Tanaka Akira <akr@f...> * version.h: make version string succinct: Index: ext/socket/mkconstants.rb =================================================================== --- ext/socket/mkconstants.rb (revision 21415) +++ ext/socket/mkconstants.rb (revision 21416) @@ -66,6 +66,31 @@ } end +ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs_in_guard(define, name, default_value)") +% if default_value +#ifndef <%=name%> +#define <%=name%> <%=default_value%> +#endif + <%=define%>(<%=c_str name%>, <%=name%>); +% else +#if defined(<%=name%>) + <%=define%>(<%=c_str name%>, <%=name%>); +#endif +% end +EOS + +ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs") +% each_const {|guard, define, name, default_value| +% if guard +#if <%=guard%> +<%= gen_const_defs_in_guard(define, name, default_value) %> +#endif +% else +<%= gen_const_defs_in_guard(define, name, default_value) %> +% end +% } +EOS + def reverse_each_name(pat) DEFS.reverse_each {|name, default_value| next if pat !~ name @@ -104,10 +129,7 @@ } end -ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_name_to_int_func(funcname, pat, prefix_optional, guard=nil)") -%if guard -#ifdef <%=guard%> -%end +ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_name_to_int_func_in_guard(funcname, pat, prefix_optional, guard=nil)") static int <%=funcname%>(char *str, int len, int *valp) { @@ -126,8 +148,15 @@ return -1; } } +EOS + +ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_name_to_int_func(funcname, pat, prefix_optional, guard=nil)") %if guard +#ifdef <%=guard%> +<%=gen_name_to_int_func_in_guard(funcname, pat, prefix_optional, guard)%> #endif +%else +<%=gen_name_to_int_func_in_guard(funcname, pat, prefix_optional, guard)%> %end EOS @@ -193,25 +222,7 @@ static void init_constants(VALUE mConst) { -% each_const {|guard, define, name, default_value| -% if guard -#if <%=guard%> -% end -% if default_value -#ifndef <%=name%> -#define <%=name%> <%=default_value%> -#endif -% else -#if defined(<%=name%>) -% end - <%=define%>(<%=c_str name%>, <%=name%>); -% unless default_value -#endif -% end -% if guard -#endif -% end -% } +<%= gen_const_defs %> <%= INTERN_DEFS.map {|decl, gen_hash, func| gen_hash }.join("\n") %> } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/