Revision: 4393 http://trac.macosforge.org/projects/ruby/changeset/4393 Author: lsansonetti@apple.com Date: 2010-07-30 01:20:31 -0700 (Fri, 30 Jul 2010) Log Message: ----------- adding 2 more frightening MRI methods Modified Paths: -------------- MacRuby/trunk/encoding.c MacRuby/trunk/string.c Modified: MacRuby/trunk/encoding.c =================================================================== --- MacRuby/trunk/encoding.c 2010-07-29 19:08:54 UTC (rev 4392) +++ MacRuby/trunk/encoding.c 2010-07-30 08:20:31 UTC (rev 4393) @@ -560,3 +560,14 @@ assert(idx >= 0 && idx < ENCODINGS_COUNT); return rb_encodings[idx]; } + +VALUE +rb_enc_associate_index(VALUE obj, int idx) +{ + if (TYPE(obj) == T_STRING) { + assert(idx >= 0 && idx < ENCODINGS_COUNT); + rb_str_force_encoding(obj, rb_encodings[idx]); + return obj; + } + rb_raise(rb_eArgError, "cannot set encoding on non-string object"); +} Modified: MacRuby/trunk/string.c =================================================================== --- MacRuby/trunk/string.c 2010-07-29 19:08:54 UTC (rev 4392) +++ MacRuby/trunk/string.c 2010-07-30 08:20:31 UTC (rev 4393) @@ -6567,3 +6567,14 @@ RSTR(str)->encoding = enc; return str; } + +VALUE +rb_str_export_to_enc(VALUE str, rb_encoding *enc) +{ + if (!IS_RSTR(str)) { + rb_raise(rb_eArgError, "cannot transcode NSString"); + } + return (VALUE)str_transcode(RSTR(str), RSTR(str)->encoding, enc, + TRANSCODE_BEHAVIOR_RAISE_EXCEPTION, + TRANSCODE_BEHAVIOR_RAISE_EXCEPTION, NULL); +}
participants (1)
-
source_changes@macosforge.org