summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-02-26 21:54:05 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-02-26 21:54:05 +0900
commitc93f873ac05cbfba79150cf9a7c4c1b2e32cdd03 (patch)
tree5f031abc5f9d44f28b4765d66a26e07e3f2a6a0f
parentf3476d1dcb4bb88e246c4b1fde3275c32bcc8223 (diff)
parenta860735d0c3cf25610ec02c463cf4bc239424966 (diff)
downloadmruby-c93f873ac05cbfba79150cf9a7c4c1b2e32cdd03.tar.gz
mruby-c93f873ac05cbfba79150cf9a7c4c1b2e32cdd03.zip
Merge pull request #1744 from cubicdaiya/feature/introduce_mrb_str_cat_lit
Introduce mrb_str_cat_lit
-rw-r--r--include/mruby/string.h3
-rw-r--r--mrbgems/mruby-proc-ext/src/proc.c12
-rw-r--r--mrbgems/mruby-struct/src/struct.c10
3 files changed, 13 insertions, 12 deletions
diff --git a/include/mruby/string.h b/include/mruby/string.h
index 675dadb5c..966f0bf77 100644
--- a/include/mruby/string.h
+++ b/include/mruby/string.h
@@ -53,7 +53,6 @@ char *mrb_string_value_ptr(mrb_state *mrb, mrb_value ptr);
int mrb_str_offset(mrb_state *mrb, mrb_value str, int pos);
mrb_value mrb_str_dup(mrb_state *mrb, mrb_value str);
mrb_value mrb_str_intern(mrb_state *mrb, mrb_value self);
-mrb_value mrb_str_cat_cstr(mrb_state *, mrb_value, const char *);
mrb_value mrb_str_to_inum(mrb_state *mrb, mrb_value str, int base, mrb_bool badcheck);
double mrb_str_to_dbl(mrb_state *mrb, mrb_value str, mrb_bool badcheck);
mrb_value mrb_str_to_str(mrb_state *mrb, mrb_value str);
@@ -63,6 +62,8 @@ mrb_value mrb_str_inspect(mrb_state *mrb, mrb_value str);
mrb_bool mrb_str_equal(mrb_state *mrb, mrb_value str1, mrb_value str2);
mrb_value mrb_str_dump(mrb_state *mrb, mrb_value str);
mrb_value mrb_str_cat(mrb_state *mrb, mrb_value str, const char *ptr, size_t len);
+mrb_value mrb_str_cat_cstr(mrb_state *mrb, mrb_value str, const char *ptr);
+#define mrb_str_cat_lit(mrb, str, lit) mrb_str_cat(mrb, str, (lit), sizeof(lit) - 1)
mrb_value mrb_str_append(mrb_state *mrb, mrb_value str, mrb_value str2);
int mrb_str_cmp(mrb_state *mrb, mrb_value str1, mrb_value str2);
diff --git a/mrbgems/mruby-proc-ext/src/proc.c b/mrbgems/mruby-proc-ext/src/proc.c
index f27356bb7..3bb0d3570 100644
--- a/mrbgems/mruby-proc-ext/src/proc.c
+++ b/mrbgems/mruby-proc-ext/src/proc.c
@@ -39,29 +39,29 @@ mrb_proc_inspect(mrb_state *mrb, mrb_value self)
if (!MRB_PROC_CFUNC_P(p)) {
mrb_irep *irep = p->body.irep;
- mrb_str_cat_cstr(mrb, str, "@");
+ mrb_str_cat_lit(mrb, str, "@");
if (irep->filename) {
mrb_str_cat_cstr(mrb, str, irep->filename);
}
else {
- mrb_str_cat_cstr(mrb, str, "-");
+ mrb_str_cat_lit(mrb, str, "-");
}
- mrb_str_cat_cstr(mrb, str, ":");
+ mrb_str_cat_lit(mrb, str, ":");
if (irep->lines) {
mrb_str_append(mrb, str, mrb_fixnum_value(*irep->lines));
}
else {
- mrb_str_cat_cstr(mrb, str, "-");
+ mrb_str_cat_lit(mrb, str, "-");
}
}
if (MRB_PROC_STRICT_P(p)) {
- mrb_str_cat_cstr(mrb, str, " (lambda)");
+ mrb_str_cat_lit(mrb, str, " (lambda)");
}
- mrb_str_cat_cstr(mrb, str, ">");
+ mrb_str_cat_lit(mrb, str, ">");
return str;
}
diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c
index 23ee81fa6..baac2d3a2 100644
--- a/mrbgems/mruby-struct/src/struct.c
+++ b/mrbgems/mruby-struct/src/struct.c
@@ -450,7 +450,7 @@ inspect_struct(mrb_state *mrb, mrb_value s, int recur)
mrb_str_append(mrb, str, mrb_str_new_cstr(mrb, cn));
}
if (recur) {
- return mrb_str_cat_cstr(mrb, str, ":...>");
+ return mrb_str_cat_lit(mrb, str, ":...>");
}
members = mrb_struct_members(mrb, s);
@@ -462,10 +462,10 @@ inspect_struct(mrb_state *mrb, mrb_value s, int recur)
mrb_sym id;
if (i > 0) {
- mrb_str_cat_cstr(mrb, str, ", ");
+ mrb_str_cat_lit(mrb, str, ", ");
}
else if (cn) {
- mrb_str_cat_cstr(mrb, str, " ");
+ mrb_str_cat_lit(mrb, str, " ");
}
slot = ptr_members[i];
id = mrb_symbol(slot);
@@ -479,10 +479,10 @@ inspect_struct(mrb_state *mrb, mrb_value s, int recur)
else {
mrb_str_append(mrb, str, mrb_inspect(mrb, slot));
}
- mrb_str_cat_cstr(mrb, str, "=");
+ mrb_str_cat_lit(mrb, str, "=");
mrb_str_append(mrb, str, mrb_inspect(mrb, ptr[i]));
}
- mrb_str_cat_cstr(mrb, str, ">");
+ mrb_str_cat_lit(mrb, str, ">");
return str;
}