Skip to content

Commit 99c9098

Browse files
committedDec 17, 2017
Properly populate generic transcoder list
1 parent fdde919 commit 99c9098

File tree

2 files changed

+5
-33
lines changed

2 files changed

+5
-33
lines changed
 

‎scripts/generate.rb

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# coding: utf-8
22

3-
REPO_PATH = ARGV.first || '/usr/src/ruby-2.4.2' # path to ruby repo
3+
REPO_PATH = ARGV.first || '/usr/src/ruby-2.4.3' # path to ruby repo
44
SECTION_NAME = "rdata"
55
UNICODE_VERSION = "9.0.0"
66
SRC_DIR = "../src/org/jcodings"
@@ -96,9 +96,10 @@ def generate_transcoder_list
9696
src, dst, tree_start, table_info, iul, max_in, max_out, conv, state_size, state_init, state_fini, *funcs = body
9797
tree_start = trans_src[/#define\s+#{tree_start}\s+WORDINDEX2INFO\((\d+)\)/, 1].to_i << 2
9898
state_size = "0" if state_size == "sizeof(struct from_utf8_mac_status)"
99+
generic = funcs.all?{|f|f == "NULL"}
99100

100-
generic_list << [src, dst, tree_start, "\"#{name}\"", iul, max_in, max_out, "AsciiCompatibility.#{conv.split('_').last.upcase}", state_size]
101-
transcoder_list << [src, dst, t_name, !funcs.all?{|f|f == "NULL"}]
101+
generic_list << [src, dst, tree_start, "\"#{name}\"", iul, max_in, max_out, "AsciiCompatibility.#{conv.split('_').last.upcase}", state_size] if generic
102+
transcoder_list << [src, dst, t_name, !generic]
102103
end
103104

104105
end

‎src/org/jcodings/transcode/TranscoderList.java

+1-30
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,6 @@ static void load() {
251251
new GenericTranscoderEntry("UTF-8", "UTF8-SoftBank", 24060, "Emoji", 1, 4, 6, AsciiCompatibility.CONVERTER, 0),
252252
new GenericTranscoderEntry("stateless-ISO-2022-JP-KDDI", "UTF8-KDDI", 33996, "EmojiIso2022Kddi", 1, 3, 1, AsciiCompatibility.CONVERTER, 0),
253253
new GenericTranscoderEntry("UTF8-KDDI", "stateless-ISO-2022-JP-KDDI", 76404, "EmojiIso2022Kddi", 1, 4, 3, AsciiCompatibility.CONVERTER, 0),
254-
new GenericTranscoderEntry("ISO-2022-JP-KDDI", "stateless-ISO-2022-JP-KDDI", 56, "EmojiIso2022Kddi", 1, 3, 3, AsciiCompatibility.DECODER, 1),
255-
new GenericTranscoderEntry("stateless-ISO-2022-JP-KDDI", "ISO-2022-JP-KDDI", 108, "EmojiIso2022Kddi", 1, 3, 5, AsciiCompatibility.ENCODER, 1),
256254
new GenericTranscoderEntry("SJIS-DOCOMO", "UTF8-DOCOMO", 39616, "EmojiSjisDocomo", 1, 2, 1, AsciiCompatibility.CONVERTER, 0),
257255
new GenericTranscoderEntry("UTF8-DOCOMO", "SJIS-DOCOMO", 84704, "EmojiSjisDocomo", 1, 4, 2, AsciiCompatibility.CONVERTER, 0),
258256
new GenericTranscoderEntry("SJIS-KDDI", "UTF8-KDDI", 39616, "EmojiSjisKddi", 1, 2, 1, AsciiCompatibility.CONVERTER, 0),
@@ -262,21 +260,8 @@ static void load() {
262260
new GenericTranscoderEntry("", "amp_escape", 8, "Escape", 1, 1, 5, AsciiCompatibility.CONVERTER, 0),
263261
new GenericTranscoderEntry("", "xml_text_escape", 32, "Escape", 1, 1, 5, AsciiCompatibility.CONVERTER, 0),
264262
new GenericTranscoderEntry("", "xml_attr_content_escape", 60, "Escape", 1, 1, 6, AsciiCompatibility.CONVERTER, 0),
265-
new GenericTranscoderEntry("", "xml_attr_quote", 72, "Escape", 1, 1, 7, AsciiCompatibility.ENCODER, 1),
266-
new GenericTranscoderEntry("GB18030", "UTF-8", 57668, "Gb18030", 1, 4, 4, AsciiCompatibility.CONVERTER, 0),
267-
new GenericTranscoderEntry("UTF-8", "GB18030", 115576, "Gb18030", 1, 4, 4, AsciiCompatibility.CONVERTER, 0),
268263
new GenericTranscoderEntry("GBK", "UTF-8", 89284, "Gbk", 1, 2, 1, AsciiCompatibility.CONVERTER, 0),
269264
new GenericTranscoderEntry("UTF-8", "GBK", 182912, "Gbk", 1, 4, 2, AsciiCompatibility.CONVERTER, 0),
270-
new GenericTranscoderEntry("ISO-2022-JP", "stateless-ISO-2022-JP", 56, "Iso2022", 1, 3, 3, AsciiCompatibility.DECODER, 1),
271-
new GenericTranscoderEntry("stateless-ISO-2022-JP", "ISO-2022-JP", 108, "Iso2022", 1, 3, 5, AsciiCompatibility.ENCODER, 1),
272-
new GenericTranscoderEntry("stateless-ISO-2022-JP", "EUC-JP", 128, "Iso2022", 1, 3, 2, AsciiCompatibility.CONVERTER, 0),
273-
new GenericTranscoderEntry("EUC-JP", "stateless-ISO-2022-JP", 192, "Iso2022", 1, 3, 3, AsciiCompatibility.CONVERTER, 0),
274-
new GenericTranscoderEntry("CP50220", "cp51932", 244, "Iso2022", 1, 3, 3, AsciiCompatibility.DECODER, 1),
275-
new GenericTranscoderEntry("CP50221", "cp51932", 244, "Iso2022", 1, 3, 3, AsciiCompatibility.DECODER, 1),
276-
new GenericTranscoderEntry("CP51932", "CP50221", 268, "Iso2022", 1, 3, 5, AsciiCompatibility.ENCODER, 1),
277-
new GenericTranscoderEntry("CP51932", "CP50220", 268, "Iso2022", 1, 3, 5, AsciiCompatibility.ENCODER, 3),
278-
new GenericTranscoderEntry("EUC-JP", "Shift_JIS", 88, "Japanese", 1, 3, 2, AsciiCompatibility.CONVERTER, 0),
279-
new GenericTranscoderEntry("Shift_JIS", "EUC-JP", 132, "Japanese", 1, 2, 2, AsciiCompatibility.CONVERTER, 0),
280265
new GenericTranscoderEntry("EUC-JP", "UTF-8", 54488, "JapaneseEuc", 1, 3, 1, AsciiCompatibility.CONVERTER, 0),
281266
new GenericTranscoderEntry("eucJP-ms", "UTF-8", 64480, "JapaneseEuc", 1, 3, 1, AsciiCompatibility.CONVERTER, 0),
282267
new GenericTranscoderEntry("CP51932", "UTF-8", 66380, "JapaneseEuc", 1, 2, 1, AsciiCompatibility.CONVERTER, 0),
@@ -293,7 +278,6 @@ static void load() {
293278
new GenericTranscoderEntry("EUC-KR", "UTF-8", 78500, "Korean", 1, 2, 1, AsciiCompatibility.CONVERTER, 0),
294279
new GenericTranscoderEntry("UTF-8", "CP949", 126176, "Korean", 1, 4, 2, AsciiCompatibility.CONVERTER, 0),
295280
new GenericTranscoderEntry("CP949", "UTF-8", 196644, "Korean", 1, 2, 1, AsciiCompatibility.CONVERTER, 0),
296-
new GenericTranscoderEntry("", "universal_newline", 4, "Newline", 1, 1, 2, AsciiCompatibility.CONVERTER, 2),
297281
new GenericTranscoderEntry("", "crlf_newline", 20, "Newline", 1, 1, 2, AsciiCompatibility.CONVERTER, 0),
298282
new GenericTranscoderEntry("", "cr_newline", 36, "Newline", 1, 1, 1, AsciiCompatibility.CONVERTER, 0),
299283
new GenericTranscoderEntry("US-ASCII", "UTF-8", 8, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0),
@@ -402,19 +386,6 @@ static void load() {
402386
new GenericTranscoderEntry("UTF-8", "CP852", 29656, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0),
403387
new GenericTranscoderEntry("CP855", "UTF-8", 30180, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0),
404388
new GenericTranscoderEntry("UTF-8", "CP855", 30732, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0),
405-
new GenericTranscoderEntry("UTF-8", "UTF8-MAC", 52420, "Utf8Mac", 1, 4, 9, AsciiCompatibility.CONVERTER, 0),
406-
new GenericTranscoderEntry("UTF8-MAC", "UTF-8", 52544, "Utf8Mac", 1, 4, 10, AsciiCompatibility.ENCODER, 0),
407-
new GenericTranscoderEntry("UTF-16BE", "UTF-8", 188, "Utf1632", 2, 4, 4, AsciiCompatibility.DECODER, 0),
408-
new GenericTranscoderEntry("UTF-8", "UTF-16BE", 416, "Utf1632", 1, 4, 4, AsciiCompatibility.ENCODER, 0),
409-
new GenericTranscoderEntry("UTF-16LE", "UTF-8", 52, "Utf1632", 2, 4, 4, AsciiCompatibility.DECODER, 0),
410-
new GenericTranscoderEntry("UTF-8", "UTF-16LE", 416, "Utf1632", 1, 4, 4, AsciiCompatibility.ENCODER, 0),
411-
new GenericTranscoderEntry("UTF-32BE", "UTF-8", 252, "Utf1632", 4, 4, 4, AsciiCompatibility.DECODER, 0),
412-
new GenericTranscoderEntry("UTF-8", "UTF-32BE", 416, "Utf1632", 1, 4, 4, AsciiCompatibility.ENCODER, 0),
413-
new GenericTranscoderEntry("UTF-32LE", "UTF-8", 128, "Utf1632", 4, 4, 4, AsciiCompatibility.DECODER, 0),
414-
new GenericTranscoderEntry("UTF-8", "UTF-32LE", 416, "Utf1632", 1, 4, 4, AsciiCompatibility.ENCODER, 0),
415-
new GenericTranscoderEntry("UTF-16", "UTF-8", 276, "Utf1632", 2, 4, 4, AsciiCompatibility.DECODER, 1),
416-
new GenericTranscoderEntry("UTF-32", "UTF-8", 300, "Utf1632", 4, 4, 4, AsciiCompatibility.DECODER, 1),
417-
new GenericTranscoderEntry("UTF-8", "UTF-16", 416, "Utf1632", 1, 4, 4, AsciiCompatibility.ENCODER, 1),
418-
new GenericTranscoderEntry("UTF-8", "UTF-32", 416, "Utf1632", 1, 4, 4, AsciiCompatibility.ENCODER, 1)
389+
new GenericTranscoderEntry("UTF-8", "UTF8-MAC", 52420, "Utf8Mac", 1, 4, 9, AsciiCompatibility.CONVERTER, 0)
419390
};
420391
}

0 commit comments

Comments
 (0)
Please sign in to comment.