aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--error.c52
-rw-r--r--internal.h3
2 files changed, 55 insertions, 0 deletions
diff --git a/error.c b/error.c
index 3cb068dfbf..b92d886832 100644
--- a/error.c
+++ b/error.c
@@ -231,6 +231,22 @@ rb_warn(const char *fmt, ...)
rb_write_error_str(mesg);
}
+#if 0
+void
+rb_enc_warn(rb_encoding *enc, const char *fmt, ...)
+{
+ VALUE mesg;
+ va_list args;
+
+ if (NIL_P(ruby_verbose)) return;
+
+ va_start(args, fmt);
+ mesg = warning_string(enc, fmt, args);
+ va_end(args);
+ rb_write_error_str(mesg);
+}
+#endif
+
/* rb_warning() reports only in verbose mode */
void
rb_warning(const char *fmt, ...)
@@ -246,6 +262,22 @@ rb_warning(const char *fmt, ...)
rb_write_error_str(mesg);
}
+#if 0
+void
+rb_enc_warning(rb_encoding *enc, const char *fmt, ...)
+{
+ VALUE mesg;
+ va_list args;
+
+ if (!RTEST(ruby_verbose)) return;
+
+ va_start(args, fmt);
+ mesg = warning_string(enc, fmt, args);
+ va_end(args);
+ rb_write_error_str(mesg);
+}
+#endif
+
/*
* call-seq:
* warn(msg, ...) -> nil
@@ -2110,6 +2142,26 @@ rb_sys_warning(const char *fmt, ...)
}
void
+rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...)
+{
+ VALUE mesg;
+ va_list args;
+ int errno_save;
+
+ errno_save = errno;
+
+ if (!RTEST(ruby_verbose)) return;
+
+ va_start(args, fmt);
+ mesg = warning_string(enc, fmt, args);
+ va_end(args);
+ rb_str_set_len(mesg, RSTRING_LEN(mesg)-1);
+ rb_str_catf(mesg, ": %s\n", strerror(errno_save));
+ rb_write_error_str(mesg);
+ errno = errno_save;
+}
+
+void
rb_load_fail(VALUE path, const char *err)
{
VALUE mesg = rb_str_buf_new_cstr(err);
diff --git a/internal.h b/internal.h
index 4c32fe26d4..1666884ef9 100644
--- a/internal.h
+++ b/internal.h
@@ -627,6 +627,9 @@ VALUE rb_check_backtrace(VALUE);
NORETURN(void rb_async_bug_errno(const char *,int));
const char *rb_builtin_type_name(int t);
const char *rb_builtin_class_name(VALUE x);
+PRINTF_ARGS(void rb_enc_warn(rb_encoding *enc, const char *fmt, ...), 2, 3);
+PRINTF_ARGS(void rb_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);
+PRINTF_ARGS(void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);
/* eval.c */
VALUE rb_refinement_module_get_refined_class(VALUE module);