Ruby 1.9.3p327(2012-11-10revision37606)
enc/trans/escape.c
Go to the documentation of this file.
00001 /* autogenerated. */
00002 /* src="transcode-tblgen.rb", len=28123, checksum=30477 */
00003 /* src="escape.trans", len=1986, checksum=23676 */
00004 
00005 #include "transcode_data.h"
00006 
00007 
00008 
00009 static const unsigned char
00010 escape_byte_array[1055] = {
00011 #define from__to_amp_escape_offsets 0
00012 0, 255,
00013       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00014       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00015       0,  0,  0,  0,  0,  0,  1,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00016       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00017       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00018       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00019       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00020       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00021       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00022       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00023       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00024       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00025       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00026       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00027       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00028       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00029 
00030 #define str1_amp makeSTR1(258)
00031     makeSTR1LEN(5), 0x26, 0x61, 0x6D, 0x70, 0x3B,
00032 
00033 #define from__to_xml_text_escape_offsets 264
00034 0, 255,
00035       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00036       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00037       0,  0,  0,  0,  0,  0,  1,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00038       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  2,  0,  3,  0,
00039       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00040       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00041       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00042       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00043       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00044       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00045       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00046       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00047       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00048       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00049       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00050       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00051 
00052 #define str1_lt makeSTR1(522)
00053     makeSTR1LEN(4), 0x26, 0x6C, 0x74, 0x3B,
00054 
00055 #define str1_gt makeSTR1(527)
00056     makeSTR1LEN(4), 0x26, 0x67, 0x74, 0x3B,
00057 
00058 #define from__to_xml_attr_content_escape_offsets 532
00059 0, 255,
00060       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00061       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00062       0,  0,  1,  0,  0,  0,  2,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00063       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  3,  0,  4,  0,
00064       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00065       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00066       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00067       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00068       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00069       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00070       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00071       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00072       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00073       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00074       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00075       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00076 
00077 #define str1_quot makeSTR1(790)
00078     makeSTR1LEN(6), 0x26, 0x71, 0x75, 0x6F, 0x74, 0x3B,
00079 
00080 #define escape_xml_attr_quote_offsets 797
00081 0, 255,
00082       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00083       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00084       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00085       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00086       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00087       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00088       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00089       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00090       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00091       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00092       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00093       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00094       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00095       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00096       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00097       0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,
00098 
00099 };
00100 static const unsigned int
00101 escape_word_array[20] = {
00102 #define from__to_amp_escape_infos WORDINDEX2INFO(0)
00103         NOMAP, str1_amp,
00104 
00105 #define from__to_amp_escape WORDINDEX2INFO(2)
00106     from__to_amp_escape_offsets,
00107     from__to_amp_escape_infos,
00108 
00109 #define from__to_xml_text_escape_infos WORDINDEX2INFO(4)
00110         NOMAP, str1_amp,  str1_lt,  str1_gt,
00111 
00112 #define from__to_xml_text_escape WORDINDEX2INFO(8)
00113     from__to_xml_text_escape_offsets,
00114     from__to_xml_text_escape_infos,
00115 
00116 #define from__to_xml_attr_content_escape_infos WORDINDEX2INFO(10)
00117          NOMAP, str1_quot,  str1_amp,   str1_lt,
00118        str1_gt,
00119 
00120 #define from__to_xml_attr_content_escape WORDINDEX2INFO(15)
00121     from__to_xml_attr_content_escape_offsets,
00122     from__to_xml_attr_content_escape_infos,
00123 
00124 #define escape_xml_attr_quote_infos WORDINDEX2INFO(17)
00125      FUNso,
00126 
00127 #define escape_xml_attr_quote WORDINDEX2INFO(18)
00128     escape_xml_attr_quote_offsets,
00129     escape_xml_attr_quote_infos,
00130 
00131 };
00132 #define TRANSCODE_TABLE_INFO escape_byte_array, 1055, escape_word_array, 20, ((int)sizeof(unsigned int))
00133 static const rb_transcoder
00134 rb_from__to_amp_escape = {
00135     "", "amp_escape", from__to_amp_escape,
00136     TRANSCODE_TABLE_INFO,
00137     1, /* input_unit_length */
00138     1, /* max_input */
00139     5, /* max_output */
00140     asciicompat_converter, /* asciicompat_type */
00141     0, NULL, NULL, /* state_size, state_init, state_fini */
00142     NULL, NULL, NULL, NULL,
00143     NULL, NULL, NULL
00144 };
00145 static const rb_transcoder
00146 rb_from__to_xml_text_escape = {
00147     "", "xml_text_escape", from__to_xml_text_escape,
00148     TRANSCODE_TABLE_INFO,
00149     1, /* input_unit_length */
00150     1, /* max_input */
00151     5, /* max_output */
00152     asciicompat_converter, /* asciicompat_type */
00153     0, NULL, NULL, /* state_size, state_init, state_fini */
00154     NULL, NULL, NULL, NULL,
00155     NULL, NULL, NULL
00156 };
00157 static const rb_transcoder
00158 rb_from__to_xml_attr_content_escape = {
00159     "", "xml_attr_content_escape", from__to_xml_attr_content_escape,
00160     TRANSCODE_TABLE_INFO,
00161     1, /* input_unit_length */
00162     1, /* max_input */
00163     6, /* max_output */
00164     asciicompat_converter, /* asciicompat_type */
00165     0, NULL, NULL, /* state_size, state_init, state_fini */
00166     NULL, NULL, NULL, NULL,
00167     NULL, NULL, NULL
00168 };
00169 
00170 
00171 #define END 0
00172 #define NORMAL  1
00173 
00174 static int
00175 escape_xml_attr_quote_init(void *statep)
00176 {
00177     unsigned char *sp = statep;
00178     *sp = END;
00179     return 0;
00180 }
00181 
00182 static ssize_t
00183 fun_so_escape_xml_attr_quote(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
00184 {
00185     unsigned char *sp = statep;
00186     int n = 0;
00187     if (*sp == END) {
00188         *sp = NORMAL;
00189         o[n++] = '"';
00190     }
00191     o[n++] = s[0];
00192     return n;
00193 }
00194 
00195 static ssize_t
00196 escape_xml_attr_quote_finish(void *statep, unsigned char *o, size_t osize)
00197 {
00198     unsigned char *sp = statep;
00199     int n = 0;
00200 
00201     if (*sp == END) {
00202         o[n++] = '"';
00203     }
00204 
00205     o[n++] = '"';
00206     *sp = END;
00207 
00208     return n;
00209 }
00210 
00211 static const rb_transcoder
00212 rb_escape_xml_attr_quote = {
00213     "", "xml_attr_quote", escape_xml_attr_quote,
00214     TRANSCODE_TABLE_INFO,
00215     1, /* input_unit_length */
00216     1, /* max_input */
00217     7, /* max_output */
00218     asciicompat_encoder, /* asciicompat_type */
00219     1, escape_xml_attr_quote_init, escape_xml_attr_quote_init,
00220     NULL, NULL, NULL, fun_so_escape_xml_attr_quote,
00221     escape_xml_attr_quote_finish
00222 };
00223 
00224 void
00225 Init_escape(void)
00226 {
00227     rb_register_transcoder(&rb_from__to_amp_escape);
00228     rb_register_transcoder(&rb_from__to_xml_text_escape);
00229     rb_register_transcoder(&rb_from__to_xml_attr_content_escape);
00230 
00231     rb_register_transcoder(&rb_escape_xml_attr_quote);
00232 }
00233 
00234 
00235