summaryrefslogtreecommitdiffhomepage
path: root/src/string.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-05-24 01:09:36 +0900
committerYukihiro Matsumoto <[email protected]>2012-05-24 01:09:36 +0900
commitad9e841c5359efdd37a132767e03ad7a2d5ae72e (patch)
tree8e60edf2dce29e86d8b47d0b2e8dc8a2a2329ded /src/string.c
parent4f012f578f22cca67af8c633845464abc79913f4 (diff)
downloadmruby-ad9e841c5359efdd37a132767e03ad7a2d5ae72e.tar.gz
mruby-ad9e841c5359efdd37a132767e03ad7a2d5ae72e.zip
made mrb_get_args() better (optinal args, type checks); close #173 #176
Diffstat (limited to 'src/string.c')
-rw-r--r--src/string.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/string.c b/src/string.c
index 988b72369..28513c15c 100644
--- a/src/string.c
+++ b/src/string.c
@@ -1101,6 +1101,7 @@ static mrb_value
mrb_str_match(mrb_state *mrb, mrb_value self/* x */)
{
mrb_value y;
+
mrb_get_args(mrb, "o", &y);
switch (mrb_type(y)) {
case MRB_TT_STRING:
@@ -2048,7 +2049,7 @@ mrb_str_each_line(mrb_state *mrb, mrb_value str)
int argc;
//if (mrb_scan_args(argc, argv, "01", &rs) == 0) {
- mrb_get_args(mrb, "&*", &b, &argv, &argc);
+ mrb_get_args(mrb, "*&", &argv, &argc, &b);
if (argc > 0) {
rs = argv[0];
} else {
@@ -2632,8 +2633,8 @@ mrb_str_include(mrb_state *mrb, mrb_value self)
{
mrb_int i;
mrb_value str2;
- mrb_get_args(mrb, "o", &str2);
+ mrb_get_args(mrb, "o", &str2);
if (mrb_type(str2) == MRB_TT_FIXNUM) {
if (memchr(RSTRING_PTR(self), mrb_fixnum(str2), RSTRING_LEN(self)))
return mrb_true_value();
@@ -2955,7 +2956,8 @@ mrb_str_match_m(mrb_state *mrb, mrb_value self)
mrb_value *argv;
int argc;
mrb_value re, result, b;
- mrb_get_args(mrb, "&*", &b, &argv, &argc);
+
+ mrb_get_args(mrb, "*&", &argv, &argc, &b);
if (argc < 1)
mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments (%d for 1..2)", argc);
re = argv[0];
@@ -3336,7 +3338,7 @@ mrb_str_scan(mrb_state *mrb, mrb_value str)
char *p = ps->buf;
long len = ps->len;
- mrb_get_args(mrb, "&o", &b, &pat);
+ mrb_get_args(mrb, "o&", &pat, &b);
pat = get_pat(mrb, pat, 1);
if (!mrb_block_given_p()) {
mrb_value ary = mrb_ary_new(mrb);
@@ -4292,6 +4294,7 @@ static mrb_value
mrb_str_force_encoding(mrb_state *mrb, mrb_value self)
{
mrb_value enc;
+
mrb_get_args(mrb, "o", &enc);
str_modifiable(self);
mrb_enc_associate(mrb, self, mrb_to_encoding(mrb, enc));