Modified: MacRuby/trunk/encoding.c (4388 => 4389)
--- MacRuby/trunk/encoding.c 2010-07-28 19:47:07 UTC (rev 4388)
+++ MacRuby/trunk/encoding.c 2010-07-28 20:23:22 UTC (rev 4389)
@@ -484,3 +484,46 @@
default_external = RENC(encoding);
}
+static int
+index_of_encoding(rb_encoding_t *enc)
+{
+ if (enc != NULL) {
+ for (int i = 0; i <ENCODINGS_COUNT; i++) {
+ if (rb_encodings[i] == enc) {
+ return i;
+ }
+ }
+ }
+ return -1;
+}
+
+int
+rb_enc_get_index(VALUE obj)
+{
+ return index_of_encoding(rb_enc_get(obj));
+}
+
+int
+rb_enc_find_index(const char *name)
+{
+ return index_of_encoding(rb_enc_find(name));
+}
+
+int
+rb_ascii8bit_encindex(void)
+{
+ return index_of_encoding(rb_encodings[ENCODING_BINARY]);
+}
+
+int
+rb_utf8_encindex(void)
+{
+ return index_of_encoding(rb_encodings[ENCODING_UTF8]);
+}
+
+int
+rb_usascii_encindex(void)
+{
+ return index_of_encoding(rb_encodings[ENCODING_ASCII]);
+}
+
Modified: MacRuby/trunk/include/ruby/encoding.h (4388 => 4389)
--- MacRuby/trunk/include/ruby/encoding.h 2010-07-28 19:47:07 UTC (rev 4388)
+++ MacRuby/trunk/include/ruby/encoding.h 2010-07-28 20:23:22 UTC (rev 4389)
@@ -26,6 +26,9 @@
void rb_enc_set_index(VALUE obj, int encindex);
int rb_enc_find_index(const char *name);
int rb_to_encoding_index(VALUE);
+int rb_ascii8bit_encindex(void);
+int rb_utf8_encindex(void);
+int rb_usascii_encindex(void);
rb_encoding* rb_to_encoding(VALUE);
rb_encoding* rb_enc_get(VALUE);
rb_encoding* rb_enc_compatible(VALUE,VALUE);