From d72fd1e45b192ab507f8170ceec1328c2aae7bb1 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 15 Apr 2020 00:59:23 +0900 Subject: Added rb_syserr_new_path Similar to rb_syserr_fail_path, but just returns the created exception instance instead of raising it. --- error.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'error.c') diff --git a/error.c b/error.c index 7e4fb7be29..d6be8d8754 100644 --- a/error.c +++ b/error.c @@ -2829,6 +2829,12 @@ rb_sys_fail_path_in(const char *func_name, VALUE path) void rb_syserr_fail_path_in(const char *func_name, int n, VALUE path) +{ + rb_exc_raise(rb_syserr_new_path_in(func_name, n, path)); +} + +VALUE +rb_syserr_new_path_in(const char *func_name, int n, VALUE path) { VALUE args[2]; @@ -2841,7 +2847,7 @@ rb_syserr_fail_path_in(const char *func_name, int n, VALUE path) } args[0] = path; args[1] = rb_str_new_cstr(func_name); - rb_exc_raise(rb_class_new_instance(2, args, get_syserr(n))); + return rb_class_new_instance(2, args, get_syserr(n)); } #endif -- cgit v1.2.3