summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-07-06 07:30:06 +0900
committerGitHub <[email protected]>2019-07-06 07:30:06 +0900
commit280a83f029c91a8b4c08e76a0d70234c05b7825c (patch)
tree5cf40139bbe39d854bd0126fb605603451c35ff4 /include
parent8294ce9fd458a0a1acf8fcdcb6161b4a020866ad (diff)
parentf9bf2d9d8e2531b2bfebb5a80362b43ab559b56f (diff)
downloadmruby-280a83f029c91a8b4c08e76a0d70234c05b7825c.tar.gz
mruby-280a83f029c91a8b4c08e76a0d70234c05b7825c.zip
Merge pull request #4553 from shuujii/read-write-MRB_STR_ASCII-flag-only-when-MRB_UTF8_STRING-is-defined
Read/write `MRB_STR_ASCII` flag only when `MRB_UTF8_STRING` is defined
Diffstat (limited to 'include')
-rw-r--r--include/mruby/string.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/mruby/string.h b/include/mruby/string.h
index 9484e20d7..d648d856c 100644
--- a/include/mruby/string.h
+++ b/include/mruby/string.h
@@ -68,6 +68,20 @@ struct RString {
#define RSTR_SET_NOFREE_FLAG(s) ((s)->flags |= MRB_STR_NOFREE)
#define RSTR_UNSET_NOFREE_FLAG(s) ((s)->flags &= ~MRB_STR_NOFREE)
+#ifdef MRB_UTF8_STRING
+# define RSTR_ASCII_P(s) ((s)->flags & MRB_STR_ASCII)
+# define RSTR_SET_ASCII_FLAG(s) ((s)->flags |= MRB_STR_ASCII)
+# define RSTR_UNSET_ASCII_FLAG(s) ((s)->flags &= ~MRB_STR_ASCII)
+# define RSTR_WRITE_ASCII_FLAG(s, v) (RSTR_UNSET_ASCII_FLAG(s), (s)->flags |= v)
+# define RSTR_COPY_ASCII_FLAG(dst, src) RSTR_WRITE_ASCII_FLAG(dst, RSTR_ASCII_P(src))
+#else
+# define RSTR_ASCII_P(s) (void)0
+# define RSTR_SET_ASCII_FLAG(s) (void)0
+# define RSTR_UNSET_ASCII_FLAG(s) (void)0
+# define RSTR_WRITE_ASCII_FLAG(s, v) (void)0
+# define RSTR_COPY_ASCII_FLAG(dst, src) (void)0
+#endif
+
#define RSTR_POOL_P(s) ((s)->flags & MRB_STR_POOL)
#define RSTR_SET_POOL_FLAG(s) ((s)->flags |= MRB_STR_POOL)