nokogiri 1.10.4 → 1.11.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/LICENSE-DEPENDENCIES.md +1015 -947
- data/LICENSE.md +1 -1
- data/README.md +173 -94
- data/dependencies.yml +28 -26
- data/ext/nokogiri/depend +37 -358
- data/ext/nokogiri/extconf.rb +611 -391
- data/ext/nokogiri/html_document.c +78 -82
- data/ext/nokogiri/html_element_description.c +84 -71
- data/ext/nokogiri/html_entity_lookup.c +21 -16
- data/ext/nokogiri/html_sax_parser_context.c +69 -66
- data/ext/nokogiri/html_sax_push_parser.c +42 -34
- data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
- data/ext/nokogiri/nokogiri.c +192 -87
- data/ext/nokogiri/nokogiri.h +181 -89
- data/ext/nokogiri/test_global_handlers.c +40 -0
- data/ext/nokogiri/xml_attr.c +15 -15
- data/ext/nokogiri/xml_attribute_decl.c +18 -18
- data/ext/nokogiri/xml_cdata.c +13 -18
- data/ext/nokogiri/xml_comment.c +19 -26
- data/ext/nokogiri/xml_document.c +230 -159
- data/ext/nokogiri/xml_document_fragment.c +13 -15
- data/ext/nokogiri/xml_dtd.c +54 -48
- data/ext/nokogiri/xml_element_content.c +30 -27
- data/ext/nokogiri/xml_element_decl.c +22 -22
- data/ext/nokogiri/xml_encoding_handler.c +17 -11
- data/ext/nokogiri/xml_entity_decl.c +32 -30
- data/ext/nokogiri/xml_entity_reference.c +16 -18
- data/ext/nokogiri/xml_namespace.c +56 -49
- data/ext/nokogiri/xml_node.c +354 -282
- data/ext/nokogiri/xml_node_set.c +168 -156
- data/ext/nokogiri/xml_processing_instruction.c +17 -19
- data/ext/nokogiri/xml_reader.c +195 -172
- data/ext/nokogiri/xml_relax_ng.c +52 -28
- data/ext/nokogiri/xml_sax_parser.c +118 -118
- data/ext/nokogiri/xml_sax_parser_context.c +103 -86
- data/ext/nokogiri/xml_sax_push_parser.c +36 -27
- data/ext/nokogiri/xml_schema.c +111 -34
- data/ext/nokogiri/xml_syntax_error.c +42 -21
- data/ext/nokogiri/xml_text.c +13 -17
- data/ext/nokogiri/xml_xpath_context.c +206 -123
- data/ext/nokogiri/xslt_stylesheet.c +158 -165
- data/lib/nokogiri.rb +6 -27
- data/lib/nokogiri/css.rb +1 -0
- data/lib/nokogiri/css/node.rb +1 -0
- data/lib/nokogiri/css/parser.rb +63 -62
- data/lib/nokogiri/css/parser.y +2 -2
- data/lib/nokogiri/css/parser_extras.rb +39 -36
- data/lib/nokogiri/css/syntax_error.rb +1 -0
- data/lib/nokogiri/css/tokenizer.rb +1 -0
- data/lib/nokogiri/css/xpath_visitor.rb +73 -43
- data/lib/nokogiri/decorators/slop.rb +1 -0
- data/lib/nokogiri/extension.rb +26 -0
- data/lib/nokogiri/html.rb +1 -0
- data/lib/nokogiri/html/builder.rb +1 -0
- data/lib/nokogiri/html/document.rb +13 -26
- data/lib/nokogiri/html/document_fragment.rb +16 -15
- data/lib/nokogiri/html/element_description.rb +1 -0
- data/lib/nokogiri/html/element_description_defaults.rb +1 -0
- data/lib/nokogiri/html/entity_lookup.rb +1 -0
- data/lib/nokogiri/html/sax/parser.rb +1 -0
- data/lib/nokogiri/html/sax/parser_context.rb +1 -0
- data/lib/nokogiri/html/sax/push_parser.rb +1 -0
- data/lib/nokogiri/jruby/dependencies.rb +20 -0
- data/lib/nokogiri/syntax_error.rb +1 -0
- data/lib/nokogiri/version.rb +3 -109
- data/lib/nokogiri/version/constant.rb +5 -0
- data/lib/nokogiri/version/info.rb +205 -0
- data/lib/nokogiri/xml.rb +1 -0
- data/lib/nokogiri/xml/attr.rb +1 -0
- data/lib/nokogiri/xml/attribute_decl.rb +1 -0
- data/lib/nokogiri/xml/builder.rb +3 -2
- data/lib/nokogiri/xml/cdata.rb +1 -0
- data/lib/nokogiri/xml/character_data.rb +1 -0
- data/lib/nokogiri/xml/document.rb +49 -24
- data/lib/nokogiri/xml/document_fragment.rb +5 -6
- data/lib/nokogiri/xml/dtd.rb +1 -0
- data/lib/nokogiri/xml/element_content.rb +1 -0
- data/lib/nokogiri/xml/element_decl.rb +1 -0
- data/lib/nokogiri/xml/entity_decl.rb +1 -0
- data/lib/nokogiri/xml/entity_reference.rb +1 -0
- data/lib/nokogiri/xml/namespace.rb +1 -0
- data/lib/nokogiri/xml/node.rb +624 -290
- data/lib/nokogiri/xml/node/save_options.rb +1 -0
- data/lib/nokogiri/xml/node_set.rb +1 -0
- data/lib/nokogiri/xml/notation.rb +1 -0
- data/lib/nokogiri/xml/parse_options.rb +10 -3
- data/lib/nokogiri/xml/pp.rb +1 -0
- data/lib/nokogiri/xml/pp/character_data.rb +1 -0
- data/lib/nokogiri/xml/pp/node.rb +1 -0
- data/lib/nokogiri/xml/processing_instruction.rb +1 -0
- data/lib/nokogiri/xml/reader.rb +9 -12
- data/lib/nokogiri/xml/relax_ng.rb +7 -2
- data/lib/nokogiri/xml/sax.rb +1 -0
- data/lib/nokogiri/xml/sax/document.rb +1 -0
- data/lib/nokogiri/xml/sax/parser.rb +1 -0
- data/lib/nokogiri/xml/sax/parser_context.rb +1 -0
- data/lib/nokogiri/xml/sax/push_parser.rb +1 -0
- data/lib/nokogiri/xml/schema.rb +13 -4
- data/lib/nokogiri/xml/searchable.rb +25 -16
- data/lib/nokogiri/xml/syntax_error.rb +1 -0
- data/lib/nokogiri/xml/text.rb +1 -0
- data/lib/nokogiri/xml/xpath.rb +2 -3
- data/lib/nokogiri/xml/xpath/syntax_error.rb +2 -1
- data/lib/nokogiri/xml/xpath_context.rb +1 -0
- data/lib/nokogiri/xslt.rb +1 -0
- data/lib/nokogiri/xslt/stylesheet.rb +1 -0
- data/lib/xsd/xmlparser/nokogiri.rb +1 -0
- data/patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch +25 -0
- data/patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch +32 -0
- data/patches/libxml2/0006-htmlParseComment-treat-as-if-it-closed-the-comment.patch +73 -0
- data/patches/libxml2/0007-use-new-htmlParseLookupCommentEnd-to-find-comment-en.patch +103 -0
- data/patches/libxml2/0008-use-glibc-strlen.patch +53 -0
- data/patches/libxml2/0009-avoid-isnan-isinf.patch +81 -0
- data/patches/libxml2/0010-parser.c-shrink-the-input-buffer-when-appropriate.patch +70 -0
- data/ports/archives/libxml2-2.9.10.tar.gz +0 -0
- data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
- metadata +97 -154
- data/ext/nokogiri/html_document.h +0 -10
- data/ext/nokogiri/html_element_description.h +0 -10
- data/ext/nokogiri/html_entity_lookup.h +0 -8
- data/ext/nokogiri/html_sax_parser_context.h +0 -11
- data/ext/nokogiri/html_sax_push_parser.h +0 -9
- data/ext/nokogiri/xml_attr.h +0 -9
- data/ext/nokogiri/xml_attribute_decl.h +0 -9
- data/ext/nokogiri/xml_cdata.h +0 -9
- data/ext/nokogiri/xml_comment.h +0 -9
- data/ext/nokogiri/xml_document.h +0 -23
- data/ext/nokogiri/xml_document_fragment.h +0 -10
- data/ext/nokogiri/xml_dtd.h +0 -10
- data/ext/nokogiri/xml_element_content.h +0 -10
- data/ext/nokogiri/xml_element_decl.h +0 -9
- data/ext/nokogiri/xml_encoding_handler.h +0 -8
- data/ext/nokogiri/xml_entity_decl.h +0 -10
- data/ext/nokogiri/xml_entity_reference.h +0 -9
- data/ext/nokogiri/xml_io.c +0 -61
- data/ext/nokogiri/xml_io.h +0 -11
- data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
- data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
- data/ext/nokogiri/xml_namespace.h +0 -14
- data/ext/nokogiri/xml_node.h +0 -13
- data/ext/nokogiri/xml_node_set.h +0 -12
- data/ext/nokogiri/xml_processing_instruction.h +0 -9
- data/ext/nokogiri/xml_reader.h +0 -10
- data/ext/nokogiri/xml_relax_ng.h +0 -9
- data/ext/nokogiri/xml_sax_parser.h +0 -39
- data/ext/nokogiri/xml_sax_parser_context.h +0 -10
- data/ext/nokogiri/xml_sax_push_parser.h +0 -9
- data/ext/nokogiri/xml_schema.h +0 -9
- data/ext/nokogiri/xml_syntax_error.h +0 -13
- data/ext/nokogiri/xml_text.h +0 -9
- data/ext/nokogiri/xml_xpath_context.h +0 -10
- data/ext/nokogiri/xslt_stylesheet.h +0 -14
- data/patches/libxslt/0001-Fix-security-framework-bypass.patch +0 -120
- data/ports/archives/libxml2-2.9.9.tar.gz +0 -0
- data/ports/archives/libxslt-1.1.33.tar.gz +0 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
From 4f51a6d2b1755ce5b36c524c215aad70d864ac1d Mon Sep 17 00:00:00 2001
|
2
|
+
From: Mike Dalessio <mike.dalessio@gmail.com>
|
3
|
+
Date: Mon, 3 Aug 2020 17:36:05 -0400
|
4
|
+
Subject: [PATCH 1/2] htmlParseComment: treat `--!>` as if it closed the
|
5
|
+
comment
|
6
|
+
|
7
|
+
See guidance provided on incorrectly-closed comments here:
|
8
|
+
|
9
|
+
https://html.spec.whatwg.org/multipage/parsing.html#parse-error-incorrectly-closed-comment
|
10
|
+
---
|
11
|
+
HTMLparser.c | 28 ++++++++++++++++++++--------
|
12
|
+
1 file changed, 20 insertions(+), 8 deletions(-)
|
13
|
+
|
14
|
+
diff --git a/HTMLparser.c b/HTMLparser.c
|
15
|
+
index 7b6d689..4d43479 100644
|
16
|
+
--- a/HTMLparser.c
|
17
|
+
+++ b/HTMLparser.c
|
18
|
+
@@ -3300,6 +3300,7 @@ htmlParseComment(htmlParserCtxtPtr ctxt) {
|
19
|
+
int q, ql;
|
20
|
+
int r, rl;
|
21
|
+
int cur, l;
|
22
|
+
+ int next, nl;
|
23
|
+
xmlParserInputState state;
|
24
|
+
|
25
|
+
/*
|
26
|
+
@@ -3332,6 +3333,21 @@ htmlParseComment(htmlParserCtxtPtr ctxt) {
|
27
|
+
while (IS_CHAR(cur) &&
|
28
|
+
((cur != '>') ||
|
29
|
+
(r != '-') || (q != '-'))) {
|
30
|
+
+ NEXTL(l);
|
31
|
+
+ next = CUR_CHAR(nl);
|
32
|
+
+ if (next == 0) {
|
33
|
+
+ SHRINK;
|
34
|
+
+ GROW;
|
35
|
+
+ next = CUR_CHAR(nl);
|
36
|
+
+ }
|
37
|
+
+
|
38
|
+
+ if ((q == '-') && (r == '-') && (cur == '!') && (next == '>')) {
|
39
|
+
+ htmlParseErr(ctxt, XML_ERR_COMMENT_NOT_FINISHED,
|
40
|
+
+ "Comment incorrectly closed by '--!>'", NULL, NULL);
|
41
|
+
+ cur = '>';
|
42
|
+
+ break;
|
43
|
+
+ }
|
44
|
+
+
|
45
|
+
if (len + 5 >= size) {
|
46
|
+
xmlChar *tmp;
|
47
|
+
|
48
|
+
@@ -3345,18 +3361,14 @@ htmlParseComment(htmlParserCtxtPtr ctxt) {
|
49
|
+
}
|
50
|
+
buf = tmp;
|
51
|
+
}
|
52
|
+
- COPY_BUF(ql,buf,len,q);
|
53
|
+
+ COPY_BUF(ql,buf,len,q);
|
54
|
+
+
|
55
|
+
q = r;
|
56
|
+
ql = rl;
|
57
|
+
r = cur;
|
58
|
+
rl = l;
|
59
|
+
- NEXTL(l);
|
60
|
+
- cur = CUR_CHAR(l);
|
61
|
+
- if (cur == 0) {
|
62
|
+
- SHRINK;
|
63
|
+
- GROW;
|
64
|
+
- cur = CUR_CHAR(l);
|
65
|
+
- }
|
66
|
+
+ cur = next;
|
67
|
+
+ l = nl;
|
68
|
+
}
|
69
|
+
buf[len] = 0;
|
70
|
+
if (IS_CHAR(cur)) {
|
71
|
+
--
|
72
|
+
2.25.1
|
73
|
+
|
@@ -0,0 +1,103 @@
|
|
1
|
+
From b20d746fa7cbb74716171bc49d836af99927e41e Mon Sep 17 00:00:00 2001
|
2
|
+
From: Mike Dalessio <mike.dalessio@gmail.com>
|
3
|
+
Date: Sun, 11 Oct 2020 14:15:37 -0400
|
4
|
+
Subject: [PATCH 2/2] use new htmlParseLookupCommentEnd to find comment ends
|
5
|
+
|
6
|
+
Note that the caret in error messages generated during comment parsing
|
7
|
+
may have moved by one byte.
|
8
|
+
|
9
|
+
See guidance provided on incorrectly-closed comments here:
|
10
|
+
|
11
|
+
https://html.spec.whatwg.org/multipage/parsing.html#parse-error-incorrectly-closed-comment
|
12
|
+
---
|
13
|
+
HTMLparser.c | 46 +++++++++++++++++++++++++++++++++++++---------
|
14
|
+
1 file changed, 37 insertions(+), 9 deletions(-)
|
15
|
+
|
16
|
+
diff --git a/HTMLparser.c b/HTMLparser.c
|
17
|
+
index 4d43479..000dc3d 100644
|
18
|
+
--- a/HTMLparser.c
|
19
|
+
+++ b/HTMLparser.c
|
20
|
+
@@ -5331,6 +5331,39 @@ htmlParseLookupChars(htmlParserCtxtPtr ctxt, const xmlChar * stop,
|
21
|
+
return (-1);
|
22
|
+
}
|
23
|
+
|
24
|
+
+/**
|
25
|
+
+ * htmlParseLookupCommentEnd:
|
26
|
+
+ * @ctxt: an HTML parser context
|
27
|
+
+ *
|
28
|
+
+ * Try to find a comment end tag in the input stream
|
29
|
+
+ * The search includes "-->" as well as WHATWG-recommended incorrectly-closed tags.
|
30
|
+
+ * (See https://html.spec.whatwg.org/multipage/parsing.html#parse-error-incorrectly-closed-comment)
|
31
|
+
+ * This function has a side effect of (possibly) incrementing ctxt->checkIndex
|
32
|
+
+ * to avoid rescanning sequences of bytes, it DOES change the state of the
|
33
|
+
+ * parser, do not use liberally.
|
34
|
+
+ * This wraps to htmlParseLookupSequence()
|
35
|
+
+ *
|
36
|
+
+ * Returns the index to the current parsing point if the full sequence is available, -1 otherwise.
|
37
|
+
+ */
|
38
|
+
+static int
|
39
|
+
+htmlParseLookupCommentEnd(htmlParserCtxtPtr ctxt)
|
40
|
+
+{
|
41
|
+
+ int mark = 0;
|
42
|
+
+ int cur = CUR_PTR - BASE_PTR;
|
43
|
+
+
|
44
|
+
+ while (mark >= 0) {
|
45
|
+
+ mark = htmlParseLookupSequence(ctxt, '-', '-', 0, 1, 1);
|
46
|
+
+ if ((mark < 0) ||
|
47
|
+
+ (NXT(mark+2) == '>') ||
|
48
|
+
+ ((NXT(mark+2) == '!') && (NXT(mark+3) == '>'))) {
|
49
|
+
+ return mark;
|
50
|
+
+ }
|
51
|
+
+ ctxt->checkIndex = cur + mark + 1;
|
52
|
+
+ }
|
53
|
+
+ return mark;
|
54
|
+
+}
|
55
|
+
+
|
56
|
+
+
|
57
|
+
/**
|
58
|
+
* htmlParseTryOrFinish:
|
59
|
+
* @ctxt: an HTML parser context
|
60
|
+
@@ -5507,8 +5540,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
|
61
|
+
cur = in->cur[0];
|
62
|
+
if ((cur == '<') && (next == '!') &&
|
63
|
+
(in->cur[2] == '-') && (in->cur[3] == '-')) {
|
64
|
+
- if ((!terminate) &&
|
65
|
+
- (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
|
66
|
+
+ if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
|
67
|
+
goto done;
|
68
|
+
#ifdef DEBUG_PUSH
|
69
|
+
xmlGenericError(xmlGenericErrorContext,
|
70
|
+
@@ -5567,8 +5599,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
|
71
|
+
next = in->cur[1];
|
72
|
+
if ((cur == '<') && (next == '!') &&
|
73
|
+
(in->cur[2] == '-') && (in->cur[3] == '-')) {
|
74
|
+
- if ((!terminate) &&
|
75
|
+
- (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
|
76
|
+
+ if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
|
77
|
+
goto done;
|
78
|
+
#ifdef DEBUG_PUSH
|
79
|
+
xmlGenericError(xmlGenericErrorContext,
|
80
|
+
@@ -5614,8 +5645,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
|
81
|
+
next = in->cur[1];
|
82
|
+
if ((cur == '<') && (next == '!') &&
|
83
|
+
(in->cur[2] == '-') && (in->cur[3] == '-')) {
|
84
|
+
- if ((!terminate) &&
|
85
|
+
- (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
|
86
|
+
+ if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
|
87
|
+
goto done;
|
88
|
+
#ifdef DEBUG_PUSH
|
89
|
+
xmlGenericError(xmlGenericErrorContext,
|
90
|
+
@@ -5871,9 +5901,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
|
91
|
+
htmlParseDocTypeDecl(ctxt);
|
92
|
+
} else if ((cur == '<') && (next == '!') &&
|
93
|
+
(in->cur[2] == '-') && (in->cur[3] == '-')) {
|
94
|
+
- if ((!terminate) &&
|
95
|
+
- (htmlParseLookupSequence(
|
96
|
+
- ctxt, '-', '-', '>', 1, 1) < 0))
|
97
|
+
+ if ((!terminate) && (htmlParseLookupCommentEnd(ctxt) < 0))
|
98
|
+
goto done;
|
99
|
+
#ifdef DEBUG_PUSH
|
100
|
+
xmlGenericError(xmlGenericErrorContext,
|
101
|
+
--
|
102
|
+
2.25.1
|
103
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
From c94172d2a4451368530db2186190d70be8a1d9e5 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Ilya Zub <ilya@serpapi.com>
|
3
|
+
Date: Wed, 23 Dec 2020 12:45:29 +0200
|
4
|
+
Subject: Use glibc strlen to speed up xmlStrlen
|
5
|
+
MIME-Version: 1.0
|
6
|
+
Content-Type: text/plain; charset=UTF-8
|
7
|
+
Content-Transfer-Encoding: 8bit
|
8
|
+
|
9
|
+
xmlStrlen (entire HTML file): 926171.936981 μs
|
10
|
+
glibc_xmlStrlen (entire HTML file): 36905.903992 μs
|
11
|
+
delta (xmlStrlen ÷ glibc_xmlStrlen): 25.094584 times
|
12
|
+
|
13
|
+
xmlStrlen (average string): 57479.204010 μs
|
14
|
+
glibc_xmlStrlen (average string): 5802.069000 μs
|
15
|
+
delta (xmlStrlen ÷ glibc_xmlStrlen): 9.905937 times
|
16
|
+
|
17
|
+
xmlStrlen (bigger string): 388056.315979 μs
|
18
|
+
glibc_xmlStrlen (bigger string): 12797.856995 μs
|
19
|
+
delta (xmlStrlen ÷ glibc_xmlStrlen): 30.318382 times
|
20
|
+
|
21
|
+
xmlStrlen (smallest string): 15870.046021 μs
|
22
|
+
glibc_xmlStrlen (smallest string): 6282.208984 μs
|
23
|
+
delta (xmlStrlen ÷ glibc_xmlStrlen): 2.527903 times
|
24
|
+
|
25
|
+
See https://gitlab.gnome.org/GNOME/libxml2/-/issues/212 for reference.
|
26
|
+
---
|
27
|
+
xmlstring.c | 9 ++-------
|
28
|
+
1 file changed, 2 insertions(+), 7 deletions(-)
|
29
|
+
|
30
|
+
diff --git a/xmlstring.c b/xmlstring.c
|
31
|
+
index e8a1e45d..df247dff 100644
|
32
|
+
--- a/xmlstring.c
|
33
|
+
+++ b/xmlstring.c
|
34
|
+
@@ -423,14 +423,9 @@ xmlStrsub(const xmlChar *str, int start, int len) {
|
35
|
+
|
36
|
+
int
|
37
|
+
xmlStrlen(const xmlChar *str) {
|
38
|
+
- int len = 0;
|
39
|
+
-
|
40
|
+
if (str == NULL) return(0);
|
41
|
+
- while (*str != 0) { /* non input consuming */
|
42
|
+
- str++;
|
43
|
+
- len++;
|
44
|
+
- }
|
45
|
+
- return(len);
|
46
|
+
+
|
47
|
+
+ return strlen((const char*)str);
|
48
|
+
}
|
49
|
+
|
50
|
+
/**
|
51
|
+
--
|
52
|
+
2.29.2
|
53
|
+
|
@@ -0,0 +1,81 @@
|
|
1
|
+
This patch is a result of rake-compiler-dock using centos 7 (manylinux2014) to cross-compile.
|
2
|
+
|
3
|
+
Centos, for reasons I have not been able to discern, implements `isnan` and `isinf` as a function
|
4
|
+
and not as a macro. Debian knows how to resolve that function at dynamic-link time (despite using a
|
5
|
+
macro at compile time), but musl-based systems (like alpine) do not. Running `nm` on nokogiri.so
|
6
|
+
created on such a centos system shows:
|
7
|
+
|
8
|
+
```
|
9
|
+
U __isinf@@GLIBC_2.2.5
|
10
|
+
U __isnan@@GLIBC_2.2.5
|
11
|
+
```
|
12
|
+
|
13
|
+
(see https://github.com/sparklemotion/nokogiri/pull/2142 for more info)
|
14
|
+
|
15
|
+
This patch avoids using glibc's `isnan` and `isinf` calls, instead using libxml2's fallback
|
16
|
+
implementation. There's history here, see libxml2 commit 8813f39:
|
17
|
+
|
18
|
+
commit 8813f39
|
19
|
+
Author: Nick Wellnhofer <wellnhofer@aevum.de>
|
20
|
+
Date: 2017-09-21 00:11:26 +0200
|
21
|
+
|
22
|
+
Simplify XPath NaN, inf and -0 handling
|
23
|
+
|
24
|
+
Use C99 macros NAN, INFINITY, isnan, isinf. If they're not available:
|
25
|
+
|
26
|
+
- Assume that (0.0 / 0.0) generates a NaN and !(x == x) tests for NaN.
|
27
|
+
- Use C89's HUGE_VAL for INFINITY.
|
28
|
+
|
29
|
+
Remove manual handling of NaN, infinity and negative zero in functions
|
30
|
+
xmlXPathValueFlipSign and xmlXPathDivValues.
|
31
|
+
|
32
|
+
Remove xmlXPathGetSign. All the tests for negative zero can be replaced
|
33
|
+
with a test for negative or positive zero.
|
34
|
+
|
35
|
+
Simplify xmlXPathRoundFunction.
|
36
|
+
|
37
|
+
Remove Trio dependency.
|
38
|
+
|
39
|
+
This should work on IEEE 754 compliant implementations even if the C99
|
40
|
+
macros aren't available, but will likely break some ancient platforms.
|
41
|
+
If problems arise, my plan is to port the relevant trionan.c solution
|
42
|
+
to xpath.c. Note that non-compliant implementations are impossible
|
43
|
+
to fully support, anyway, since XPath requires IEEE 754.
|
44
|
+
|
45
|
+
This patch would be unnecessary if any of the following was true:
|
46
|
+
|
47
|
+
* centos implements these as macros, and doesn't generate an unresolved symbol for either in the shared library
|
48
|
+
* we had a way to ensure `__isinf` and `__isnan` resolve on musl (e.g., we implement them locally)
|
49
|
+
|
50
|
+
diff --git a/xpath.c b/xpath.c
|
51
|
+
index 9f64ab9..5b6d999 100644
|
52
|
+
--- a/xpath.c
|
53
|
+
+++ b/xpath.c
|
54
|
+
@@ -509,11 +509,7 @@ xmlXPathInit(void) {
|
55
|
+
*/
|
56
|
+
int
|
57
|
+
xmlXPathIsNaN(double val) {
|
58
|
+
-#ifdef isnan
|
59
|
+
- return isnan(val);
|
60
|
+
-#else
|
61
|
+
return !(val == val);
|
62
|
+
-#endif
|
63
|
+
}
|
64
|
+
|
65
|
+
/**
|
66
|
+
@@ -524,15 +520,11 @@ xmlXPathIsNaN(double val) {
|
67
|
+
*/
|
68
|
+
int
|
69
|
+
xmlXPathIsInf(double val) {
|
70
|
+
-#ifdef isinf
|
71
|
+
- return isinf(val) ? (val > 0 ? 1 : -1) : 0;
|
72
|
+
-#else
|
73
|
+
if (val >= INFINITY)
|
74
|
+
return 1;
|
75
|
+
if (val <= -INFINITY)
|
76
|
+
return -1;
|
77
|
+
return 0;
|
78
|
+
-#endif
|
79
|
+
}
|
80
|
+
|
81
|
+
#endif /* SCHEMAS or XPATH */
|
@@ -0,0 +1,70 @@
|
|
1
|
+
From ca565c1edef9a455453fa8564270cc9c5813e1b9 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Mike Dalessio <mike.dalessio@gmail.com>
|
3
|
+
Date: Sun, 31 Jan 2021 09:53:56 -0500
|
4
|
+
Subject: [PATCH] parser.c: shrink the input buffer when appropriate
|
5
|
+
|
6
|
+
Fixes GNOME/libxml2#200
|
7
|
+
|
8
|
+
Also see discussions at:
|
9
|
+
- GNOME/libxml2#192
|
10
|
+
- https://gitlab.gnome.org/nwellnhof/libxml2/-/commit/99bda1e
|
11
|
+
- https://github.com/sparklemotion/nokogiri/issues/2132
|
12
|
+
---
|
13
|
+
parser.c | 6 ++++++
|
14
|
+
1 file changed, 6 insertions(+)
|
15
|
+
|
16
|
+
diff --git a/parser.c b/parser.c
|
17
|
+
index a7bdc7f..efde672 100644
|
18
|
+
--- a/parser.c
|
19
|
+
+++ b/parser.c
|
20
|
+
@@ -4204,6 +4204,7 @@ xmlParseSystemLiteral(xmlParserCtxtPtr ctxt) {
|
21
|
+
}
|
22
|
+
count++;
|
23
|
+
if (count > 50) {
|
24
|
+
+ SHRINK;
|
25
|
+
GROW;
|
26
|
+
count = 0;
|
27
|
+
if (ctxt->instate == XML_PARSER_EOF) {
|
28
|
+
@@ -4291,6 +4292,7 @@ xmlParsePubidLiteral(xmlParserCtxtPtr ctxt) {
|
29
|
+
buf[len++] = cur;
|
30
|
+
count++;
|
31
|
+
if (count > 50) {
|
32
|
+
+ SHRINK;
|
33
|
+
GROW;
|
34
|
+
count = 0;
|
35
|
+
if (ctxt->instate == XML_PARSER_EOF) {
|
36
|
+
@@ -4571,6 +4573,7 @@ xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata) {
|
37
|
+
}
|
38
|
+
count++;
|
39
|
+
if (count > 50) {
|
40
|
+
+ SHRINK;
|
41
|
+
GROW;
|
42
|
+
count = 0;
|
43
|
+
if (ctxt->instate == XML_PARSER_EOF)
|
44
|
+
@@ -4776,6 +4779,7 @@ xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf,
|
45
|
+
|
46
|
+
count++;
|
47
|
+
if (count > 50) {
|
48
|
+
+ SHRINK;
|
49
|
+
GROW;
|
50
|
+
count = 0;
|
51
|
+
if (ctxt->instate == XML_PARSER_EOF) {
|
52
|
+
@@ -5186,6 +5190,7 @@ xmlParsePI(xmlParserCtxtPtr ctxt) {
|
53
|
+
}
|
54
|
+
count++;
|
55
|
+
if (count > 50) {
|
56
|
+
+ SHRINK;
|
57
|
+
GROW;
|
58
|
+
if (ctxt->instate == XML_PARSER_EOF) {
|
59
|
+
xmlFree(buf);
|
60
|
+
@@ -9783,6 +9788,7 @@ xmlParseCDSect(xmlParserCtxtPtr ctxt) {
|
61
|
+
sl = l;
|
62
|
+
count++;
|
63
|
+
if (count > 50) {
|
64
|
+
+ SHRINK;
|
65
|
+
GROW;
|
66
|
+
if (ctxt->instate == XML_PARSER_EOF) {
|
67
|
+
xmlFree(buf);
|
68
|
+
--
|
69
|
+
2.25.1
|
70
|
+
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,105 +1,94 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Aaron Patterson
|
8
7
|
- Mike Dalessio
|
8
|
+
- Aaron Patterson
|
9
9
|
- Yoko Harada
|
10
|
-
- Tim Elliott
|
11
10
|
- Akinori MUSHA
|
12
11
|
- John Shahid
|
12
|
+
- Karol Bucek
|
13
13
|
- Lars Kanis
|
14
|
+
- Sergio Arbeo
|
15
|
+
- Timothy Elliott
|
16
|
+
- Nobuyoshi Nakada
|
14
17
|
autorequire:
|
15
18
|
bindir: bin
|
16
19
|
cert_chain: []
|
17
|
-
date:
|
20
|
+
date: 2021-03-11 00:00:00.000000000 Z
|
18
21
|
dependencies:
|
19
22
|
- !ruby/object:Gem::Dependency
|
20
|
-
name:
|
23
|
+
name: racc
|
21
24
|
requirement: !ruby/object:Gem::Requirement
|
22
25
|
requirements:
|
23
26
|
- - "~>"
|
24
27
|
- !ruby/object:Gem::Version
|
25
|
-
version:
|
28
|
+
version: '1.4'
|
26
29
|
type: :runtime
|
27
30
|
prerelease: false
|
28
31
|
version_requirements: !ruby/object:Gem::Requirement
|
29
32
|
requirements:
|
30
33
|
- - "~>"
|
31
34
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
35
|
+
version: '1.4'
|
33
36
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '0.24'
|
40
|
-
type: :development
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0.24'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: hoe-bundler
|
37
|
+
name: mini_portile2
|
49
38
|
requirement: !ruby/object:Gem::Requirement
|
50
39
|
requirements:
|
51
40
|
- - "~>"
|
52
41
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
54
|
-
type: :
|
42
|
+
version: 2.5.0
|
43
|
+
type: :runtime
|
55
44
|
prerelease: false
|
56
45
|
version_requirements: !ruby/object:Gem::Requirement
|
57
46
|
requirements:
|
58
47
|
- - "~>"
|
59
48
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
49
|
+
version: 2.5.0
|
61
50
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
51
|
+
name: bundler
|
63
52
|
requirement: !ruby/object:Gem::Requirement
|
64
53
|
requirements:
|
65
54
|
- - "~>"
|
66
55
|
- !ruby/object:Gem::Version
|
67
|
-
version: '2.
|
56
|
+
version: '2.2'
|
68
57
|
type: :development
|
69
58
|
prerelease: false
|
70
59
|
version_requirements: !ruby/object:Gem::Requirement
|
71
60
|
requirements:
|
72
61
|
- - "~>"
|
73
62
|
- !ruby/object:Gem::Version
|
74
|
-
version: '2.
|
63
|
+
version: '2.2'
|
75
64
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
65
|
+
name: concourse
|
77
66
|
requirement: !ruby/object:Gem::Requirement
|
78
67
|
requirements:
|
79
68
|
- - "~>"
|
80
69
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
70
|
+
version: '0.41'
|
82
71
|
type: :development
|
83
72
|
prerelease: false
|
84
73
|
version_requirements: !ruby/object:Gem::Requirement
|
85
74
|
requirements:
|
86
75
|
- - "~>"
|
87
76
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
77
|
+
version: '0.41'
|
89
78
|
- !ruby/object:Gem::Dependency
|
90
|
-
name: hoe-
|
79
|
+
name: hoe-markdown
|
91
80
|
requirement: !ruby/object:Gem::Requirement
|
92
81
|
requirements:
|
93
82
|
- - "~>"
|
94
83
|
- !ruby/object:Gem::Version
|
95
|
-
version: '1.
|
84
|
+
version: '1.4'
|
96
85
|
type: :development
|
97
86
|
prerelease: false
|
98
87
|
version_requirements: !ruby/object:Gem::Requirement
|
99
88
|
requirements:
|
100
89
|
- - "~>"
|
101
90
|
- !ruby/object:Gem::Version
|
102
|
-
version: '1.
|
91
|
+
version: '1.4'
|
103
92
|
- !ruby/object:Gem::Dependency
|
104
93
|
name: minitest
|
105
94
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,61 +104,61 @@ dependencies:
|
|
115
104
|
- !ruby/object:Gem::Version
|
116
105
|
version: '5.8'
|
117
106
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
107
|
+
name: minitest-reporters
|
119
108
|
requirement: !ruby/object:Gem::Requirement
|
120
109
|
requirements:
|
121
110
|
- - "~>"
|
122
111
|
- !ruby/object:Gem::Version
|
123
|
-
version: 1.4
|
112
|
+
version: '1.4'
|
124
113
|
type: :development
|
125
114
|
prerelease: false
|
126
115
|
version_requirements: !ruby/object:Gem::Requirement
|
127
116
|
requirements:
|
128
117
|
- - "~>"
|
129
118
|
- !ruby/object:Gem::Version
|
130
|
-
version: 1.4
|
119
|
+
version: '1.4'
|
131
120
|
- !ruby/object:Gem::Dependency
|
132
121
|
name: rake
|
133
122
|
requirement: !ruby/object:Gem::Requirement
|
134
123
|
requirements:
|
135
124
|
- - "~>"
|
136
125
|
- !ruby/object:Gem::Version
|
137
|
-
version: '
|
126
|
+
version: '13.0'
|
138
127
|
type: :development
|
139
128
|
prerelease: false
|
140
129
|
version_requirements: !ruby/object:Gem::Requirement
|
141
130
|
requirements:
|
142
131
|
- - "~>"
|
143
132
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
133
|
+
version: '13.0'
|
145
134
|
- !ruby/object:Gem::Dependency
|
146
135
|
name: rake-compiler
|
147
136
|
requirement: !ruby/object:Gem::Requirement
|
148
137
|
requirements:
|
149
138
|
- - "~>"
|
150
139
|
- !ruby/object:Gem::Version
|
151
|
-
version: 1.
|
140
|
+
version: '1.1'
|
152
141
|
type: :development
|
153
142
|
prerelease: false
|
154
143
|
version_requirements: !ruby/object:Gem::Requirement
|
155
144
|
requirements:
|
156
145
|
- - "~>"
|
157
146
|
- !ruby/object:Gem::Version
|
158
|
-
version: 1.
|
147
|
+
version: '1.1'
|
159
148
|
- !ruby/object:Gem::Dependency
|
160
149
|
name: rake-compiler-dock
|
161
150
|
requirement: !ruby/object:Gem::Requirement
|
162
151
|
requirements:
|
163
152
|
- - "~>"
|
164
153
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
154
|
+
version: '1.1'
|
166
155
|
type: :development
|
167
156
|
prerelease: false
|
168
157
|
version_requirements: !ruby/object:Gem::Requirement
|
169
158
|
requirements:
|
170
159
|
- - "~>"
|
171
160
|
- !ruby/object:Gem::Version
|
172
|
-
version:
|
161
|
+
version: '1.1'
|
173
162
|
- !ruby/object:Gem::Dependency
|
174
163
|
name: rexical
|
175
164
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,117 +179,89 @@ dependencies:
|
|
190
179
|
requirements:
|
191
180
|
- - "~>"
|
192
181
|
- !ruby/object:Gem::Version
|
193
|
-
version: '
|
182
|
+
version: '1.7'
|
194
183
|
type: :development
|
195
184
|
prerelease: false
|
196
185
|
version_requirements: !ruby/object:Gem::Requirement
|
197
186
|
requirements:
|
198
187
|
- - "~>"
|
199
188
|
- !ruby/object:Gem::Version
|
200
|
-
version: '
|
189
|
+
version: '1.7'
|
201
190
|
- !ruby/object:Gem::Dependency
|
202
191
|
name: simplecov
|
203
192
|
requirement: !ruby/object:Gem::Requirement
|
204
193
|
requirements:
|
205
194
|
- - "~>"
|
206
195
|
- !ruby/object:Gem::Version
|
207
|
-
version: '0.
|
196
|
+
version: '0.20'
|
208
197
|
type: :development
|
209
198
|
prerelease: false
|
210
199
|
version_requirements: !ruby/object:Gem::Requirement
|
211
200
|
requirements:
|
212
201
|
- - "~>"
|
213
202
|
- !ruby/object:Gem::Version
|
214
|
-
version: '0.
|
203
|
+
version: '0.20'
|
215
204
|
- !ruby/object:Gem::Dependency
|
216
|
-
name:
|
217
|
-
requirement: !ruby/object:Gem::Requirement
|
218
|
-
requirements:
|
219
|
-
- - ">="
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: '4.0'
|
222
|
-
- - "<"
|
223
|
-
- !ruby/object:Gem::Version
|
224
|
-
version: '7'
|
225
|
-
type: :development
|
226
|
-
prerelease: false
|
227
|
-
version_requirements: !ruby/object:Gem::Requirement
|
228
|
-
requirements:
|
229
|
-
- - ">="
|
230
|
-
- !ruby/object:Gem::Version
|
231
|
-
version: '4.0'
|
232
|
-
- - "<"
|
233
|
-
- !ruby/object:Gem::Version
|
234
|
-
version: '7'
|
235
|
-
- !ruby/object:Gem::Dependency
|
236
|
-
name: hoe
|
205
|
+
name: yard
|
237
206
|
requirement: !ruby/object:Gem::Requirement
|
238
207
|
requirements:
|
239
208
|
- - "~>"
|
240
209
|
- !ruby/object:Gem::Version
|
241
|
-
version: '
|
210
|
+
version: '0.9'
|
242
211
|
type: :development
|
243
212
|
prerelease: false
|
244
213
|
version_requirements: !ruby/object:Gem::Requirement
|
245
214
|
requirements:
|
246
215
|
- - "~>"
|
247
216
|
- !ruby/object:Gem::Version
|
248
|
-
version: '
|
249
|
-
description:
|
250
|
-
Nokogiri (鋸)
|
251
|
-
|
252
|
-
|
253
|
-
email:
|
254
|
-
- aaronp@rubyforge.org
|
255
|
-
- mike.dalessio@gmail.com
|
256
|
-
- yokolet@gmail.com
|
257
|
-
- tle@holymonkey.com
|
258
|
-
- knu@idaemons.org
|
259
|
-
- jvshahid@gmail.com
|
260
|
-
- lars@greiz-reinsdorf.de
|
217
|
+
version: '0.9'
|
218
|
+
description: |
|
219
|
+
Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby. It provides a
|
220
|
+
sensible, easy-to-understand API for reading, writing, modifying, and querying documents. It is
|
221
|
+
fast and standards-compliant by relying on native parsers like libxml2 (C) and xerces (Java).
|
222
|
+
email: nokogiri-talk@googlegroups.com
|
261
223
|
executables:
|
262
224
|
- nokogiri
|
263
225
|
extensions:
|
264
226
|
- ext/nokogiri/extconf.rb
|
265
227
|
extra_rdoc_files:
|
266
|
-
-
|
267
|
-
-
|
268
|
-
- README.md
|
269
|
-
- ext/nokogiri/html_document.c
|
270
|
-
- ext/nokogiri/html_element_description.c
|
271
|
-
- ext/nokogiri/html_entity_lookup.c
|
272
|
-
- ext/nokogiri/html_sax_parser_context.c
|
273
|
-
- ext/nokogiri/html_sax_push_parser.c
|
274
|
-
- ext/nokogiri/nokogiri.c
|
228
|
+
- ext/nokogiri/xml_dtd.c
|
229
|
+
- ext/nokogiri/xml_xpath_context.c
|
275
230
|
- ext/nokogiri/xml_attr.c
|
276
|
-
- ext/nokogiri/
|
277
|
-
- ext/nokogiri/xml_cdata.c
|
231
|
+
- ext/nokogiri/libxml2_backwards_compat.c
|
278
232
|
- ext/nokogiri/xml_comment.c
|
279
|
-
- ext/nokogiri/
|
280
|
-
- ext/nokogiri/
|
281
|
-
- ext/nokogiri/
|
233
|
+
- ext/nokogiri/nokogiri.c
|
234
|
+
- ext/nokogiri/xml_sax_parser_context.c
|
235
|
+
- ext/nokogiri/xml_node_set.c
|
236
|
+
- ext/nokogiri/xml_reader.c
|
237
|
+
- ext/nokogiri/xml_cdata.c
|
282
238
|
- ext/nokogiri/xml_element_content.c
|
239
|
+
- ext/nokogiri/html_entity_lookup.c
|
240
|
+
- ext/nokogiri/xml_namespace.c
|
241
|
+
- ext/nokogiri/xml_document.c
|
283
242
|
- ext/nokogiri/xml_element_decl.c
|
243
|
+
- ext/nokogiri/xml_schema.c
|
244
|
+
- ext/nokogiri/html_document.c
|
245
|
+
- ext/nokogiri/xml_processing_instruction.c
|
246
|
+
- ext/nokogiri/xml_text.c
|
247
|
+
- ext/nokogiri/xml_syntax_error.c
|
248
|
+
- ext/nokogiri/xml_document_fragment.c
|
249
|
+
- ext/nokogiri/xml_sax_push_parser.c
|
284
250
|
- ext/nokogiri/xml_encoding_handler.c
|
251
|
+
- ext/nokogiri/html_sax_push_parser.c
|
252
|
+
- ext/nokogiri/xml_relax_ng.c
|
285
253
|
- ext/nokogiri/xml_entity_decl.c
|
286
|
-
- ext/nokogiri/
|
287
|
-
- ext/nokogiri/xml_io.c
|
288
|
-
- ext/nokogiri/xml_libxml2_hacks.c
|
289
|
-
- ext/nokogiri/xml_namespace.c
|
254
|
+
- ext/nokogiri/test_global_handlers.c
|
290
255
|
- ext/nokogiri/xml_node.c
|
291
|
-
- ext/nokogiri/
|
292
|
-
- ext/nokogiri/xml_processing_instruction.c
|
293
|
-
- ext/nokogiri/xml_reader.c
|
294
|
-
- ext/nokogiri/xml_relax_ng.c
|
295
|
-
- ext/nokogiri/xml_sax_parser.c
|
296
|
-
- ext/nokogiri/xml_sax_parser_context.c
|
297
|
-
- ext/nokogiri/xml_sax_push_parser.c
|
298
|
-
- ext/nokogiri/xml_schema.c
|
299
|
-
- ext/nokogiri/xml_syntax_error.c
|
300
|
-
- ext/nokogiri/xml_text.c
|
301
|
-
- ext/nokogiri/xml_xpath_context.c
|
256
|
+
- ext/nokogiri/xml_entity_reference.c
|
302
257
|
- ext/nokogiri/xslt_stylesheet.c
|
258
|
+
- ext/nokogiri/html_sax_parser_context.c
|
259
|
+
- ext/nokogiri/xml_sax_parser.c
|
260
|
+
- ext/nokogiri/xml_attribute_decl.c
|
261
|
+
- ext/nokogiri/html_element_description.c
|
262
|
+
- README.md
|
303
263
|
files:
|
264
|
+
- Gemfile
|
304
265
|
- LICENSE-DEPENDENCIES.md
|
305
266
|
- LICENSE.md
|
306
267
|
- README.md
|
@@ -309,73 +270,40 @@ files:
|
|
309
270
|
- ext/nokogiri/depend
|
310
271
|
- ext/nokogiri/extconf.rb
|
311
272
|
- ext/nokogiri/html_document.c
|
312
|
-
- ext/nokogiri/html_document.h
|
313
273
|
- ext/nokogiri/html_element_description.c
|
314
|
-
- ext/nokogiri/html_element_description.h
|
315
274
|
- ext/nokogiri/html_entity_lookup.c
|
316
|
-
- ext/nokogiri/html_entity_lookup.h
|
317
275
|
- ext/nokogiri/html_sax_parser_context.c
|
318
|
-
- ext/nokogiri/html_sax_parser_context.h
|
319
276
|
- ext/nokogiri/html_sax_push_parser.c
|
320
|
-
- ext/nokogiri/
|
277
|
+
- ext/nokogiri/libxml2_backwards_compat.c
|
321
278
|
- ext/nokogiri/nokogiri.c
|
322
279
|
- ext/nokogiri/nokogiri.h
|
280
|
+
- ext/nokogiri/test_global_handlers.c
|
323
281
|
- ext/nokogiri/xml_attr.c
|
324
|
-
- ext/nokogiri/xml_attr.h
|
325
282
|
- ext/nokogiri/xml_attribute_decl.c
|
326
|
-
- ext/nokogiri/xml_attribute_decl.h
|
327
283
|
- ext/nokogiri/xml_cdata.c
|
328
|
-
- ext/nokogiri/xml_cdata.h
|
329
284
|
- ext/nokogiri/xml_comment.c
|
330
|
-
- ext/nokogiri/xml_comment.h
|
331
285
|
- ext/nokogiri/xml_document.c
|
332
|
-
- ext/nokogiri/xml_document.h
|
333
286
|
- ext/nokogiri/xml_document_fragment.c
|
334
|
-
- ext/nokogiri/xml_document_fragment.h
|
335
287
|
- ext/nokogiri/xml_dtd.c
|
336
|
-
- ext/nokogiri/xml_dtd.h
|
337
288
|
- ext/nokogiri/xml_element_content.c
|
338
|
-
- ext/nokogiri/xml_element_content.h
|
339
289
|
- ext/nokogiri/xml_element_decl.c
|
340
|
-
- ext/nokogiri/xml_element_decl.h
|
341
290
|
- ext/nokogiri/xml_encoding_handler.c
|
342
|
-
- ext/nokogiri/xml_encoding_handler.h
|
343
291
|
- ext/nokogiri/xml_entity_decl.c
|
344
|
-
- ext/nokogiri/xml_entity_decl.h
|
345
292
|
- ext/nokogiri/xml_entity_reference.c
|
346
|
-
- ext/nokogiri/xml_entity_reference.h
|
347
|
-
- ext/nokogiri/xml_io.c
|
348
|
-
- ext/nokogiri/xml_io.h
|
349
|
-
- ext/nokogiri/xml_libxml2_hacks.c
|
350
|
-
- ext/nokogiri/xml_libxml2_hacks.h
|
351
293
|
- ext/nokogiri/xml_namespace.c
|
352
|
-
- ext/nokogiri/xml_namespace.h
|
353
294
|
- ext/nokogiri/xml_node.c
|
354
|
-
- ext/nokogiri/xml_node.h
|
355
295
|
- ext/nokogiri/xml_node_set.c
|
356
|
-
- ext/nokogiri/xml_node_set.h
|
357
296
|
- ext/nokogiri/xml_processing_instruction.c
|
358
|
-
- ext/nokogiri/xml_processing_instruction.h
|
359
297
|
- ext/nokogiri/xml_reader.c
|
360
|
-
- ext/nokogiri/xml_reader.h
|
361
298
|
- ext/nokogiri/xml_relax_ng.c
|
362
|
-
- ext/nokogiri/xml_relax_ng.h
|
363
299
|
- ext/nokogiri/xml_sax_parser.c
|
364
|
-
- ext/nokogiri/xml_sax_parser.h
|
365
300
|
- ext/nokogiri/xml_sax_parser_context.c
|
366
|
-
- ext/nokogiri/xml_sax_parser_context.h
|
367
301
|
- ext/nokogiri/xml_sax_push_parser.c
|
368
|
-
- ext/nokogiri/xml_sax_push_parser.h
|
369
302
|
- ext/nokogiri/xml_schema.c
|
370
|
-
- ext/nokogiri/xml_schema.h
|
371
303
|
- ext/nokogiri/xml_syntax_error.c
|
372
|
-
- ext/nokogiri/xml_syntax_error.h
|
373
304
|
- ext/nokogiri/xml_text.c
|
374
|
-
- ext/nokogiri/xml_text.h
|
375
305
|
- ext/nokogiri/xml_xpath_context.c
|
376
|
-
- ext/nokogiri/xml_xpath_context.h
|
377
306
|
- ext/nokogiri/xslt_stylesheet.c
|
378
|
-
- ext/nokogiri/xslt_stylesheet.h
|
379
307
|
- lib/nokogiri.rb
|
380
308
|
- lib/nokogiri/css.rb
|
381
309
|
- lib/nokogiri/css/node.rb
|
@@ -387,6 +315,7 @@ files:
|
|
387
315
|
- lib/nokogiri/css/tokenizer.rex
|
388
316
|
- lib/nokogiri/css/xpath_visitor.rb
|
389
317
|
- lib/nokogiri/decorators/slop.rb
|
318
|
+
- lib/nokogiri/extension.rb
|
390
319
|
- lib/nokogiri/html.rb
|
391
320
|
- lib/nokogiri/html/builder.rb
|
392
321
|
- lib/nokogiri/html/document.rb
|
@@ -397,8 +326,11 @@ files:
|
|
397
326
|
- lib/nokogiri/html/sax/parser.rb
|
398
327
|
- lib/nokogiri/html/sax/parser_context.rb
|
399
328
|
- lib/nokogiri/html/sax/push_parser.rb
|
329
|
+
- lib/nokogiri/jruby/dependencies.rb
|
400
330
|
- lib/nokogiri/syntax_error.rb
|
401
331
|
- lib/nokogiri/version.rb
|
332
|
+
- lib/nokogiri/version/constant.rb
|
333
|
+
- lib/nokogiri/version/info.rb
|
402
334
|
- lib/nokogiri/xml.rb
|
403
335
|
- lib/nokogiri/xml/attr.rb
|
404
336
|
- lib/nokogiri/xml/attribute_decl.rb
|
@@ -442,13 +374,24 @@ files:
|
|
442
374
|
- patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch
|
443
375
|
- patches/libxml2/0002-Remove-script-macro-support.patch
|
444
376
|
- patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch
|
445
|
-
- patches/
|
446
|
-
-
|
447
|
-
-
|
448
|
-
|
377
|
+
- patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch
|
378
|
+
- patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch
|
379
|
+
- patches/libxml2/0006-htmlParseComment-treat-as-if-it-closed-the-comment.patch
|
380
|
+
- patches/libxml2/0007-use-new-htmlParseLookupCommentEnd-to-find-comment-en.patch
|
381
|
+
- patches/libxml2/0008-use-glibc-strlen.patch
|
382
|
+
- patches/libxml2/0009-avoid-isnan-isinf.patch
|
383
|
+
- patches/libxml2/0010-parser.c-shrink-the-input-buffer-when-appropriate.patch
|
384
|
+
- ports/archives/libxml2-2.9.10.tar.gz
|
385
|
+
- ports/archives/libxslt-1.1.34.tar.gz
|
386
|
+
homepage: https://nokogiri.org
|
449
387
|
licenses:
|
450
388
|
- MIT
|
451
|
-
metadata:
|
389
|
+
metadata:
|
390
|
+
homepage_uri: https://nokogiri.org
|
391
|
+
bug_tracker_uri: https://github.com/sparklemotion/nokogiri/issues
|
392
|
+
documentation_uri: https://nokogiri.org/rdoc/index.html
|
393
|
+
changelog_uri: https://nokogiri.org/CHANGELOG.html
|
394
|
+
source_code_uri: https://github.com/sparklemotion/nokogiri
|
452
395
|
post_install_message:
|
453
396
|
rdoc_options:
|
454
397
|
- "--main"
|
@@ -459,15 +402,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
459
402
|
requirements:
|
460
403
|
- - ">="
|
461
404
|
- !ruby/object:Gem::Version
|
462
|
-
version: 2.
|
405
|
+
version: 2.5.0
|
463
406
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
464
407
|
requirements:
|
465
408
|
- - ">="
|
466
409
|
- !ruby/object:Gem::Version
|
467
410
|
version: '0'
|
468
411
|
requirements: []
|
469
|
-
rubygems_version: 3.
|
412
|
+
rubygems_version: 3.1.4
|
470
413
|
signing_key:
|
471
414
|
specification_version: 4
|
472
|
-
summary: Nokogiri (鋸)
|
415
|
+
summary: Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby.
|
473
416
|
test_files: []
|