Example #1
0
static VALUE rxml_document_rb_encoding_get(VALUE self)
{
  xmlDocPtr xdoc;
  const char *xencoding;
  rb_encoding* rbencoding;
  Data_Get_Struct(self, xmlDoc, xdoc);

  xencoding = (const char*)xdoc->encoding;
  rbencoding = rxml_xml_encoding_to_rb_encoding(mXMLEncoding, xmlParseCharEncoding(xencoding));
  return rb_enc_from_encoding(rbencoding);
}
Example #2
0
VALUE rxml_str_new2(const char* xstr, const char* xencoding)
{
#ifdef HAVE_RUBY_ENCODING_H
  if (xencoding)
  {
    xmlCharEncoding xmlEncoding = xmlParseCharEncoding(xencoding);
    VALUE encoding = rxml_xml_encoding_to_rb_encoding(mXMLEncoding, xmlEncoding);
    rb_encoding* xencodingPtr = (rb_encoding*) RDATA(encoding)->data;
    return rb_external_str_new_with_enc(xstr, strlen(xstr), xencodingPtr);
  }
#endif
  return rb_str_new2(xstr);
}
Example #3
0
rb_encoding* rxml_figure_encoding(const char* xencoding)
{
  rb_encoding* result;
  if (xencoding)
  {
    xmlCharEncoding xmlEncoding = xmlParseCharEncoding(xencoding);
    result = rxml_xml_encoding_to_rb_encoding(mXMLEncoding, xmlEncoding);
  }
  else
  {
    result = rb_utf8_encoding();
  }
  return result;
}
Example #4
0
/*
 * call-seq:
 *    Input.encoding_to_rb_encoding(Input::ENCODING) -> Encoding
 *
 * Converts an encoding constant defined on the XML::Encoding
 * class to a Ruby encoding object (available on Ruby 1.9.* and higher).
 */
VALUE rxml_encoding_to_rb_encoding(VALUE klass, VALUE encoding)
{
  xmlCharEncoding xmlEncoding = (xmlCharEncoding)NUM2INT(encoding);
  rb_encoding* rbencoding = rxml_xml_encoding_to_rb_encoding(klass, xmlEncoding);
  return rb_enc_from_encoding(rbencoding);
}