mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* compile.c (rb_parse_in_eval): returns true in true eval, not in
main. [ruby-dev:38382] * parse.y (program): inherits dvars in eval or main. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									589ec2beb5
								
							
						
					
					
						commit
						f91b0dc811
					
				
					 3 changed files with 12 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,10 @@
 | 
			
		|||
Sun May 17 14:23:08 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* compile.c (rb_parse_in_eval): returns true in true eval, not in
 | 
			
		||||
	  main.  [ruby-dev:38382]
 | 
			
		||||
 | 
			
		||||
	* parse.y (program): inherits dvars in eval or main.
 | 
			
		||||
 | 
			
		||||
Sun May 17 14:02:56 2009  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* ruby.c (ruby_script): sets also VM toplevel program name.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5416,7 +5416,7 @@ rb_local_defined(ID id)
 | 
			
		|||
int
 | 
			
		||||
rb_parse_in_eval(void)
 | 
			
		||||
{
 | 
			
		||||
    return GET_THREAD()->parse_in_eval != 0;
 | 
			
		||||
    return GET_THREAD()->parse_in_eval > 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								parse.y
									
										
									
									
									
								
							
							
						
						
									
										7
									
								
								parse.y
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -760,14 +760,15 @@ static void token_info_pop(struct parser_params*, const char *token);
 | 
			
		|||
program		:  {
 | 
			
		||||
			lex_state = EXPR_BEG;
 | 
			
		||||
		    /*%%%*/
 | 
			
		||||
			local_push(compile_for_eval);
 | 
			
		||||
			$<num>$ = compile_for_eval || rb_parse_in_main();
 | 
			
		||||
			local_push($<num>$);
 | 
			
		||||
		    /*%
 | 
			
		||||
		    %*/
 | 
			
		||||
		    }
 | 
			
		||||
		  compstmt
 | 
			
		||||
		    {
 | 
			
		||||
		    /*%%%*/
 | 
			
		||||
			if ($2 && !compile_for_eval) {
 | 
			
		||||
			if ($2 && !$<num>1) {
 | 
			
		||||
			    /* last expression should not be void */
 | 
			
		||||
			    if (nd_type($2) != NODE_BLOCK) void_expr($2);
 | 
			
		||||
			    else {
 | 
			
		||||
| 
						 | 
				
			
			@ -4993,7 +4994,7 @@ yycompile0(VALUE arg, int tracing)
 | 
			
		|||
    NODE *tree;
 | 
			
		||||
    struct parser_params *parser = (struct parser_params *)arg;
 | 
			
		||||
 | 
			
		||||
    if ((!compile_for_eval || rb_parse_in_main()) && rb_safe_level() == 0) {
 | 
			
		||||
    if (!compile_for_eval && rb_safe_level() == 0) {
 | 
			
		||||
	ruby_debug_lines = debug_lines(ruby_sourcefile);
 | 
			
		||||
	if (ruby_debug_lines && ruby_sourceline > 0) {
 | 
			
		||||
	    VALUE str = STR_NEW0();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue