libxml-ruby 2.0.5 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY CHANGED
@@ -1,5 +1,11 @@
1
1
  = Release History
2
2
 
3
+ == 2.0.6 / 2011-05-23 Charlie Savage
4
+
5
+ * Fix segfault that sometimes occurred when looking up encodings on 1.9.
6
+ In some cases the Ruby encoding infrastructure was not properly
7
+ initialized (nkriege).
8
+
3
9
  == 2.0.5 / 2011-05-05 Charlie Savage
4
10
 
5
11
  * Document#validate_dtd would sometimes cause segmentation faults due to
@@ -894,7 +894,6 @@ static VALUE rxml_document_validate_relaxng(VALUE self, VALUE relaxng)
894
894
  */
895
895
  static VALUE rxml_document_validate_dtd(VALUE self, VALUE dtd)
896
896
  {
897
- VALUE error = Qnil;
898
897
  xmlValidCtxt ctxt;
899
898
  xmlDocPtr xdoc;
900
899
  xmlDtdPtr xdtd;
@@ -904,11 +903,10 @@ static VALUE rxml_document_validate_dtd(VALUE self, VALUE dtd)
904
903
 
905
904
  /* Setup context */
906
905
  memset(&ctxt, 0, sizeof(xmlValidCtxt));
907
- ctxt.userData = &error;
908
906
 
909
907
  if (xmlValidateDtd(&ctxt, xdoc, xdtd))
910
908
  {
911
- return (Qtrue);
909
+ return Qtrue;
912
910
  }
913
911
  else
914
912
  {
@@ -75,74 +75,80 @@ static VALUE rxml_encoding_to_s(VALUE klass, VALUE encoding)
75
75
  }
76
76
 
77
77
  #ifdef HAVE_RUBY_ENCODING_H
78
+ /*
79
+ * Converts an xmlCharEncoding enum value into a Ruby Encoding object (available
80
+ * on Ruby 1.9.* and higher).
81
+ */
78
82
  VALUE rxml_xml_encoding_to_rb_encoding(VALUE klass, xmlCharEncoding xmlEncoding)
79
83
  {
80
- ID encoding_name;
84
+ const char* encodingName;
81
85
 
82
86
  switch (xmlEncoding)
83
87
  {
84
88
  case XML_CHAR_ENCODING_UTF8:
85
- encoding_name = rb_intern("UTF_8");
89
+ encodingName = "UTF-8";
86
90
  break;
87
91
  case XML_CHAR_ENCODING_UTF16LE:
88
- encoding_name = rb_intern("UTF_16LE");
92
+ encodingName = "UTF-16LE";
89
93
  break;
90
94
  case XML_CHAR_ENCODING_UTF16BE:
91
- encoding_name = rb_intern("UTF_16BE");
95
+ encodingName = "UTF-16BE";
92
96
  break;
93
97
  case XML_CHAR_ENCODING_UCS4LE:
94
- encoding_name = rb_intern("UCS_4LE");
98
+ encodingName = "UCS-4LE";
95
99
  break;
96
100
  case XML_CHAR_ENCODING_UCS4BE:
97
- encoding_name = rb_intern("UCS_4BE");
101
+ encodingName = "UCS-4BE";
98
102
  break;
99
103
  case XML_CHAR_ENCODING_UCS2:
100
- encoding_name = rb_intern("UCS_2");
104
+ encodingName = "UCS-2";
101
105
  break;
102
106
  case XML_CHAR_ENCODING_8859_1:
103
- encoding_name = rb_intern("ISO8859_1");
107
+ encodingName = "ISO8859-1";
104
108
  break;
105
109
  case XML_CHAR_ENCODING_8859_2:
106
- encoding_name = rb_intern("ISO8859_2");
110
+ encodingName = "ISO8859-2";
107
111
  break;
108
112
  case XML_CHAR_ENCODING_8859_3:
109
- encoding_name = rb_intern("ISO8859_3");
113
+ encodingName = "ISO8859-3";
110
114
  break;
111
115
  case XML_CHAR_ENCODING_8859_4:
112
- encoding_name = rb_intern("ISO8859_4");
116
+ encodingName = "ISO8859-4";
113
117
  break;
114
118
  case XML_CHAR_ENCODING_8859_5:
115
- encoding_name = rb_intern("ISO8859_5");
119
+ encodingName = "ISO8859-5";
116
120
  break;
117
121
  case XML_CHAR_ENCODING_8859_6:
118
- encoding_name = rb_intern("ISO8859_6");
122
+ encodingName = "ISO8859-6";
119
123
  break;
120
124
  case XML_CHAR_ENCODING_8859_7:
121
- encoding_name = rb_intern("ISO8859_7");
125
+ encodingName = "ISO8859-7";
122
126
  break;
123
127
  case XML_CHAR_ENCODING_8859_8:
124
- encoding_name = rb_intern("ISO8859_8");
128
+ encodingName = "ISO8859-8";
125
129
  break;
126
130
  case XML_CHAR_ENCODING_8859_9:
127
- encoding_name = rb_intern("ISO8859_9");
131
+ encodingName = "ISO8859-9";
128
132
  break;
129
133
  case XML_CHAR_ENCODING_2022_JP:
130
- encoding_name = rb_intern("ISO_2022_JP");
134
+ encodingName = "ISO-2022-JP";
131
135
  break;
132
136
  case XML_CHAR_ENCODING_SHIFT_JIS:
133
- encoding_name = rb_intern("SHIFT_JIS");
137
+ encodingName = "SHIFT-JIS";
134
138
  break;
135
139
  case XML_CHAR_ENCODING_EUC_JP:
136
- encoding_name = rb_intern("EUC_JP");
140
+ encodingName = "EUC-JP";
137
141
  break;
138
142
  case XML_CHAR_ENCODING_ASCII:
139
- encoding_name = rb_intern("US-ASCII");
143
+ encodingName = "US-ASCII";
140
144
  break;
141
145
  default:
142
146
  /* Covers XML_CHAR_ENCODING_ERROR, XML_CHAR_ENCODING_NONE, XML_CHAR_ENCODING_EBCDIC */
143
- encoding_name = rb_intern("ASCII_8BIT");
147
+ encodingName = "ASCII-8BIT";
148
+ break;
144
149
  }
145
- return rb_const_get(rb_cEncoding, encoding_name);
150
+
151
+ return rb_enc_from_encoding(rb_enc_find(encodingName));
146
152
  }
147
153
 
148
154
  /*
@@ -1,9 +1,9 @@
1
1
  /* Don't nuke this block! It is used for automatically updating the
2
2
  * versions below. VERSION = string formatting, VERNUM = numbered
3
3
  * version for inline testing: increment both or none at all.*/
4
- #define RUBY_LIBXML_VERSION "2.0.5"
5
- #define RUBY_LIBXML_VERNUM 205
4
+ #define RUBY_LIBXML_VERSION "2.0.6"
5
+ #define RUBY_LIBXML_VERNUM 206
6
6
  #define RUBY_LIBXML_VER_MAJ 2
7
7
  #define RUBY_LIBXML_VER_MIN 0
8
- #define RUBY_LIBXML_VER_MIC 5
8
+ #define RUBY_LIBXML_VER_MIC 6
9
9
  #define RUBY_LIBXML_VER_PATCH 0
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <shiporder orderid="889923"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xsi:noNamespaceSchemaLocation="shiporder.xsd">
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="shiporder.xsd">
5
5
  <orderperson>John Smith</orderperson>
6
6
  <shipto>
7
7
  <name>Ola Nordmann</name>
@@ -15,7 +15,7 @@ class TestSchema < Test::Unit::TestCase
15
15
 
16
16
  def schema
17
17
  document = XML::Document.file(File.join(File.dirname(__FILE__), 'model/shiporder.xsd'))
18
- schema = XML::Schema.document(document)
18
+ XML::Schema.document(document)
19
19
  end
20
20
 
21
21
  def test_from_doc
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libxml-ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
- - 5
10
- version: 2.0.5
9
+ - 6
10
+ version: 2.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ross Bamform
@@ -20,7 +20,7 @@ autorequire:
20
20
  bindir: bin
21
21
  cert_chain: []
22
22
 
23
- date: 2011-05-05 00:00:00 Z
23
+ date: 2011-05-23 00:00:00 Z
24
24
  dependencies: []
25
25
 
26
26
  description: " The Libxml-Ruby project provides Ruby language bindings for the GNOME\n Libxml2 XML toolkit. It is free software, released under the MIT License.\n Libxml-ruby's primary advantage over REXML is performance - if speed\n is your need, these are good libraries to consider, as demonstrated\n by the informal benchmark below.\n"