diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-09-05 10:54:06 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-12 18:20:19 +0900 |
| commit | a4c5824e59c66a1132f38e1faf21926ddef58ca6 (patch) | |
| tree | 11d160beb57f060eea6a042d405bbb8cac189002 /src/symbol.c | |
| parent | afcf19b727aeca5932689b28777863815fe145cf (diff) | |
| download | mruby-a4c5824e59c66a1132f38e1faf21926ddef58ca6.tar.gz mruby-a4c5824e59c66a1132f38e1faf21926ddef58ca6.zip | |
Restore old function names for compatibility; ref #5070
- `mrb_check_intern()` to return `mrb_value`
- `mrb_intern_check()` to return `mrb_sym` [NEW]
Other new functions:
- `mrb_intern_check_cstr()`
- `mrb_intern_check_str()`
Diffstat (limited to 'src/symbol.c')
| -rw-r--r-- | src/symbol.c | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/symbol.c b/src/symbol.c index 9683d2f72..18ea49da5 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -268,7 +268,7 @@ mrb_intern_str(mrb_state *mrb, mrb_value str) } MRB_API mrb_sym -mrb_check_intern(mrb_state *mrb, const char *name, size_t len) +mrb_intern_check(mrb_state *mrb, const char *name, size_t len) { mrb_sym sym; @@ -278,16 +278,40 @@ mrb_check_intern(mrb_state *mrb, const char *name, size_t len) return 0; } +MRB_API mrb_value +mrb_check_intern(mrb_state *mrb, const char *name, size_t len) +{ + mrb_sym sym = mrb_intern_check(mrb, name, len); + if (sym == 0) return mrb_nil_value(); + return mrb_symbol_value(sym); +} + MRB_API mrb_sym +mrb_intern_check_cstr(mrb_state *mrb, const char *name) +{ + return mrb_intern_check(mrb, name, strlen(name)); +} + +MRB_API mrb_value mrb_check_intern_cstr(mrb_state *mrb, const char *name) { - return mrb_check_intern(mrb, name, strlen(name)); + mrb_sym sym = mrb_intern_check_cstr(mrb, name); + if (sym == 0) return mrb_nil_value(); + return mrb_symbol_value(sym); } MRB_API mrb_sym +mrb_intern_check_str(mrb_state *mrb, mrb_value str) +{ + return mrb_intern_check(mrb, RSTRING_PTR(str), RSTRING_LEN(str)); +} + +MRB_API mrb_value mrb_check_intern_str(mrb_state *mrb, mrb_value str) { - return mrb_check_intern(mrb, RSTRING_PTR(str), RSTRING_LEN(str)); + mrb_sym sym = mrb_intern_check_str(mrb, str); + if (sym == 0) return mrb_nil_value(); + return mrb_symbol_value(sym); } static const char* |
