[前][次][番号順一覧][スレッド一覧]

ruby-changes:10128

From: akr <ko1@a...>
Date: Mon, 19 Jan 2009 22:32:51 +0900 (JST)
Subject: [ruby-changes:10128] Ruby:r21672 (trunk): * ext/socket/mkconstants.rb: use erb for generating code.

akr	2009-01-19 22:32:31 +0900 (Mon, 19 Jan 2009)

  New Revision: 21672

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21672

  Log:
    * ext/socket/mkconstants.rb: use erb for generating code.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/mkconstants.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21671)
+++ ChangeLog	(revision 21672)
@@ -1,3 +1,7 @@
+Mon Jan 19 22:31:35 2009  Tanaka Akira  <akr@f...>
+
+	* ext/socket/mkconstants.rb: use erb for generating code.
+
 Mon Jan 19 17:33:47 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* string.c (hash): defaulted to MurmurHash 2.0.
Index: ext/socket/mkconstants.rb
===================================================================
--- ext/socket/mkconstants.rb	(revision 21671)
+++ ext/socket/mkconstants.rb	(revision 21672)
@@ -74,12 +74,17 @@
   }
 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 @@
 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
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]