[macruby-changes] [823] MacRuby/trunk/ext/nkf/nkf.c
source_changes at macosforge.org
source_changes at macosforge.org
Sat Feb 28 18:42:29 PST 2009
Revision: 823
http://trac.macosforge.org/projects/ruby/changeset/823
Author: lsansonetti at apple.com
Date: 2009-02-28 18:42:28 -0800 (Sat, 28 Feb 2009)
Log Message:
-----------
patch the nkf extension so that it can be loaded properly (patch by Hisakuni Fujimoto)
Modified Paths:
--------------
MacRuby/trunk/ext/nkf/nkf.c
Modified: MacRuby/trunk/ext/nkf/nkf.c
===================================================================
--- MacRuby/trunk/ext/nkf/nkf.c 2009-02-28 21:13:53 UTC (rev 822)
+++ MacRuby/trunk/ext/nkf/nkf.c 2009-03-01 02:42:28 UTC (rev 823)
@@ -63,6 +63,7 @@
rb_encoding* rb_nkf_enc_get(const char *name)
{
+#if 0
int idx = rb_enc_find_index(name);
if (idx < 0) {
nkf_encoding *nkf_enc = nkf_enc_find(name);
@@ -75,6 +76,39 @@
}
}
return rb_enc_from_index(idx);
+#else
+ struct nkf_osx_name_enc_table {
+ const char* name;
+ CFStringEncoding enc;
+ };
+
+ static struct nkf_osx_name_enc_table table[] = {
+ { "BINARY", kCFStringEncodingNonLossyASCII },
+ { "US-ASCII", kCFStringEncodingASCII },
+ { "ISO-2022-JP", kCFStringEncodingISO_2022_JP },
+ { "ISO-2022-JP-1", kCFStringEncodingISO_2022_JP_1 },
+ { "ISO-2022-JP-2", kCFStringEncodingISO_2022_JP_2 },
+ { "ISO-2022-JP-3", kCFStringEncodingISO_2022_JP_3 },
+ { "EUC-JP", kCFStringEncodingEUC_JP },
+ { "Shift_JIS", kCFStringEncodingShiftJIS },
+ { "UTF-8", kCFStringEncodingUTF8 },
+ { "UTF-16", kCFStringEncodingUTF16 },
+ { "UTF-16BE", kCFStringEncodingUTF16BE },
+ { "UTF-16LE", kCFStringEncodingUTF16LE },
+ { "UTF-32", kCFStringEncodingUTF32 },
+ { "UTF-32BE", kCFStringEncodingUTF32BE },
+ { "UTF-32LE", kCFStringEncodingUTF32LE },
+ { NULL, kCFStringEncodingNonLossyASCII }
+ };
+
+ struct nkf_osx_name_enc_table* ptr = table;
+ while (ptr->name) {
+ if (strcmp(name, ptr->name) == 0)
+ return &(ptr->enc);
+ ptr++;
+ }
+ return &(ptr->enc);
+#endif
}
int nkf_split_options(const char *arg)
@@ -169,7 +203,7 @@
rb_str_set_len(result, output_ctr);
OBJ_INFECT(result, src);
- rb_enc_associate(result, rb_nkf_enc_get(nkf_enc_name(output_encoding)));
+ // rb_enc_associate(result, rb_nkf_enc_get(nkf_enc_name(output_encoding)));
return result;
}
@@ -488,7 +522,8 @@
rb_define_const(mNKF, "JIS", rb_enc_from_encoding(rb_nkf_enc_get("ISO-2022-JP")));
rb_define_const(mNKF, "EUC", rb_enc_from_encoding(rb_nkf_enc_get("EUC-JP")));
rb_define_const(mNKF, "SJIS", rb_enc_from_encoding(rb_nkf_enc_get("Shift_JIS")));
- rb_define_const(mNKF, "UTF8", rb_enc_from_encoding(rb_utf8_encoding()));
+ // rb_define_const(mNKF, "UTF8", rb_enc_from_encoding(rb_utf8_encoding()));
+ rb_define_const(mNKF, "UTF8", rb_enc_from_encoding(rb_nkf_enc_get("UTF-8")));
rb_define_const(mNKF, "UTF16", rb_enc_from_encoding(rb_nkf_enc_get("UTF-16BE")));
rb_define_const(mNKF, "UTF32", rb_enc_from_encoding(rb_nkf_enc_get("UTF-32BE")));
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090228/542e4a87/attachment-0001.html>
More information about the macruby-changes
mailing list