[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