diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-13 05:48:57 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-13 05:48:57 +0000 |
commit | a14d5eb09bc791b7ada7897a8fdb6a243babbb78 (patch) | |
tree | b342f2f72bb763982d4d89001d4e8dd1d368de03 /enc/trans | |
parent | 74a2a7bdbfbf70febab024354fe0b7fb26300704 (diff) | |
download | ruby-a14d5eb09bc791b7ada7897a8fdb6a243babbb78.tar.gz |
* enc/trans/newline.trans (rb_crlf_newline): new transcoder.
(rb_cr_newline): new transcoder.
* transcode.c (trans_open_i): one more exra room for input newline
converter.
(rb_trans_open): crlf newline and cr newline implemented.
(Init_transcode): Encoding::Converter::CRLF_NEWLINE and
Encoding::Converter::LF_NEWLINE defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enc/trans')
-rw-r--r-- | enc/trans/newline.trans | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/enc/trans/newline.trans b/enc/trans/newline.trans index 3d33a1e323..55be6c1d54 100644 --- a/enc/trans/newline.trans +++ b/enc/trans/newline.trans @@ -47,10 +47,45 @@ rb_universal_newline = { NULL, NULL, NULL, fun_so_universal_newline }; +<% + map_crlf = {} + map_crlf["{00-09,0b-ff}"] = :nomap + map_crlf["0a"] = "0d0a" +%> + +<%= transcode_generate_node(ActionMap.parse(map_crlf), "crlf_newline") %> + +static const rb_transcoder +rb_crlf_newline = { + "", "crlf_newline", &crlf_newline, + 1, /* input_unit_length */ + 1, /* max_input */ + 2, /* max_output */ + NULL, NULL, NULL, NULL +}; + +<% + map_crlf = {} + map_crlf["{00-09,0b-ff}"] = :nomap + map_crlf["0a"] = "0d" +%> + +<%= transcode_generate_node(ActionMap.parse(map_crlf), "cr_newline") %> + +static const rb_transcoder +rb_cr_newline = { + "", "cr_newline", &cr_newline, + 1, /* input_unit_length */ + 1, /* max_input */ + 1, /* max_output */ + NULL, NULL, NULL, NULL +}; void Init_newline(void) { rb_register_transcoder(&rb_universal_newline); + rb_register_transcoder(&rb_crlf_newline); + rb_register_transcoder(&rb_cr_newline); } |