summaryrefslogtreecommitdiff
path: root/internal.h
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-24 03:50:56 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-24 03:50:56 +0000
commitd3199656be297d33696418f8730577fd30735445 (patch)
tree536adb665fd62a02e49a032d8a2b511ef7aef376 /internal.h
parent0161f79a123829c08f7e15f82d1c0d7f3a6f9265 (diff)
string.c: rb_fstring_cstr
* string.c (rb_fstring_cstr): new function to make a fstring from a string literal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'internal.h')
-rw-r--r--internal.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/internal.h b/internal.h
index 7b085cee31..32ad346e07 100644
--- a/internal.h
+++ b/internal.h
@@ -1091,6 +1091,15 @@ VALUE rb_fstring(VALUE);
VALUE rb_fstring_new(const char *ptr, long len);
#define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str))
#define rb_fstring_literal(str) rb_fstring_lit(str)
+VALUE rb_fstring_cstr(const char *str);
+#if defined(__GNUC__) && !defined(__PCC__)
+#define rb_fstring_cstr(str) __extension__ ( \
+{ \
+ (__builtin_constant_p(str)) ? \
+ rb_fstring_new((str), (long)strlen(str)) : \
+ rb_fstring_cstr(str); \
+})
+#endif
int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p);
int rb_str_symname_p(VALUE);
VALUE rb_str_quote_unprintable(VALUE);