diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-18 07:08:35 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-18 07:08:35 +0000 |
commit | ec2f63167ea71880f78cf73a3b676425655f78cb (patch) | |
tree | 5647a20eaf49eaae3e6be9d6272150830664cd3c /error.c | |
parent | 5a0543e87aae6d90e7d9fd88912ad0f95ca5edf4 (diff) | |
download | ruby-ec2f63167ea71880f78cf73a3b676425655f78cb.tar.gz |
error.c: warn_vsprintf
* error.c (warn_vsprintf, warning_string): share common code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'error.c')
-rw-r--r-- | error.c | 31 |
1 files changed, 13 insertions, 18 deletions
@@ -135,58 +135,53 @@ rb_compile_error_append(const char *fmt, ...) { } -static void -compile_warn_print(const char *file, int line, const char *fmt, va_list args) +static VALUE +warn_vsprintf(rb_encoding *enc, const char *file, int line, const char *fmt, va_list args) { VALUE str; - str = compile_vsprintf(NULL, "warning: ", file, line, fmt, args); - rb_str_cat2(str, "\n"); - rb_write_error_str(str); + str = compile_vsprintf(enc, "warning: ", file, line, fmt, args); + return rb_str_cat2(str, "\n"); } void rb_compile_warn(const char *file, int line, const char *fmt, ...) { + VALUE str; va_list args; if (NIL_P(ruby_verbose)) return; va_start(args, fmt); - compile_warn_print(file, line, fmt, args); + str = warn_vsprintf(NULL, file, line, fmt, args); va_end(args); + rb_write_error_str(str); } /* rb_compile_warning() reports only in verbose mode */ void rb_compile_warning(const char *file, int line, const char *fmt, ...) { + VALUE str; va_list args; if (!RTEST(ruby_verbose)) return; va_start(args, fmt); - compile_warn_print(file, line, fmt, args); + str = warn_vsprintf(NULL, file, line, fmt, args); va_end(args); + rb_write_error_str(str); } static VALUE warning_string(rb_encoding *enc, const char *fmt, va_list args) { - VALUE str = rb_enc_str_new(0, 0, enc); int line; VALUE file = rb_source_location(&line); - if (!NIL_P(file)) { - str = rb_str_append(str, file); - if (line) rb_str_catf(str, ":%d", line); - rb_str_cat2(str, ": "); - } - - rb_str_cat2(str, "warning: "); - rb_str_vcatf(str, fmt, args); - rb_str_cat2(str, "\n"); - return str; + return warn_vsprintf(enc, + NIL_P(file) ? NULL : RSTRING_PTR(file), line, + fmt, args); } void |