libxml-ruby 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. data/LICENSE +23 -23
  2. data/README +144 -144
  3. data/ext/libxml/extconf.rb +26 -27
  4. data/ext/libxml/libxml.c +7 -37
  5. data/ext/libxml/{libxml.h → ruby_libxml.h} +93 -98
  6. data/ext/libxml/ruby_xml_attr.c +405 -387
  7. data/ext/libxml/ruby_xml_attr.h +19 -18
  8. data/ext/libxml/ruby_xml_document.c +1111 -1115
  9. data/ext/libxml/ruby_xml_document.h +27 -24
  10. data/ext/libxml/ruby_xml_dtd.c +168 -168
  11. data/ext/libxml/ruby_xml_html_parser.c +449 -450
  12. data/ext/libxml/ruby_xml_html_parser.h +1 -1
  13. data/ext/libxml/ruby_xml_input_cbg.c +158 -158
  14. data/ext/libxml/ruby_xml_node.c +2410 -2395
  15. data/ext/libxml/ruby_xml_node.h +1 -1
  16. data/ext/libxml/ruby_xml_node_set.c +170 -170
  17. data/ext/libxml/ruby_xml_node_set.h +1 -1
  18. data/ext/libxml/ruby_xml_ns.c +153 -153
  19. data/ext/libxml/ruby_xml_ns.h +1 -1
  20. data/ext/libxml/ruby_xml_parser.c +1425 -1422
  21. data/ext/libxml/ruby_xml_parser.h +1 -1
  22. data/ext/libxml/ruby_xml_parser_context.c +750 -716
  23. data/ext/libxml/ruby_xml_parser_context.h +1 -1
  24. data/ext/libxml/ruby_xml_reader.c +900 -896
  25. data/ext/libxml/ruby_xml_sax_parser.c +485 -485
  26. data/ext/libxml/ruby_xml_sax_parser.h +1 -1
  27. data/ext/libxml/ruby_xml_schema.c +146 -142
  28. data/ext/libxml/ruby_xml_state.c +5 -6
  29. data/ext/libxml/ruby_xml_state.h +1 -0
  30. data/ext/libxml/ruby_xml_tree.c +43 -43
  31. data/ext/libxml/ruby_xml_tree.h +1 -1
  32. data/ext/libxml/ruby_xml_xinclude.c +20 -20
  33. data/ext/libxml/ruby_xml_xinclude.h +1 -1
  34. data/ext/libxml/ruby_xml_xpath.c +243 -252
  35. data/ext/libxml/ruby_xml_xpath.h +1 -1
  36. data/ext/libxml/ruby_xml_xpath_context.c +118 -118
  37. data/ext/libxml/ruby_xml_xpath_context.h +1 -1
  38. data/ext/libxml/ruby_xml_xpath_object.c +43 -29
  39. data/ext/libxml/ruby_xml_xpath_object.h +0 -1
  40. data/ext/libxml/ruby_xml_xpointer.c +100 -100
  41. data/ext/libxml/ruby_xml_xpointer.h +1 -1
  42. data/ext/libxml/ruby_xml_xpointer_context.c +21 -21
  43. data/ext/libxml/ruby_xml_xpointer_context.h +1 -1
  44. data/ext/libxml/sax_parser_callbacks.inc +213 -213
  45. data/ext/libxml/version.h +9 -9
  46. data/lib/libxml.rb +24 -3
  47. data/mingw/libiconv-2.dll +0 -0
  48. data/mingw/libxml2-2.dll +0 -0
  49. data/mingw/libxml_ruby.so +0 -0
  50. data/mingw/mingw.rake +36 -0
  51. data/test/dtd-test.rb +24 -24
  52. data/test/etc_doc_to_s.rb +1 -3
  53. data/test/ets_copy_bug.rb +21 -21
  54. data/test/ets_copy_bug2.rb +32 -32
  55. data/test/ets_copy_bug3.rb +38 -0
  56. data/test/ets_doc_file.rb +1 -0
  57. data/test/{model/default_validation_bug.rb → gc.log} +0 -0
  58. data/test/merge_bug.rb +55 -55
  59. data/test/schema-test.rb +74 -74
  60. data/test/tc_well_formed.rb +11 -0
  61. data/test/tc_xml_document.rb +52 -52
  62. data/test/tc_xml_document_write.rb +24 -24
  63. data/test/tc_xml_document_write2.rb +54 -54
  64. data/test/tc_xml_document_write3.rb +96 -96
  65. data/test/tc_xml_html_parser.rb +63 -63
  66. data/test/tc_xml_node.rb +59 -59
  67. data/test/tc_xml_node2.rb +25 -25
  68. data/test/tc_xml_node3.rb +27 -27
  69. data/test/tc_xml_node4.rb +86 -86
  70. data/test/tc_xml_node5.rb +52 -52
  71. data/test/tc_xml_node6.rb +27 -27
  72. data/test/tc_xml_node7.rb +35 -35
  73. data/test/tc_xml_node8.rb +32 -32
  74. data/test/tc_xml_node9.rb +32 -32
  75. data/test/tc_xml_node_set.rb +24 -24
  76. data/test/tc_xml_node_set2.rb +37 -37
  77. data/test/tc_xml_node_xlink.rb +28 -28
  78. data/test/tc_xml_parser.rb +190 -178
  79. data/test/tc_xml_parser2.rb +16 -17
  80. data/test/tc_xml_parser3.rb +23 -23
  81. data/test/tc_xml_parser4.rb +33 -33
  82. data/test/tc_xml_parser5.rb +27 -27
  83. data/test/tc_xml_parser6.rb +23 -23
  84. data/test/tc_xml_parser7.rb +28 -28
  85. data/test/tc_xml_parser8.rb +32 -32
  86. data/test/tc_xml_parser9.rb +11 -0
  87. data/test/tc_xml_parser_context.rb +88 -88
  88. data/test/tc_xml_reader.rb +112 -109
  89. data/test/tc_xml_sax_parser.rb +104 -94
  90. data/test/tc_xml_sax_parser2.rb +51 -0
  91. data/test/tc_xml_xinclude.rb +30 -30
  92. data/test/tc_xml_xpath.rb +38 -38
  93. data/test/tc_xml_xpath2.rb +14 -0
  94. data/test/tc_xml_xpointer.rb +78 -78
  95. data/vc/libxml.sln +20 -0
  96. data/vc/libxml.vcproj +389 -0
  97. data/work/Rakefile +247 -0
  98. data/work/task/make +26 -0
  99. data/work/task/memory +37 -0
  100. data/work/task/rdoc +39 -0
  101. data/work/task/setup +1616 -0
  102. data/work/task/test +29 -0
  103. data/work/test/ets_runner.rb +33 -0
  104. data/work/test/libxml_test.rb +3 -0
  105. data/work/test/runner.rb +0 -0
  106. data/work/test/runner_ets.rb +33 -0
  107. data/work/vc/debug/libxml.exp +0 -0
  108. data/work/vc/debug/libxml.ilk +0 -0
  109. data/work/vc/debug/libxml.lib +0 -0
  110. data/work/vc/debug/libxml.pdb +0 -0
  111. data/work/vc/debug/libxml.so +0 -0
  112. metadata +158 -189
  113. data/MANIFEST +0 -138
  114. data/NOTES +0 -9
  115. data/Rakefile +0 -38
  116. data/TODO +0 -75
  117. data/VERSION +0 -1
  118. data/log/Changelog-0.txt +0 -426
  119. data/log/Changelog.txt +0 -435
  120. data/meta/project.yaml +0 -27
  121. data/meta/unixname +0 -1
  122. data/setup.rb +0 -1472
  123. data/site/css/normal.css +0 -182
  124. data/site/img/raze-tiny.png +0 -0
  125. data/site/img/red-cube.jpg +0 -0
  126. data/site/img/xml-ruby.png +0 -0
  127. data/site/index.xml +0 -43
  128. data/site/install.xml +0 -77
  129. data/site/layout.rhtml +0 -38
  130. data/site/layout.xsl +0 -67
  131. data/site/license.xml +0 -32
  132. data/site/log/changelog.xml +0 -1324
  133. data/site/log/changelog.xsl +0 -42
  134. data/test/model/merge_bug_data.xml +0 -58
  135. data/test/model/rubynet.xml +0 -78
  136. data/test/model/rubynet_project +0 -13
  137. data/test/model/saxtest.xml +0 -5
  138. data/test/model/simple.xml +0 -7
  139. data/test/model/xinclude.xml +0 -5
@@ -1,4 +1,4 @@
1
- /* $Id: ruby_xml_html_parser.h 225 2007-12-07 04:58:09Z transami $ */
1
+ /* $Id: ruby_xml_html_parser.h 111 2006-11-20 01:39:14Z roscopeco $ */
2
2
 
3
3
  /* Please see the LICENSE file for copyright and distribution information */
4
4
 
@@ -1,158 +1,158 @@
1
-
2
- /* ruby support for custom scheme handlers */
3
- /* Author: Martin Povolny (xpovolny@fi.muni.cz) */
4
-
5
- #include "libxml.h"
6
- #include "ruby_xml_input_cbg.h"
7
-
8
- static ic_scheme *first_scheme = 0;
9
-
10
- int ic_match (char const *filename) {
11
- ic_scheme *scheme;
12
-
13
- //fprintf( stderr, "ic_match: %s\n", filename );
14
-
15
- scheme = first_scheme;
16
- while (0 != scheme) {
17
- if (!xmlStrncasecmp(BAD_CAST filename, BAD_CAST scheme->scheme_name, scheme->name_len)) {
18
- return 1;
19
- }
20
- scheme = scheme->next_scheme;
21
- }
22
- return 0;
23
- }
24
-
25
- void* ic_open (char const *filename) {
26
- ic_doc_context *ic_doc;
27
- ic_scheme *scheme;
28
- VALUE res;
29
-
30
- scheme = first_scheme;
31
- while (0 != scheme) {
32
- if (!xmlStrncasecmp(BAD_CAST filename, BAD_CAST scheme->scheme_name, scheme->name_len)) {
33
- ic_doc = (ic_doc_context*)malloc( sizeof(ic_doc_context) );
34
-
35
- res = rb_funcall( scheme->class,
36
- rb_intern("document_query"),
37
- 1,
38
- rb_str_new2(filename) );
39
-
40
- ic_doc->buffer = strdup( StringValuePtr(res) );
41
-
42
- ic_doc->bpos = ic_doc->buffer;
43
- ic_doc->remaining = strlen(ic_doc->buffer);
44
- return ic_doc;
45
- }
46
- scheme = scheme->next_scheme;
47
- }
48
- return 0;
49
- }
50
-
51
- int ic_read (void *context, char *buffer, int len) {
52
- ic_doc_context *ic_doc;
53
- int ret_len;
54
- ic_doc = (ic_doc_context*)context;
55
-
56
- if (len >= ic_doc->remaining) {
57
- ret_len = ic_doc->remaining;
58
- } else {
59
- ret_len = len;
60
- }
61
- ic_doc->remaining -= ret_len;
62
- strncpy( buffer, ic_doc->bpos, ret_len );
63
- ic_doc->bpos += ret_len;
64
-
65
- return ret_len;
66
- }
67
-
68
- int ic_close (void *context) {
69
- free( ((ic_doc_context*)context)->buffer );
70
- free( context );
71
- return 1;
72
- }
73
-
74
- VALUE input_callbacks_register_input_callbacks() {
75
- xmlRegisterInputCallbacks( ic_match, ic_open, ic_read, ic_close );
76
- return(Qtrue);
77
- }
78
-
79
- VALUE
80
- input_callbacks_add_scheme (VALUE self, VALUE scheme_name, VALUE class) {
81
- ic_scheme *scheme;
82
-
83
- Check_Type(scheme_name, T_STRING);
84
-
85
- scheme = (ic_scheme*)malloc(sizeof(ic_scheme));
86
- scheme->next_scheme = 0;
87
- scheme->scheme_name = strdup(StringValuePtr(scheme_name)); /* TODO alloc, dealloc */
88
- scheme->name_len = strlen(scheme->scheme_name);
89
- scheme->class = class; /* TODO alloc, dealloc */
90
-
91
- //fprintf( stderr, "registered: %s, %d, %s\n", scheme->scheme_name, scheme->name_len, scheme->class );
92
-
93
- if (0 == first_scheme)
94
- first_scheme = scheme;
95
- else {
96
- ic_scheme *pos;
97
- pos = first_scheme;
98
- while (0 != pos->next_scheme)
99
- pos = pos->next_scheme;
100
- pos->next_scheme = scheme;
101
- }
102
-
103
- return(Qtrue);
104
- }
105
-
106
- VALUE
107
- input_callbacks_remove_scheme (VALUE self, VALUE scheme_name) {
108
- char *name;
109
- ic_scheme *save_scheme, *scheme;
110
-
111
- Check_Type(scheme_name, T_STRING);
112
- name = StringValuePtr(scheme_name);
113
-
114
- if (0 == first_scheme)
115
- return Qfalse;
116
-
117
- /* check the first one */
118
- if (!strncmp(name, first_scheme->scheme_name, first_scheme->name_len)) {
119
- save_scheme = first_scheme->next_scheme;
120
-
121
- free(first_scheme->scheme_name);
122
- free(first_scheme);
123
-
124
- first_scheme = save_scheme;
125
- return Qtrue;
126
- }
127
-
128
- scheme = first_scheme;
129
- while (0 != scheme->next_scheme) {
130
- if ( !strncmp( name, scheme->next_scheme->scheme_name, scheme->next_scheme->name_len ) ) {
131
- save_scheme = scheme->next_scheme->next_scheme;
132
-
133
- free(scheme->next_scheme->scheme_name);
134
- free(scheme->next_scheme);
135
-
136
- scheme->next_scheme = save_scheme;
137
- return Qtrue;
138
- }
139
- scheme = scheme->next_scheme;
140
- }
141
- return Qfalse;
142
- }
143
-
144
- // Rdoc needs to know
145
- #ifdef RDOC_NEVER_DEFINED
146
- mXML = rb_define_module("XML");
147
- #endif
148
-
149
- void
150
- ruby_init_input_callbacks(void) {
151
- VALUE cInputCallbacks;
152
- cInputCallbacks = rb_define_class_under(mXML, "InputCallbacks", rb_cObject);
153
-
154
- /* Class Methods */
155
- rb_define_singleton_method(cInputCallbacks, "register", input_callbacks_register_input_callbacks, 0);
156
- rb_define_singleton_method(cInputCallbacks, "add_scheme", input_callbacks_add_scheme, 2);
157
- rb_define_singleton_method(cInputCallbacks, "remove_scheme", input_callbacks_remove_scheme, 1);
158
- }
1
+
2
+ /* ruby support for custom scheme handlers */
3
+ /* Author: Martin Povolny (xpovolny@fi.muni.cz) */
4
+
5
+ #include "ruby_libxml.h"
6
+ #include "ruby_xml_input_cbg.h"
7
+
8
+ static ic_scheme *first_scheme = 0;
9
+
10
+ int ic_match (char const *filename) {
11
+ ic_scheme *scheme;
12
+
13
+ //fprintf( stderr, "ic_match: %s\n", filename );
14
+
15
+ scheme = first_scheme;
16
+ while (0 != scheme) {
17
+ if (!xmlStrncasecmp(BAD_CAST filename, BAD_CAST scheme->scheme_name, scheme->name_len)) {
18
+ return 1;
19
+ }
20
+ scheme = scheme->next_scheme;
21
+ }
22
+ return 0;
23
+ }
24
+
25
+ void* ic_open (char const *filename) {
26
+ ic_doc_context *ic_doc;
27
+ ic_scheme *scheme;
28
+ VALUE res;
29
+
30
+ scheme = first_scheme;
31
+ while (0 != scheme) {
32
+ if (!xmlStrncasecmp(BAD_CAST filename, BAD_CAST scheme->scheme_name, scheme->name_len)) {
33
+ ic_doc = (ic_doc_context*)malloc( sizeof(ic_doc_context) );
34
+
35
+ res = rb_funcall( scheme->class,
36
+ rb_intern("document_query"),
37
+ 1,
38
+ rb_str_new2(filename) );
39
+
40
+ ic_doc->buffer = strdup( StringValuePtr(res) );
41
+
42
+ ic_doc->bpos = ic_doc->buffer;
43
+ ic_doc->remaining = strlen(ic_doc->buffer);
44
+ return ic_doc;
45
+ }
46
+ scheme = scheme->next_scheme;
47
+ }
48
+ return 0;
49
+ }
50
+
51
+ int ic_read (void *context, char *buffer, int len) {
52
+ ic_doc_context *ic_doc;
53
+ int ret_len;
54
+ ic_doc = (ic_doc_context*)context;
55
+
56
+ if (len >= ic_doc->remaining) {
57
+ ret_len = ic_doc->remaining;
58
+ } else {
59
+ ret_len = len;
60
+ }
61
+ ic_doc->remaining -= ret_len;
62
+ strncpy( buffer, ic_doc->bpos, ret_len );
63
+ ic_doc->bpos += ret_len;
64
+
65
+ return ret_len;
66
+ }
67
+
68
+ int ic_close (void *context) {
69
+ ruby_xfree( ((ic_doc_context*)context)->buffer );
70
+ ruby_xfree( context );
71
+ return 1;
72
+ }
73
+
74
+ VALUE input_callbacks_register_input_callbacks() {
75
+ xmlRegisterInputCallbacks( ic_match, ic_open, ic_read, ic_close );
76
+ return(Qtrue);
77
+ }
78
+
79
+ VALUE
80
+ input_callbacks_add_scheme (VALUE self, VALUE scheme_name, VALUE class) {
81
+ ic_scheme *scheme;
82
+
83
+ Check_Type(scheme_name, T_STRING);
84
+
85
+ scheme = (ic_scheme*)malloc(sizeof(ic_scheme));
86
+ scheme->next_scheme = 0;
87
+ scheme->scheme_name = strdup(StringValuePtr(scheme_name)); /* TODO alloc, dealloc */
88
+ scheme->name_len = strlen(scheme->scheme_name);
89
+ scheme->class = class; /* TODO alloc, dealloc */
90
+
91
+ //fprintf( stderr, "registered: %s, %d, %s\n", scheme->scheme_name, scheme->name_len, scheme->class );
92
+
93
+ if (0 == first_scheme)
94
+ first_scheme = scheme;
95
+ else {
96
+ ic_scheme *pos;
97
+ pos = first_scheme;
98
+ while (0 != pos->next_scheme)
99
+ pos = pos->next_scheme;
100
+ pos->next_scheme = scheme;
101
+ }
102
+
103
+ return(Qtrue);
104
+ }
105
+
106
+ VALUE
107
+ input_callbacks_remove_scheme (VALUE self, VALUE scheme_name) {
108
+ char *name;
109
+ ic_scheme *save_scheme, *scheme;
110
+
111
+ Check_Type(scheme_name, T_STRING);
112
+ name = StringValuePtr(scheme_name);
113
+
114
+ if (0 == first_scheme)
115
+ return Qfalse;
116
+
117
+ /* check the first one */
118
+ if (!strncmp(name, first_scheme->scheme_name, first_scheme->name_len)) {
119
+ save_scheme = first_scheme->next_scheme;
120
+
121
+ ruby_xfree(first_scheme->scheme_name);
122
+ ruby_xfree(first_scheme);
123
+
124
+ first_scheme = save_scheme;
125
+ return Qtrue;
126
+ }
127
+
128
+ scheme = first_scheme;
129
+ while (0 != scheme->next_scheme) {
130
+ if ( !strncmp( name, scheme->next_scheme->scheme_name, scheme->next_scheme->name_len ) ) {
131
+ save_scheme = scheme->next_scheme->next_scheme;
132
+
133
+ ruby_xfree(scheme->next_scheme->scheme_name);
134
+ ruby_xfree(scheme->next_scheme);
135
+
136
+ scheme->next_scheme = save_scheme;
137
+ return Qtrue;
138
+ }
139
+ scheme = scheme->next_scheme;
140
+ }
141
+ return Qfalse;
142
+ }
143
+
144
+ // Rdoc needs to know
145
+ #ifdef RDOC_NEVER_DEFINED
146
+ mXML = rb_define_module("XML");
147
+ #endif
148
+
149
+ void
150
+ ruby_init_input_callbacks(void) {
151
+ VALUE cInputCallbacks;
152
+ cInputCallbacks = rb_define_class_under(mXML, "InputCallbacks", rb_cObject);
153
+
154
+ /* Class Methods */
155
+ rb_define_singleton_method(cInputCallbacks, "register", input_callbacks_register_input_callbacks, 0);
156
+ rb_define_singleton_method(cInputCallbacks, "add_scheme", input_callbacks_add_scheme, 2);
157
+ rb_define_singleton_method(cInputCallbacks, "remove_scheme", input_callbacks_remove_scheme, 1);
158
+ }