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

ruby-changes:10109

From: usa <ko1@a...>
Date: Mon, 19 Jan 2009 09:24:18 +0900 (JST)
Subject: [ruby-changes:10109] Ruby:r21652 (trunk): * ext/socket/raddrinfo.c (addrinfo_mdump, addrinfo_mload): support

usa	2009-01-19 09:23:48 +0900 (Mon, 19 Jan 2009)

  New Revision: 21652

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

  Log:
    * ext/socket/raddrinfo.c (addrinfo_mdump, addrinfo_mload): support
      UNIX socket only on platforms which support it.

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21651)
+++ ChangeLog	(revision 21652)
@@ -1,3 +1,11 @@
+Mon Jan 19 09:21:04 2009  NAKAMURA Usaku  <usa@r...>
+
+	* ext/socket/mkconstants.rb: define macros with default value in
+	  constdefs.h if not exist them.
+
+	* ext/socket/raddrinfo.c (addrinfo_mdump, addrinfo_mload): support
+	  UNIX socket only on platforms which support it.
+
 Mon Jan 19 08:56:53 2009  Koichi Sasada  <ko1@a...>
 
 	* eval.c, vm_eval.c (rb_f_local_variables): move definition from eval.c
Index: ext/socket/raddrinfo.c
===================================================================
--- ext/socket/raddrinfo.c	(revision 21651)
+++ ext/socket/raddrinfo.c	(revision 21652)
@@ -1153,6 +1153,7 @@
     afamily = rb_id2str(id);
 
     switch(afamily_int) {
+#ifdef HAVE_SYS_UN_H
       case AF_UNIX:
       {
         struct sockaddr_un *su = (struct sockaddr_un *)&rai->addr;
@@ -1164,6 +1165,7 @@
         sockaddr = rb_str_new(s, e-s);
         break;
       }
+#endif
 
       default:
       {
@@ -1250,6 +1252,7 @@
 
     v = rb_ary_entry(ary, 1);
     switch(afamily) {
+#ifdef HAVE_SYS_UN_H
       case AF_UNIX:
       {
         struct sockaddr_un *su = (struct sockaddr_un *)&ss;
@@ -1263,6 +1266,7 @@
         len = sizeof(*su);
         break;
       }
+#endif
 
       default:
       {
Index: ext/socket/mkconstants.rb
===================================================================
--- ext/socket/mkconstants.rb	(revision 21651)
+++ ext/socket/mkconstants.rb	(revision 21652)
@@ -74,17 +74,15 @@
   }
 end
 
+MISSING_DEFS = {}
+
 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
+%   MISSING_DEFS[name] = default_value
+% end
 #if defined(<%=name%>)
     <%=define%>(<%=c_str name%>, <%=name%>);
 #endif
-% end
 EOS
 
 ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_defs")
@@ -273,6 +271,8 @@
 EOS
 
 header_result = ERB.new(<<'EOS', nil, '%').result(binding)
+<%= MISSING_DEFS.map {|name, value| ["\#ifndef #{name}", "\# define #{name} #{value}", '#endif']}.join("\n") %>
+
 <%= NAME_TO_INT_DEFS.map {|decl, func| decl }.join("\n") %>
 
 <%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| decl }.join("\n") %>

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

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