mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* eval_error.c (warn_printf): use rb_vsprintf instead so ruby specific
extensions like PRIsVALUE can be used in format strings * eval_error.c (error_print): use warn_print_str (alias for rb_write_error_str) to print a string value instead of using RSTRING_PTR and RSTRING_LEN manually * eval.c (setup_exception): use PRIsVALUE instead of %s and RSTRING_PTR git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									fff3589899
								
							
						
					
					
						commit
						0e8807dba5
					
				
					 3 changed files with 23 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,12 @@
 | 
			
		|||
Mon Jun 24 22:04:00 2013  Charlie Somerville  <charliesome@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* eval_error.c (warn_printf): use rb_vsprintf instead so ruby specific
 | 
			
		||||
	  extensions like PRIsVALUE can be used in format strings
 | 
			
		||||
	* eval_error.c (error_print): use warn_print_str (alias for
 | 
			
		||||
	  rb_write_error_str) to print a string value instead of using
 | 
			
		||||
	  RSTRING_PTR and RSTRING_LEN manually
 | 
			
		||||
	* eval.c (setup_exception): use PRIsVALUE instead of %s and RSTRING_PTR
 | 
			
		||||
 | 
			
		||||
Mon Jun 24 20:31:00 2013  Charlie Somerville  <charliesome@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* compile.c (make_name_for_block): use PRIsVALUE in format string
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								eval.c
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								eval.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -479,19 +479,16 @@ setup_exception(rb_thread_t *th, int tag, volatile VALUE mesg)
 | 
			
		|||
	if ((status = EXEC_TAG()) == 0) {
 | 
			
		||||
	    RB_GC_GUARD(e) = rb_obj_as_string(e);
 | 
			
		||||
	    if (file && line) {
 | 
			
		||||
		warn_printf("Exception `%s' at %s:%d - %s\n",
 | 
			
		||||
			    rb_obj_classname(th->errinfo),
 | 
			
		||||
			    file, line, RSTRING_PTR(e));
 | 
			
		||||
		warn_printf("Exception `%s' at %s:%d - %"PRIsVALUE"\n",
 | 
			
		||||
			    rb_obj_classname(th->errinfo), file, line, e);
 | 
			
		||||
	    }
 | 
			
		||||
	    else if (file) {
 | 
			
		||||
		warn_printf("Exception `%s' at %s - %s\n",
 | 
			
		||||
			    rb_obj_classname(th->errinfo),
 | 
			
		||||
			    file, RSTRING_PTR(e));
 | 
			
		||||
		warn_printf("Exception `%s' at %s - %"PRIsVALUE"\n",
 | 
			
		||||
			    rb_obj_classname(th->errinfo), file, e);
 | 
			
		||||
	    }
 | 
			
		||||
	    else {
 | 
			
		||||
		warn_printf("Exception `%s' - %s\n",
 | 
			
		||||
			    rb_obj_classname(th->errinfo),
 | 
			
		||||
			    RSTRING_PTR(e));
 | 
			
		||||
		warn_printf("Exception `%s' - %"PRIsVALUE"\n",
 | 
			
		||||
			    rb_obj_classname(th->errinfo), e);
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
	POP_TAG();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								eval_error.c
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								eval_error.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -6,17 +6,18 @@
 | 
			
		|||
static void
 | 
			
		||||
warn_printf(const char *fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
    char buf[BUFSIZ];
 | 
			
		||||
    VALUE str;
 | 
			
		||||
    va_list args;
 | 
			
		||||
 | 
			
		||||
    va_init_list(args, fmt);
 | 
			
		||||
    vsnprintf(buf, BUFSIZ, fmt, args);
 | 
			
		||||
    str = rb_vsprintf(fmt, args);
 | 
			
		||||
    va_end(args);
 | 
			
		||||
    rb_write_error(buf);
 | 
			
		||||
    rb_write_error_str(str);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define warn_print(x) rb_write_error(x)
 | 
			
		||||
#define warn_print2(x,l) rb_write_error2((x),(l))
 | 
			
		||||
#define warn_print_str(x) rb_write_error_str(x)
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
error_pos(void)
 | 
			
		||||
| 
						 | 
				
			
			@ -122,7 +123,7 @@ error_print(void)
 | 
			
		|||
	if (NIL_P(mesg))
 | 
			
		||||
	    error_pos();
 | 
			
		||||
	else {
 | 
			
		||||
	    warn_print2(RSTRING_PTR(mesg), RSTRING_LEN(mesg));
 | 
			
		||||
	    warn_print_str(mesg);
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -147,7 +148,7 @@ error_print(void)
 | 
			
		|||
	epath = rb_class_name(eclass);
 | 
			
		||||
	if (elen == 0) {
 | 
			
		||||
	    warn_print(": ");
 | 
			
		||||
	    warn_print2(RSTRING_PTR(epath), RSTRING_LEN(epath));
 | 
			
		||||
	    warn_print_str(epath);
 | 
			
		||||
	    warn_print("\n");
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
| 
						 | 
				
			
			@ -164,7 +165,7 @@ error_print(void)
 | 
			
		|||
	    warn_print2(einfo, len);
 | 
			
		||||
	    if (epath) {
 | 
			
		||||
		warn_print(" (");
 | 
			
		||||
		warn_print2(RSTRING_PTR(epath), RSTRING_LEN(epath));
 | 
			
		||||
		warn_print_str(epath);
 | 
			
		||||
		warn_print(")\n");
 | 
			
		||||
	    }
 | 
			
		||||
	    if (tail) {
 | 
			
		||||
| 
						 | 
				
			
			@ -186,7 +187,7 @@ error_print(void)
 | 
			
		|||
	for (i = 1; i < len; i++) {
 | 
			
		||||
	    VALUE line = RARRAY_AREF(errat, i);
 | 
			
		||||
	    if (RB_TYPE_P(line, T_STRING)) {
 | 
			
		||||
		warn_printf("\tfrom %s\n", RSTRING_PTR(line));
 | 
			
		||||
		warn_printf("\tfrom %"PRIsVALUE"\n", line);
 | 
			
		||||
	    }
 | 
			
		||||
	    if (skip && i == TRACE_HEAD && len > TRACE_MAX) {
 | 
			
		||||
		warn_printf("\t ... %ld levels...\n",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue