mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
new mrb_get_args specifier "n" to retrieve a symbol (stands for "name")
This commit is contained in:
+20
@@ -370,6 +370,7 @@ to_hash(mrb_state *mrb, mrb_value val)
|
||||
a: Array [mrb_value*,int]
|
||||
f: Float [mrb_float]
|
||||
i: Integer [mrb_int]
|
||||
n: Symbol [mrb_sym]
|
||||
&: Block [mrb_value]
|
||||
*: rest argument [mrb_value*,int]
|
||||
|: optional
|
||||
@@ -560,6 +561,25 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'n':
|
||||
{
|
||||
mrb_sym *symp;
|
||||
|
||||
symp = va_arg(ap, mrb_sym*);
|
||||
if (i < argc) {
|
||||
mrb_value ss;
|
||||
|
||||
ss = *sp++;
|
||||
if (mrb_type(ss) == MRB_TT_SYMBOL) {
|
||||
*symp = mrb_symbol(ss);
|
||||
}
|
||||
else {
|
||||
*symp = mrb_intern_str(mrb, to_str(mrb, ss));
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case '&':
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user