summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2013-01-13 00:27:08 +0900
committerYukihiro Matz Matsumoto <[email protected]>2013-01-13 00:27:08 +0900
commit0d0b1d1b0db5b1086fc59b0544665be24b3ee378 (patch)
treec7ebb247fb619d1cc1a332a9244335f8133d179c /src/class.c
parent4e50e54c5e5aa17eed60b90991e8d686a264b757 (diff)
downloadmruby-0d0b1d1b0db5b1086fc59b0544665be24b3ee378.tar.gz
mruby-0d0b1d1b0db5b1086fc59b0544665be24b3ee378.zip
add new specifier "b" (boolean) for mrb_get_args()
Diffstat (limited to 'src/class.c')
-rw-r--r--src/class.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c
index ea0db2bdc..b24dd8a08 100644
--- a/src/class.c
+++ b/src/class.c
@@ -372,6 +372,7 @@ to_hash(mrb_state *mrb, mrb_value val)
a: Array [mrb_value*,int]
f: Float [mrb_float]
i: Integer [mrb_int]
+ b: Binary [int]
n: Symbol [mrb_sym]
&: Block [mrb_value]
*: rest argument [mrb_value*,int]
@@ -570,6 +571,17 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
}
}
break;
+ case 'b':
+ {
+ int *boolp = va_arg(ap, int*);
+
+ if (i < argc) {
+ mrb_value b = *sp++;
+ *boolp = mrb_test(b);
+ i++;
+ }
+ }
+ break;
case 'n':
{
mrb_sym *symp;