[macruby-changes] [4089] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Wed May 12 20:33:24 PDT 2010
Revision: 4089
http://trac.macosforge.org/projects/ruby/changeset/4089
Author: lsansonetti at apple.com
Date: 2010-05-12 20:33:22 -0700 (Wed, 12 May 2010)
Log Message:
-----------
support for the nkf extension
Modified Paths:
--------------
MacRuby/trunk/ext/nkf/nkf.c
MacRuby/trunk/rakelib/builder/builder.rb
Modified: MacRuby/trunk/ext/nkf/nkf.c
===================================================================
--- MacRuby/trunk/ext/nkf/nkf.c 2010-05-13 03:32:46 UTC (rev 4088)
+++ MacRuby/trunk/ext/nkf/nkf.c 2010-05-13 03:33:22 UTC (rev 4089)
@@ -63,18 +63,13 @@
rb_encoding* rb_nkf_enc_get(const char *name)
{
- int idx = rb_enc_find_index(name);
- if (idx < 0) {
- nkf_encoding *nkf_enc = nkf_enc_find(name);
- idx = rb_enc_find_index(nkf_enc_name(nkf_enc_to_base_encoding(nkf_enc)));
- if (idx < 0) {
- idx = rb_define_dummy_encoding(name);
- } else {
- rb_encoding *rb_enc = rb_enc_from_index(idx);
- idx = rb_enc_replicate(name, rb_enc);
- }
+ rb_encoding *enc = rb_enc_find(name);
+ if (enc == NULL) {
+ // Encoding is not known, use BINARY instead.
+ enc = rb_enc_find("BINARY");
+ assert(enc != NULL);
}
- return rb_enc_from_index(idx);
+ return enc;
}
int nkf_split_options(const char *arg)
@@ -156,18 +151,19 @@
input_ctr = 0;
StringValue(src);
- input = (unsigned char *)RSTRING_PTR(src);
- i_len = RSTRING_LEN(src);
- result = rb_str_new(0, i_len*3 + 10);
+ src = rb_str_bstr(src);
+ input = rb_bstr_bytes(src);
+ i_len = rb_bstr_length(src);
+ result = rb_bstr_new();
+ rb_bstr_resize(result, i_len*3 + 10);
output_ctr = 0;
- output = (unsigned char *)RSTRING_PTR(result);
- o_len = RSTRING_LEN(result);
+ output = rb_bstr_bytes(result);
+ o_len = rb_bstr_length(result);
*output = '\0';
kanji_convert(NULL);
- rb_str_set_len(result, output_ctr);
- OBJ_INFECT(result, src);
+ rb_bstr_set_length(result, output_ctr);
rb_enc_associate(result, rb_nkf_enc_get(nkf_enc_name(output_encoding)));
Modified: MacRuby/trunk/rakelib/builder/builder.rb
===================================================================
--- MacRuby/trunk/rakelib/builder/builder.rb 2010-05-13 03:32:46 UTC (rev 4088)
+++ MacRuby/trunk/rakelib/builder/builder.rb 2010-05-13 03:33:22 UTC (rev 4089)
@@ -11,6 +11,7 @@
EXTENSIONS = %w{
ripper digest etc readline libyaml fcntl socket zlib bigdecimal openssl json
+ nkf
}.sort
class Builder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100512/44692b48/attachment.html>
More information about the macruby-changes
mailing list