From 1724a119b9a25744b55bffc33a50aef8bdbfe3b1 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 6 Sep 2008 05:47:30 +0000 Subject: * include/ruby/encoding.h (ECONV_HTML_TEXT_ENCODER): new constant. (ECONV_HTML_ATTR_ENCODER): ditto. * transcode.c (rb_econv_open): check ECONV_HTML_TEXT_ENCODER and ECONV_HTML_ATTR_ENCODER. (Init_transcode): Encoding::Converter::HTML_TEXT_ENCODER and Encoding::Converter::HTML_ATTR_ENCODER defined. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- transcode.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'transcode.c') diff --git a/transcode.c b/transcode.c index eea2d5e6e..20303286c 100644 --- a/transcode.c +++ b/transcode.c @@ -895,6 +895,10 @@ rb_econv_open(const char *sname, const char *dname, int ecflags) (ecflags & ECONV_UNIVERSAL_NEWLINE_DECODER)) return NULL; + if ((ecflags & ECONV_HTML_TEXT_ENCODER) && + (ecflags & ECONV_HTML_ATTR_ENCODER)) + return NULL; + num_encoders = 0; if (ecflags & ECONV_CRLF_NEWLINE_ENCODER) if (!(encoders[num_encoders++] = get_transcoder_entry("", "crlf_newline"))) @@ -902,6 +906,12 @@ rb_econv_open(const char *sname, const char *dname, int ecflags) if (ecflags & ECONV_CR_NEWLINE_ENCODER) if (!(encoders[num_encoders++] = get_transcoder_entry("", "cr_newline"))) return NULL; + if (ecflags & ECONV_HTML_TEXT_ENCODER) + if (!(encoders[num_encoders++] = get_transcoder_entry("", "html-text-escaped"))) + return NULL; + if (ecflags & ECONV_HTML_ATTR_ENCODER) + if (!(encoders[num_encoders++] = get_transcoder_entry("", "html-attr-escaped"))) + return NULL; num_decoders = 0; if (ecflags & ECONV_UNIVERSAL_NEWLINE_DECODER) @@ -3510,6 +3520,8 @@ Init_transcode(void) rb_define_const(rb_cEncodingConverter, "UNIVERSAL_NEWLINE_DECODER", INT2FIX(ECONV_UNIVERSAL_NEWLINE_DECODER)); rb_define_const(rb_cEncodingConverter, "CRLF_NEWLINE_ENCODER", INT2FIX(ECONV_CRLF_NEWLINE_ENCODER)); rb_define_const(rb_cEncodingConverter, "CR_NEWLINE_ENCODER", INT2FIX(ECONV_CR_NEWLINE_ENCODER)); + rb_define_const(rb_cEncodingConverter, "HTML_TEXT_ENCODER", INT2FIX(ECONV_HTML_TEXT_ENCODER)); + rb_define_const(rb_cEncodingConverter, "HTML_ATTR_ENCODER", INT2FIX(ECONV_HTML_ATTR_ENCODER)); rb_define_method(rb_eConversionUndefined, "source_encoding_name", ecerr_source_encoding_name, 0); rb_define_method(rb_eConversionUndefined, "destination_encoding_name", ecerr_destination_encoding_name, 0); -- cgit