mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* parse.y (newline_node): do not use NODE_NEWLINE node anymore,
use NEWLINE flag instead. * ext/socket/socket.c (sock_gethostbyname): returns host if ai_canonname is NULL. (ruby-bugs PR#1243) * parse.y (block_append): update nd_end for "real" head node. [ruby-list:39058] * marshal.c (w_class): should not dump singleton class. [ruby-dev:22631] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									d0149b9e21
								
							
						
					
					
						commit
						002517aba8
					
				
					 11 changed files with 74 additions and 103 deletions
				
			
		
							
								
								
									
										18
									
								
								ChangeLog
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								ChangeLog
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
Thu Jan 22 01:46:32 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* parse.y (newline_node): do not use NODE_NEWLINE node anymore,
 | 
			
		||||
	  use NEWLINE flag instead.
 | 
			
		||||
 | 
			
		||||
Thu Jan 22 01:12:12 2004  Siena.  <siena@faculty.chiba-u.jp>
 | 
			
		||||
 | 
			
		||||
	* missing/os2.c (chdir, getcwd):
 | 
			
		||||
| 
						 | 
				
			
			@ -57,6 +62,14 @@ Wed Jan 21 16:01:26 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		|||
 | 
			
		||||
	* ext/digest/rmd160/extconf.rb: have_library appends found library.
 | 
			
		||||
 | 
			
		||||
Wed Jan 21 11:36:00 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* ext/socket/socket.c (sock_gethostbyname): returns host if
 | 
			
		||||
	  ai_canonname is NULL. (ruby-bugs PR#1243)
 | 
			
		||||
 | 
			
		||||
	* parse.y (block_append): update nd_end for "real" head node.
 | 
			
		||||
	  [ruby-list:39058]
 | 
			
		||||
 | 
			
		||||
Tue Jan 20 14:48:28 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>
 | 
			
		||||
 | 
			
		||||
	* ext/openssl/extconf.rb: should check <openssl/conf_api.h> instead
 | 
			
		||||
| 
						 | 
				
			
			@ -85,6 +98,11 @@ Tue Jan 20 04:41:58 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		|||
	* test/ruby/test_marshal.rb (MarshalTestLibtest_singleton): test
 | 
			
		||||
	  for [ruby-dev:22588].
 | 
			
		||||
 | 
			
		||||
Tue Jan 20 02:38:13 2004  Yukihiro Matsumoto  <matz@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* marshal.c (w_class): should not dump singleton class.
 | 
			
		||||
	  [ruby-dev:22631]
 | 
			
		||||
 | 
			
		||||
Tue Jan 20 02:49:22 2004  GOTOU Yuuzou  <gotoyuzo@notwork.org>
 | 
			
		||||
 | 
			
		||||
	* ext/openssl/extconf.rb: add check for OpenSSL version.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22
									
								
								eval.c
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								eval.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -2358,10 +2358,6 @@ is_defined(self, node, buf)
 | 
			
		|||
	}
 | 
			
		||||
	break;
 | 
			
		||||
 | 
			
		||||
      case NODE_NEWLINE:
 | 
			
		||||
	node = node->nd_next;
 | 
			
		||||
	goto again;
 | 
			
		||||
 | 
			
		||||
      default:
 | 
			
		||||
	PUSH_TAG(PROT_NONE);
 | 
			
		||||
	if ((state = EXEC_TAG()) == 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -2468,7 +2464,7 @@ call_trace_func(event, node, self, id, klass)
 | 
			
		|||
    if (id == ID_ALLOCATOR) return;
 | 
			
		||||
 | 
			
		||||
    if (!(node_save = ruby_current_node)) {
 | 
			
		||||
	node_save = NEW_NEWLINE(0);
 | 
			
		||||
	node_save = NEW_BEGIN(0);
 | 
			
		||||
    }
 | 
			
		||||
    tracing = 1;
 | 
			
		||||
    prev = ruby_frame;
 | 
			
		||||
| 
						 | 
				
			
			@ -2686,6 +2682,11 @@ rb_eval(self, n)
 | 
			
		|||
    if (!node) RETURN(Qnil);
 | 
			
		||||
 | 
			
		||||
    ruby_current_node = node;
 | 
			
		||||
    if (trace_func && FL_TEST(node, NODE_NEWLINE)) {
 | 
			
		||||
	call_trace_func("line", node, self,
 | 
			
		||||
			ruby_frame->last_func,
 | 
			
		||||
			ruby_frame->last_class);
 | 
			
		||||
    }
 | 
			
		||||
    switch (nd_type(node)) {
 | 
			
		||||
      case NODE_BLOCK:
 | 
			
		||||
	if (contnode) {
 | 
			
		||||
| 
						 | 
				
			
			@ -3888,15 +3889,6 @@ rb_eval(self, n)
 | 
			
		|||
	}
 | 
			
		||||
	break;
 | 
			
		||||
 | 
			
		||||
      case NODE_NEWLINE:
 | 
			
		||||
	if (trace_func) {
 | 
			
		||||
	    call_trace_func("line", node, self,
 | 
			
		||||
			    ruby_frame->last_func,
 | 
			
		||||
			    ruby_frame->last_class);
 | 
			
		||||
	}
 | 
			
		||||
	node = node->nd_next;
 | 
			
		||||
	goto again;
 | 
			
		||||
 | 
			
		||||
      default:
 | 
			
		||||
	rb_bug("unknown node type %d", nd_type(node));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -6376,7 +6368,7 @@ rb_load(fname, wrap)
 | 
			
		|||
    last_func = ruby_frame->last_func;
 | 
			
		||||
    last_node = ruby_current_node;
 | 
			
		||||
    if (!ruby_current_node && ruby_sourcefile) {
 | 
			
		||||
	last_node = NEW_NEWLINE(0);
 | 
			
		||||
	last_node = NEW_BEGIN(0);
 | 
			
		||||
    }
 | 
			
		||||
    ruby_current_node = 0;
 | 
			
		||||
    if (state == 0) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1026,43 +1026,47 @@ socks_s_close(sock)
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
make_hostent(addr, ipaddr)
 | 
			
		||||
    struct addrinfo *addr;
 | 
			
		||||
sock_gethostbyname(host, ipaddr)
 | 
			
		||||
    VALUE host;
 | 
			
		||||
    VALUE (*ipaddr) _((struct sockaddr*, size_t));
 | 
			
		||||
{
 | 
			
		||||
    struct addrinfo *addr;
 | 
			
		||||
    struct addrinfo *ai;
 | 
			
		||||
    struct hostent *h;
 | 
			
		||||
    VALUE ary, names;
 | 
			
		||||
    char *hostname;
 | 
			
		||||
    char **pch;
 | 
			
		||||
 | 
			
		||||
    addr = sock_addrinfo(host, Qnil, SOCK_STREAM, AI_CANONNAME);
 | 
			
		||||
    ary = rb_ary_new();
 | 
			
		||||
    if (addr->ai_canonname) {
 | 
			
		||||
	rb_ary_push(ary, rb_str_new2(addr->ai_canonname));
 | 
			
		||||
	hostname = addr->ai_canonname;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
	rb_ary_push(ary, Qnil);
 | 
			
		||||
	hostname = StringValuePtr(host);
 | 
			
		||||
    }
 | 
			
		||||
    if (addr->ai_canonname) {
 | 
			
		||||
    rb_ary_push(ary, rb_str_new2(hostname));
 | 
			
		||||
#if defined(HAVE_GETIPNODEBYNAME)
 | 
			
		||||
    {
 | 
			
		||||
	int error;
 | 
			
		||||
 | 
			
		||||
	h = getipnodebyname(addr->ai_canonname, addr->ai_family, AI_ALL, &error);
 | 
			
		||||
	h = getipnodebyname(hostname, addr->ai_family, AI_ALL, &error);
 | 
			
		||||
    }
 | 
			
		||||
#elif defined(HAVE_GETHOSTBYNAME2)
 | 
			
		||||
	h = gethostbyname2(addr->ai_canonname, addr->ai_family);
 | 
			
		||||
    h = gethostbyname2(hostname, addr->ai_family);
 | 
			
		||||
#else
 | 
			
		||||
	h = gethostbyname(addr->ai_canonname);
 | 
			
		||||
    h = gethostbyname(hostname);
 | 
			
		||||
#endif
 | 
			
		||||
	if (h) {
 | 
			
		||||
	    names = rb_ary_new();
 | 
			
		||||
	    if (h->h_aliases != NULL) {
 | 
			
		||||
		for (pch = h->h_aliases; *pch; pch++) {
 | 
			
		||||
		    rb_ary_push(names, rb_str_new2(*pch));
 | 
			
		||||
		}
 | 
			
		||||
    if (h) {
 | 
			
		||||
	names = rb_ary_new();
 | 
			
		||||
	if (h->h_aliases != NULL) {
 | 
			
		||||
	    for (pch = h->h_aliases; *pch; pch++) {
 | 
			
		||||
		rb_ary_push(names, rb_str_new2(*pch));
 | 
			
		||||
	    }
 | 
			
		||||
#if defined(HAVE_GETIPNODEBYNAME)
 | 
			
		||||
	    freehostent(h);
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
#if defined(HAVE_GETIPNODEBYNAME)
 | 
			
		||||
	freehostent(h);
 | 
			
		||||
#endif
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
	names = rb_ary_new2(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1089,7 +1093,7 @@ tcp_s_gethostbyname(obj, host)
 | 
			
		|||
    VALUE obj, host;
 | 
			
		||||
{
 | 
			
		||||
    rb_secure(3);
 | 
			
		||||
    return make_hostent(sock_addrinfo(host, Qnil, SOCK_STREAM, AI_CANONNAME), tcp_sockaddr);
 | 
			
		||||
    return sock_gethostbyname(host, tcp_sockaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
| 
						 | 
				
			
			@ -1981,6 +1985,9 @@ make_addrinfo(res0)
 | 
			
		|||
    base = rb_ary_new();
 | 
			
		||||
    for (res = res0; res; res = res->ai_next) {
 | 
			
		||||
	ary = ipaddr(res->ai_addr);
 | 
			
		||||
	if (res->ai_canonname) {
 | 
			
		||||
	    RARRAY(ary)->ptr[2] = rb_str_new2(res->ai_canonname);
 | 
			
		||||
	}
 | 
			
		||||
	rb_ary_push(ary, INT2FIX(res->ai_family));
 | 
			
		||||
	rb_ary_push(ary, INT2FIX(res->ai_socktype));
 | 
			
		||||
	rb_ary_push(ary, INT2FIX(res->ai_protocol));
 | 
			
		||||
| 
						 | 
				
			
			@ -2002,7 +2009,7 @@ sock_s_gethostbyname(obj, host)
 | 
			
		|||
    VALUE obj, host;
 | 
			
		||||
{
 | 
			
		||||
    rb_secure(3);
 | 
			
		||||
    return make_hostent(sock_addrinfo(host, Qnil, SOCK_STREAM, AI_CANONNAME), sock_sockaddr);
 | 
			
		||||
    return sock_gethostbyname(host, sock_sockaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								gc.c
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								gc.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -777,7 +777,6 @@ gc_mark_children(ptr, lev)
 | 
			
		|||
	  case NODE_SUPER:	/* 3 */
 | 
			
		||||
	  case NODE_FCALL:
 | 
			
		||||
	  case NODE_DEFN:
 | 
			
		||||
	  case NODE_NEWLINE:
 | 
			
		||||
	    ptr = (VALUE)obj->as.node.u3.node;
 | 
			
		||||
	    goto again;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1431,7 +1430,7 @@ Init_stack(addr)
 | 
			
		|||
	    STACK_LEVEL_MAX = (rlim.rlim_cur - space) / sizeof(VALUE);
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
#ifdef __ia64__
 | 
			
		||||
#if defined(__ia64__) && (!defined(__GNUC__) || __GNUC__ < 2 || defined(__OPTIMIZE__))
 | 
			
		||||
    /* ruby crashes on IA64 if compiled with optimizer on */
 | 
			
		||||
    /* when if STACK_LEVEL_MAX is greater than this magic number */
 | 
			
		||||
    /* I know this is a kludge.  I suspect optimizer bug */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,8 @@ module Find
 | 
			
		|||
    paths.collect!{|d| d.dup}
 | 
			
		||||
    while file = paths.shift
 | 
			
		||||
      catch(:prune) do
 | 
			
		||||
	yield file
 | 
			
		||||
	yield file.dup
 | 
			
		||||
        file.untaint
 | 
			
		||||
	begin
 | 
			
		||||
	  if File.lstat(file).directory? then
 | 
			
		||||
	    d = Dir.open(file)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -706,7 +706,7 @@ module Net # :nodoc:
 | 
			
		|||
      end
 | 
			
		||||
 | 
			
		||||
      if block_given?
 | 
			
		||||
        line = waitfor(/login[: ]*\z/n){|c| yield c }
 | 
			
		||||
        line = waitfor(/[Ll]ogin[: ]*\z/n){|c| yield c }
 | 
			
		||||
        if password
 | 
			
		||||
          line += cmd({"String" => username,
 | 
			
		||||
                       "Match" => /Password[: ]*\z/n}){|c| yield c }
 | 
			
		||||
| 
						 | 
				
			
			@ -715,7 +715,7 @@ module Net # :nodoc:
 | 
			
		|||
          line += cmd(username){|c| yield c }
 | 
			
		||||
        end
 | 
			
		||||
      else
 | 
			
		||||
        line = waitfor(/login[: ]*\z/n)
 | 
			
		||||
        line = waitfor(/[Ll]ogin[: ]*\z/n)
 | 
			
		||||
        if password
 | 
			
		||||
          line += cmd({"String" => username,
 | 
			
		||||
                       "Match" => /Password[: ]*\z/n})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -400,7 +400,7 @@ w_class(type, obj, arg, check)
 | 
			
		|||
    VALUE klass = CLASS_OF(obj);
 | 
			
		||||
    w_extended(klass, arg, check);
 | 
			
		||||
    w_byte(type, arg);
 | 
			
		||||
    path = RSTRING(class2path(klass))->ptr;
 | 
			
		||||
    path = RSTRING(class2path(rb_class_real(klass)))->ptr;
 | 
			
		||||
    w_unique(path, arg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								node.h
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								node.h
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -113,7 +113,6 @@ enum node_type {
 | 
			
		|||
    NODE_TRUE,
 | 
			
		||||
    NODE_FALSE,
 | 
			
		||||
    NODE_DEFINED,
 | 
			
		||||
    NODE_NEWLINE,
 | 
			
		||||
    NODE_POSTEXE,
 | 
			
		||||
#ifdef C_ALLOCA
 | 
			
		||||
    NODE_ALLOCA,
 | 
			
		||||
| 
						 | 
				
			
			@ -155,10 +154,12 @@ typedef struct RNode {
 | 
			
		|||
 | 
			
		||||
#define RNODE(obj)  (R_CAST(RNode)(obj))
 | 
			
		||||
 | 
			
		||||
#define nd_type(n) ((int)(((RNODE(n))->flags>>FL_USHIFT)&0xff))
 | 
			
		||||
#define nd_type(n) ((int)(((RNODE(n))->flags>>FL_USHIFT)&0x7f))
 | 
			
		||||
#define nd_set_type(n,t) \
 | 
			
		||||
    RNODE(n)->flags=((RNODE(n)->flags&~FL_UMASK)|(((t)<<FL_USHIFT)&FL_UMASK))
 | 
			
		||||
 | 
			
		||||
#define NODE_NEWLINE FL_USER7
 | 
			
		||||
 | 
			
		||||
#define NODE_LSHIFT (FL_USHIFT+8)
 | 
			
		||||
#define NODE_LMASK  (((long)1<<(sizeof(NODE*)*CHAR_BIT-NODE_LSHIFT))-1)
 | 
			
		||||
#define nd_line(n) ((unsigned int)(((RNODE(n))->flags>>NODE_LSHIFT)&NODE_LMASK))
 | 
			
		||||
| 
						 | 
				
			
			@ -330,7 +331,6 @@ typedef struct RNode {
 | 
			
		|||
#define NEW_TRUE() NEW_NODE(NODE_TRUE,0,0,0)
 | 
			
		||||
#define NEW_FALSE() NEW_NODE(NODE_FALSE,0,0,0)
 | 
			
		||||
#define NEW_DEFINED(e) NEW_NODE(NODE_DEFINED,e,0,0)
 | 
			
		||||
#define NEW_NEWLINE(n) NEW_NODE(NODE_NEWLINE,0,0,n)
 | 
			
		||||
#define NEW_PREEXE(b) NEW_SCOPE(b)
 | 
			
		||||
#define NEW_POSTEXE() NEW_NODE(NODE_POSTEXE,0,0,0)
 | 
			
		||||
#define NEW_DMETHOD(b) NEW_NODE(NODE_DMETHOD,0,0,b)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										69
									
								
								parse.y
									
										
									
									
									
								
							
							
						
						
									
										69
									
								
								parse.y
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -384,7 +384,7 @@ stmts		: none
 | 
			
		|||
		    }
 | 
			
		||||
		| stmts terms stmt
 | 
			
		||||
		    {
 | 
			
		||||
			$$ = block_append($1, newline_node($3));
 | 
			
		||||
			$$ = block_append($1, $3);
 | 
			
		||||
		    }
 | 
			
		||||
		| error stmt
 | 
			
		||||
		    {
 | 
			
		||||
| 
						 | 
				
			
			@ -1228,7 +1228,7 @@ aref_args	: none
 | 
			
		|||
		| tSTAR arg opt_nl
 | 
			
		||||
		    {
 | 
			
		||||
			value_expr($2);
 | 
			
		||||
			$$ = NEW_NEWLINE(NEW_SPLAT($2));
 | 
			
		||||
			$$ = newline_node(NEW_SPLAT($2));
 | 
			
		||||
		    }
 | 
			
		||||
		;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2071,11 +2071,7 @@ string_content	: tSTRING_CONTENT
 | 
			
		|||
		  compstmt '}'
 | 
			
		||||
		    {
 | 
			
		||||
			lex_strterm = $<node>2;
 | 
			
		||||
			if (($$ = $3) && nd_type($$) == NODE_NEWLINE) {
 | 
			
		||||
			    $$ = $$->nd_next;
 | 
			
		||||
			    rb_gc_force_recycle((VALUE)$3);
 | 
			
		||||
			}
 | 
			
		||||
			$$ = new_evstr($$);
 | 
			
		||||
			$$ = new_evstr($3);
 | 
			
		||||
		    }
 | 
			
		||||
		;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -4456,14 +4452,8 @@ static NODE*
 | 
			
		|||
newline_node(node)
 | 
			
		||||
    NODE *node;
 | 
			
		||||
{
 | 
			
		||||
    NODE *nl = 0;
 | 
			
		||||
    if (node) {
 | 
			
		||||
	if (nd_type(node) == NODE_NEWLINE) return node;
 | 
			
		||||
        nl = NEW_NEWLINE(node);
 | 
			
		||||
        fixpos(nl, node);
 | 
			
		||||
        nl->nd_nth = nd_line(node);
 | 
			
		||||
    }
 | 
			
		||||
    return nl;
 | 
			
		||||
    FL_SET(node, NODE_NEWLINE);
 | 
			
		||||
    return node;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
| 
						 | 
				
			
			@ -4510,15 +4500,12 @@ block_append(head, tail)
 | 
			
		|||
  again:
 | 
			
		||||
    if (h == 0) return tail;
 | 
			
		||||
    switch (nd_type(h)) {
 | 
			
		||||
      case NODE_NEWLINE:
 | 
			
		||||
	h = h->nd_next;
 | 
			
		||||
	goto again;
 | 
			
		||||
      case NODE_LIT:
 | 
			
		||||
      case NODE_STR:
 | 
			
		||||
	parser_warning(h, "unused literal ignored");
 | 
			
		||||
	return tail;
 | 
			
		||||
      default:
 | 
			
		||||
	end = NEW_BLOCK(head);
 | 
			
		||||
	h = end = NEW_BLOCK(head);
 | 
			
		||||
	end->nd_end = end;
 | 
			
		||||
	fixpos(end, head);
 | 
			
		||||
	head = end;
 | 
			
		||||
| 
						 | 
				
			
			@ -4540,10 +4527,6 @@ block_append(head, tail)
 | 
			
		|||
	    parser_warning(nd, "statement not reached");
 | 
			
		||||
	    break;
 | 
			
		||||
 | 
			
		||||
	case NODE_NEWLINE:
 | 
			
		||||
	    nd = nd->nd_next;
 | 
			
		||||
	    goto newline;
 | 
			
		||||
 | 
			
		||||
	  default:
 | 
			
		||||
	    break;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -4554,7 +4537,7 @@ block_append(head, tail)
 | 
			
		|||
	tail->nd_end = tail;
 | 
			
		||||
    }
 | 
			
		||||
    end->nd_next = tail;
 | 
			
		||||
    head->nd_end = tail->nd_end;
 | 
			
		||||
    h->nd_end = tail->nd_end;
 | 
			
		||||
    return head;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -4676,9 +4659,6 @@ new_evstr(node)
 | 
			
		|||
	switch (nd_type(node)) {
 | 
			
		||||
	  case NODE_STR: case NODE_DSTR: case NODE_EVSTR:
 | 
			
		||||
	    return node;
 | 
			
		||||
	  case NODE_NEWLINE:
 | 
			
		||||
	    node = node->nd_next;
 | 
			
		||||
	    goto again;
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
    return NEW_EVSTR(head);
 | 
			
		||||
| 
						 | 
				
			
			@ -4995,10 +4975,6 @@ value_expr0(node)
 | 
			
		|||
	    node = node->nd_2nd;
 | 
			
		||||
	    break;
 | 
			
		||||
 | 
			
		||||
	  case NODE_NEWLINE:
 | 
			
		||||
	    node = node->nd_next;
 | 
			
		||||
	    break;
 | 
			
		||||
 | 
			
		||||
	  default:
 | 
			
		||||
	    return Qtrue;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -5018,10 +4994,6 @@ void_expr0(node)
 | 
			
		|||
  again:
 | 
			
		||||
    if (!node) return;
 | 
			
		||||
    switch (nd_type(node)) {
 | 
			
		||||
      case NODE_NEWLINE:
 | 
			
		||||
	node = node->nd_next;
 | 
			
		||||
	goto again;
 | 
			
		||||
 | 
			
		||||
      case NODE_CALL:
 | 
			
		||||
	switch (node->nd_mid) {
 | 
			
		||||
	  case '+':
 | 
			
		||||
| 
						 | 
				
			
			@ -5124,15 +5096,10 @@ remove_begin(node)
 | 
			
		|||
{
 | 
			
		||||
    NODE **n = &node;
 | 
			
		||||
    while (*n) {
 | 
			
		||||
	switch (nd_type(*n)) {
 | 
			
		||||
	  case NODE_NEWLINE:
 | 
			
		||||
	    n = &(*n)->nd_next;
 | 
			
		||||
	    continue;
 | 
			
		||||
	  case NODE_BEGIN:
 | 
			
		||||
	    *n = (*n)->nd_body;
 | 
			
		||||
	  default:
 | 
			
		||||
	if (nd_type(*n) != NODE_BEGIN) {
 | 
			
		||||
	    return node;
 | 
			
		||||
	}
 | 
			
		||||
	*n = (*n)->nd_body;
 | 
			
		||||
    }
 | 
			
		||||
    return node;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -5152,7 +5119,6 @@ assign_in_cond(node)
 | 
			
		|||
      case NODE_IASGN:
 | 
			
		||||
	break;
 | 
			
		||||
 | 
			
		||||
      case NODE_NEWLINE:
 | 
			
		||||
      default:
 | 
			
		||||
	return 0;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -5221,10 +5187,6 @@ range_op(node)
 | 
			
		|||
    value_expr(node);
 | 
			
		||||
    node = cond0(node);
 | 
			
		||||
    type = nd_type(node);
 | 
			
		||||
    if (type == NODE_NEWLINE) {
 | 
			
		||||
	node = node->nd_next;
 | 
			
		||||
	type = nd_type(node);
 | 
			
		||||
    }
 | 
			
		||||
    if (type == NODE_LIT && FIXNUM_P(node->nd_lit)) {
 | 
			
		||||
	warn_unless_e_option(node, "integer literal in conditional range");
 | 
			
		||||
	return call_op(node,tEQ,1,NEW_GVAR(rb_intern("$.")));
 | 
			
		||||
| 
						 | 
				
			
			@ -5324,10 +5286,6 @@ cond(node)
 | 
			
		|||
{
 | 
			
		||||
    if (node == 0) return 0;
 | 
			
		||||
    value_expr(node);
 | 
			
		||||
    if (nd_type(node) == NODE_NEWLINE){
 | 
			
		||||
	node->nd_next = cond0(node->nd_next);
 | 
			
		||||
	return node;
 | 
			
		||||
    }
 | 
			
		||||
    return cond0(node);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -5359,11 +5317,6 @@ cond_negative(nodep)
 | 
			
		|||
      case NODE_NOT:
 | 
			
		||||
	*nodep = c->nd_body;
 | 
			
		||||
	return 1;
 | 
			
		||||
      case NODE_NEWLINE:
 | 
			
		||||
	if (c->nd_next && nd_type(c->nd_next) == NODE_NOT) {
 | 
			
		||||
	    c->nd_next = c->nd_next->nd_body;
 | 
			
		||||
	    return 1;
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -5386,7 +5339,7 @@ ret_args(node)
 | 
			
		|||
	if (nd_type(node) == NODE_ARRAY && node->nd_next == 0) {
 | 
			
		||||
	    node = node->nd_head;
 | 
			
		||||
	}
 | 
			
		||||
	if (node && nd_type(node) == NODE_SPLAT) {
 | 
			
		||||
	else if (node && nd_type(node) == NODE_SPLAT) {
 | 
			
		||||
	    node = NEW_SVALUE(node);
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -5405,7 +5358,7 @@ new_yield(node)
 | 
			
		|||
            node = node->nd_head;
 | 
			
		||||
            state = Qfalse;
 | 
			
		||||
        }
 | 
			
		||||
        if (node && nd_type(node) == NODE_SPLAT) {
 | 
			
		||||
        else if (node && nd_type(node) == NODE_SPLAT) {
 | 
			
		||||
            state = Qtrue;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								ruby.c
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								ruby.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -343,7 +343,7 @@ require_libraries()
 | 
			
		|||
    Init_ext();		/* should be called here for some reason :-( */
 | 
			
		||||
    save[0] = ruby_eval_tree;
 | 
			
		||||
    save[1] = ruby_eval_tree_begin;
 | 
			
		||||
    save[2] = NEW_NEWLINE(0);
 | 
			
		||||
    save[2] = NEW_BEGIN(0);
 | 
			
		||||
    ruby_eval_tree = ruby_eval_tree_begin = 0;
 | 
			
		||||
    req_list_last = 0;
 | 
			
		||||
    while (list) {
 | 
			
		||||
| 
						 | 
				
			
			@ -753,7 +753,7 @@ proc_options(argc, argv)
 | 
			
		|||
		}
 | 
			
		||||
		if (!script) script = argv[0];
 | 
			
		||||
		script = ruby_sourcefile = rb_source_filename(script);
 | 
			
		||||
		script_node = NEW_NEWLINE(0);
 | 
			
		||||
		script_node = NEW_BEGIN(0);
 | 
			
		||||
	    }
 | 
			
		||||
#if defined DOSISH || defined __CYGWIN__
 | 
			
		||||
	    translate_char(script, '\\', '/');
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
$:.unshift(File.dirname(File.expand_path(__FILE__)))
 | 
			
		||||
require 'drbtest'
 | 
			
		||||
 | 
			
		||||
class TestDRbCore < Test::Unit::TestCase
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue