From b1956f058f0192edb0242aab3c501d6b24581a1c Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 19 Jan 2009 13:32:31 +0000 Subject: * ext/socket/mkconstants.rb: use erb for generating code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ ext/socket/mkconstants.rb | 17 ++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 088887d502..e35af8be01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon Jan 19 22:31:35 2009 Tanaka Akira + + * ext/socket/mkconstants.rb: use erb for generating code. + Mon Jan 19 17:33:47 2009 Nobuyoshi Nakada * string.c (hash): defaulted to MurmurHash 2.0. diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb index 1d4e90ba79..6b3174b83c 100644 --- a/ext/socket/mkconstants.rb +++ b/ext/socket/mkconstants.rb @@ -74,12 +74,17 @@ def each_name(pat) } end -MISSING_DEFS = {} +ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_decls") +% each_const {|guard, define, name, default_value| +% if default_value +#ifndef <%=name%> +# define <%=name%> <%=default_value%> +#endif +% end +% } +EOS ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs_in_guard(define, name, default_value)") -% if default_value -% MISSING_DEFS[name] = default_value -% end #if defined(<%=name%>) <%=define%>(<%=c_str name%>, <%=name%>); #endif @@ -271,10 +276,8 @@ init_constants(VALUE mConst) EOS header_result = ERB.new(<<'EOS', nil, '%').result(binding) -<%= MISSING_DEFS.map {|name, value| ["\#ifndef #{name}", "\# define #{name} #{value}", '#endif']}.join("\n") %> - +<%= gen_const_decls %> <%= NAME_TO_INT_DEFS.map {|decl, func| decl }.join("\n") %> - <%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| decl }.join("\n") %> EOS -- cgit v1.2.3