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

ruby-changes:9725

From: akr <ko1@a...>
Date: Fri, 2 Jan 2009 14:12:27 +0900 (JST)
Subject: [ruby-changes:9725] Ruby:r21266 (trunk): * ext/socket/mkconstants.rb (gen_int_to_name): add lenp argument.

akr	2009-01-02 14:12:14 +0900 (Fri, 02 Jan 2009)

  New Revision: 21266

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

  Log:
    * ext/socket/mkconstants.rb (gen_int_to_name): add lenp argument.
    * ext/socket/socket.c (ipaddr): follow argument change.

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21265)
+++ ChangeLog	(revision 21266)
@@ -1,3 +1,9 @@
+Fri Jan  2 14:11:07 2009  Tanaka Akira  <akr@f...>
+
+	* ext/socket/mkconstants.rb (gen_int_to_name): add lenp argument.
+
+	* ext/socket/socket.c (ipaddr): follow argument change.
+
 Fri Jan  2 06:43:58 2009  NARUSE, Yui  <naruse@r...>
 
 	* signal.c (rb_signal_buff_size): defined for check whether signal
Index: ext/socket/mkconstants.rb
===================================================================
--- ext/socket/mkconstants.rb	(revision 21265)
+++ ext/socket/mkconstants.rb	(revision 21266)
@@ -103,14 +103,14 @@
   yield names
 end
 
-ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_int_to_name(int_var, pat)")
+ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_int_to_name(int_var, lenp_var, pat)")
     switch (<%=int_var%>) {
 %    each_alias(pat) {|names|
 %      names.each_with_index {|n, i|
 %      cond = ["defined(#{n})"]
 %      (0...i).each {|j| cond << "(!defined(#{names[j]}) || #{n} != #{names[j]})" }
 #if <%=cond.join(" && ")%>
-      case <%=n%>: return <%=c_str n%>;
+      case <%=n%>: if (<%=lenp_var%>) *<%=lenp_var%> = <%=n.bytesize%>; return <%=c_str n%>;
 #endif
 %      }
 %    }
@@ -190,9 +190,9 @@
 }
 
 static char *
-family_to_str(int val)
+family_to_str(int val, int *lenp)
 {
-<%= gen_int_to_name("val", /\AAF_/) %>
+<%= gen_int_to_name("val", "lenp", /\AAF_/) %>
 }
 
 EOS
@@ -214,6 +214,8 @@
 SOCK_SEQPACKET
 SOCK_PACKET
 
+AF_UNSPEC
+PF_UNSPEC
 AF_INET
 PF_INET
 AF_INET6
@@ -226,8 +228,6 @@
 PF_IPX
 AF_APPLETALK
 PF_APPLETALK
-AF_UNSPEC
-PF_UNSPEC
 AF_LOCAL
 PF_LOCAL
 AF_IMPLINK
Index: ext/socket/socket.c
===================================================================
--- ext/socket/socket.c	(revision 21265)
+++ ext/socket/socket.c	(revision 21266)
@@ -1063,7 +1063,7 @@
     char hbuf[1024], pbuf[1024];
     char *name;
 
-    name = family_to_str(sockaddr->sa_family);
+    name = family_to_str(sockaddr->sa_family, NULL);
     if (name)
         family = rb_str_new2(name);
     else {

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

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