From 3302b8fff571bfac2ac26376586d257f29fa44b3 Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 24 Nov 2009 00:26:52 +0000 Subject: * 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@25893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- error.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'error.c') diff --git a/error.c b/error.c index 6297584ecd..aeacc4d130 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 -- cgit v1.2.3