diff options
Diffstat (limited to 'include/ruby')
-rw-r--r-- | include/ruby/ruby.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index eb9a7e4d0f..0c1e1c2a6e 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -270,6 +270,24 @@ RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 0) */ int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +// TODO: doc + +#include <errno.h> + +int rb_errno(void); +void rb_errno_set(int); +int *rb_errno_ptr(void); + +static inline int * +rb_orig_errno_ptr(void) +{ + return &errno; +} + +#define rb_orig_errno errno +#undef errno +#define errno (*rb_errno_ptr()) + /** @cond INTERNAL_MACRO */ #if RBIMPL_HAS_WARNING("-Wgnu-zero-variadic-macro-arguments") # /* Skip it; clang -pedantic doesn't like the following */ |