aboutsummaryrefslogtreecommitdiffstats
path: root/enc
diff options
context:
space:
mode:
Diffstat (limited to 'enc')
-rw-r--r--enc/trans/escape.trans78
1 files changed, 20 insertions, 58 deletions
diff --git a/enc/trans/escape.trans b/enc/trans/escape.trans
index 1003e211d4..95977bde61 100644
--- a/enc/trans/escape.trans
+++ b/enc/trans/escape.trans
@@ -5,25 +5,25 @@
str.unpack("H*")[0]
end
- map_amp = {}
- map_amp["{00-25,27-FF}"] = :nomap
- map_amp["26"] = str1("&")
- transcode_generate_node(ActionMap.parse(map_amp), "escape_amp_as_chref")
-
- map_xml_text = {}
- map_xml_text["{00-25,27-3B,3D,3F-FF}"] = :nomap
- map_xml_text["26"] = str1("&")
- map_xml_text["3C"] = str1("<")
- map_xml_text["3E"] = str1(">")
- transcode_generate_node(ActionMap.parse(map_xml_text), "escape_xml_text")
-
- map_xml_attr_content = {}
- map_xml_attr_content["{00-21,23-25,27-3B,3D,3F-FF}"] = :nomap
- map_xml_attr_content["22"] = str1(""")
- map_xml_attr_content["26"] = str1("&")
- map_xml_attr_content["3C"] = str1("<")
- map_xml_attr_content["3E"] = str1(">")
- transcode_generate_node(ActionMap.parse(map_xml_attr_content), "escape_xml_attr_content")
+ transcode_tblgen("", "amp-escaped", [
+ ["{00-25,27-FF}", :nomap],
+ ["26", str1("&")]
+ ])
+
+ transcode_tblgen("", "xml-text-escaped", [
+ ["{00-25,27-3B,3D,3F-FF}", :nomap],
+ ["26", str1("&")],
+ ["3C", str1("<")],
+ ["3E", str1(">")]
+ ])
+
+ transcode_tblgen("", "xml-attr-content-escaped", [
+ ["{00-21,23-25,27-3B,3D,3F-FF}", :nomap],
+ ["22", str1(""")],
+ ["26", str1("&")],
+ ["3C", str1("<")],
+ ["3E", str1(">")]
+ ])
map_xml_attr_quote = {}
map_xml_attr_quote["{00-FF}"] = :func_so
@@ -32,42 +32,6 @@
<%= transcode_generated_code %>
-static const rb_transcoder
-rb_escape_amp_as_chref = {
- "", "amp-escaped", escape_amp_as_chref,
- TRANSCODE_TABLE_INFO,
- 1, /* input_unit_length */
- 1, /* max_input */
- 5, /* max_output */
- stateless_converter, /* stateful_type */
- 0, NULL, NULL,
- NULL, NULL, NULL, NULL
-};
-
-static const rb_transcoder
-rb_escape_xml_text = {
- "", "xml-text-escaped", escape_xml_text,
- TRANSCODE_TABLE_INFO,
- 1, /* input_unit_length */
- 1, /* max_input */
- 5, /* max_output */
- stateless_converter, /* stateful_type */
- 0, NULL, NULL,
- NULL, NULL, NULL, NULL
-};
-
-static const rb_transcoder
-rb_escape_xml_attr_content = {
- "", "xml-attr-content-escaped", escape_xml_attr_content,
- TRANSCODE_TABLE_INFO,
- 1, /* input_unit_length */
- 1, /* max_input */
- 6, /* max_output */
- stateless_converter, /* stateful_type */
- 0, NULL, NULL,
- NULL, NULL, NULL, NULL
-};
-
#define END 0
#define NORMAL 1
@@ -124,9 +88,7 @@ rb_escape_xml_attr_quote = {
void
Init_escape(void)
{
- rb_register_transcoder(&rb_escape_amp_as_chref);
- rb_register_transcoder(&rb_escape_xml_text);
- rb_register_transcoder(&rb_escape_xml_attr_content);
+<%= transcode_register_code %>
rb_register_transcoder(&rb_escape_xml_attr_quote);
}