aboutsummaryrefslogtreecommitdiffstats
path: root/error.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-18 07:08:35 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-18 07:08:35 +0000
commitd19867049c578de5e2c4b4f05b3942bd1355fb94 (patch)
tree5647a20eaf49eaae3e6be9d6272150830664cd3c /error.c
parentc222db530b226a933f14582a9f552b44569be7a3 (diff)
downloadruby-d19867049c578de5e2c4b4f05b3942bd1355fb94.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.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/error.c b/error.c
index f4b359f77d..4e35fb9c9c 100644
--- a/error.c
+++ b/error.c
@@ -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