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/