diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-24 00:26:52 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-24 00:26:52 +0000 |
commit | 3302b8fff571bfac2ac26376586d257f29fa44b3 (patch) | |
tree | 42b1b2b8aace93b164b42288cae9c2a133c4773d /error.c | |
parent | a80eb26a188db79decadb82a459754c344dcf5a5 (diff) |
* 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
Diffstat (limited to 'error.c')
-rw-r--r-- | error.c | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -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 |