Revision: 4389 http://trac.macosforge.org/projects/ruby/changeset/4389 Author: lsansonetti@apple.com Date: 2010-07-28 13:23:22 -0700 (Wed, 28 Jul 2010) Log Message: ----------- implement some of the MRI encoding index APIs Modified Paths: -------------- MacRuby/trunk/encoding.c MacRuby/trunk/include/ruby/encoding.h Modified: MacRuby/trunk/encoding.c =================================================================== --- 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 =================================================================== --- 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);
participants (1)
-
source_changes@macosforge.org