summaryrefslogtreecommitdiffstats
path: root/error.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-24 00:26:52 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-24 00:26:52 +0000
commit67b0e9665879945c9ca60cb836d804e941ad9b11 (patch)
tree42b1b2b8aace93b164b42288cae9c2a133c4773d /error.c
parent0f1a9218fe2716c0438d3ae6ea445b7ac09f5a8b (diff)
downloadruby-67b0e9665879945c9ca60cb836d804e941ad9b11.tar.gz
ruby-67b0e9665879945c9ca60cb836d804e941ad9b11.tar.xz
ruby-67b0e9665879945c9ca60cb836d804e941ad9b11.zip
* include/ruby/intern.h (rb_strerrno): declared.
* template/known_errors.inc.tmpl: generate defined_error() and undefined_error() instead of set_syserr. * error.c (Init_syserr): define defined_error() and undefined_error() to follow the above change. (rb_strerrno): defined. * thread_pthread.c: show error message and errno macro name with rb_bug. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'error.c')
-rw-r--r--error.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/error.c b/error.c
index 6297584ec..aeacc4d13 100644
--- a/error.c
+++ b/error.c
@@ -1247,10 +1247,26 @@ rb_check_frozen(VALUE obj)
if (OBJ_FROZEN(obj)) rb_error_frozen(rb_obj_classname(obj));
}
-void Init_syserr(void)
+void
+Init_syserr(void)
{
rb_eNOERROR = set_syserr(0, "NOERROR");
+#define defined_error(name, num) set_syserr(num, name);
+#define undefined_error(name) set_syserr(0, name);
+#include "known_errors.inc"
+#undef defined_error
+#undef undefined_error
+}
+
+char *
+rb_strerrno(int err)
+{
+#define defined_error(name, num) if (err == num) return name;
+#define undefined_error(name)
#include "known_errors.inc"
+#undef defined_error
+#undef undefined_error
+ return "NOERROR";
}
static void