[macruby-changes] [4390] MacRuby/trunk/encoding.c
source_changes at macosforge.org
source_changes at macosforge.org
Wed Jul 28 16:17:06 PDT 2010
Revision: 4390
http://trac.macosforge.org/projects/ruby/changeset/4390
Author: joshua.ballanco at apple.com
Date: 2010-07-28 16:17:04 -0700 (Wed, 28 Jul 2010)
Log Message:
-----------
Implement a few more of the MRI encoding APIs
Modified Paths:
--------------
MacRuby/trunk/encoding.c
Modified: MacRuby/trunk/encoding.c
===================================================================
--- MacRuby/trunk/encoding.c 2010-07-28 20:23:22 UTC (rev 4389)
+++ MacRuby/trunk/encoding.c 2010-07-28 23:17:04 UTC (rev 4390)
@@ -484,6 +484,12 @@
default_external = RENC(encoding);
}
+rb_encoding *
+rb_default_internal_encoding(void)
+{
+ return (rb_encoding *)default_internal;
+}
+
static int
index_of_encoding(rb_encoding_t *enc)
{
@@ -504,6 +510,27 @@
}
int
+rb_to_encoding_index(VALUE enc)
+{
+ if (CLASS_OF(enc) != rb_cEncoding && TYPE(enc) != T_STRING) {
+ return -1;
+ }
+ else {
+ int idx = index_of_encoding(rb_enc_get(enc));
+ if (idx >= 0) {
+ return idx;
+ }
+ else if (NIL_P(enc = rb_check_string_type(enc))) {
+ return -1;
+ }
+ if (!rb_enc_asciicompat(rb_enc_get(enc))) {
+ return -1;
+ }
+ return rb_enc_find_index(StringValueCStr(enc));
+ }
+}
+
+int
rb_enc_find_index(const char *name)
{
return index_of_encoding(rb_enc_find(name));
@@ -527,3 +554,9 @@
return index_of_encoding(rb_encodings[ENCODING_ASCII]);
}
+rb_encoding *
+rb_enc_from_index(int idx)
+{
+ assert(idx >= 0 && idx < ENCODINGS_COUNT);
+ return rb_encodings[idx];
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100728/b9f22b51/attachment.html>
More information about the macruby-changes
mailing list