summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--encoding.c9
-rw-r--r--include/ruby/encoding.h1
3 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6fc369454a..1b01b95527 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Sep 29 06:49:16 2009 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * encoding.c (rb_enc_unicode_p): defined.
+ Returns 1 when the encoding is Unicode series
+ other than UTF-7 else 0.
+
Tue Sep 29 04:14:08 2009 NARUSE, Yui <naruse@ruby-lang.org>
* encoding.c (rb_filesystem_encoding): On Unix systems,
diff --git a/encoding.c b/encoding.c
index c8fa8ee5ed..9886556e93 100644
--- a/encoding.c
+++ b/encoding.c
@@ -393,6 +393,15 @@ enc_ascii_compatible_p(VALUE enc)
return rb_enc_asciicompat(enc_table.list[must_encoding(enc)].enc) ? Qtrue : Qfalse;
}
+/*
+ * Returns 1 when the encoding is Unicode series other than UTF-7 else 0.
+ */
+int
+rb_enc_unicode_p(rb_encoding *enc)
+{
+ return rb_utf8_encoding()->is_code_ctype == enc->is_code_ctype;
+}
+
static const char *
enc_alias_internal(const char *alias, int idx)
{
diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h
index 30527779a9..500725e72e 100644
--- a/include/ruby/encoding.h
+++ b/include/ruby/encoding.h
@@ -176,6 +176,7 @@ long rb_str_coderange_scan_restartable(const char*, const char*, rb_encoding*, i
int rb_enc_str_asciionly_p(VALUE);
#define rb_enc_str_asciicompat_p(str) rb_enc_asciicompat(rb_enc_get(str))
VALUE rb_enc_from_encoding(rb_encoding *enc);
+int rb_enc_unicode_p(rb_encoding *enc);
rb_encoding *rb_ascii8bit_encoding(void);
rb_encoding *rb_utf8_encoding(void);
rb_encoding *rb_usascii_encoding(void);