summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-07-05 20:37:59 +0900
committerKOBAYASHI Shuji <[email protected]>2019-07-05 22:19:31 +0900
commitf9bf2d9d8e2531b2bfebb5a80362b43ab559b56f (patch)
tree5cf40139bbe39d854bd0126fb605603451c35ff4 /include
parent8294ce9fd458a0a1acf8fcdcb6161b4a020866ad (diff)
downloadmruby-f9bf2d9d8e2531b2bfebb5a80362b43ab559b56f.tar.gz
mruby-f9bf2d9d8e2531b2bfebb5a80362b43ab559b56f.zip
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)