summaryrefslogtreecommitdiff
path: root/transcode.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-06 05:47:30 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-06 05:47:30 +0000
commit34be4c1ce5c6ad39720a48a015b40f6cc4e25ca5 (patch)
tree648d2c29f5f8c76a53f0b8faede88825cd786551 /transcode.c
parent5117020d9ee536e190e03cd8e52ddbef9148166a (diff)
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@19179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/transcode.c b/transcode.c
index eea2d5e6e9..20303286cd 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);