nokogiri 1.11.0.rc1-x86-linux → 1.11.1-x86-linux
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/README.md +164 -92
- data/ext/nokogiri/depend +476 -357
- data/ext/nokogiri/extconf.rb +467 -326
- data/ext/nokogiri/html_document.c +79 -78
- data/ext/nokogiri/html_sax_parser_context.c +4 -2
- data/ext/nokogiri/html_sax_push_parser.c +14 -8
- data/ext/nokogiri/include/libexslt/exslt.h +102 -0
- data/ext/nokogiri/include/libexslt/exsltconfig.h +70 -0
- data/ext/nokogiri/include/libexslt/exsltexports.h +140 -0
- data/ext/nokogiri/include/libxml2/libxml/DOCBparser.h +96 -0
- data/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +306 -0
- data/ext/nokogiri/include/libxml2/libxml/HTMLtree.h +147 -0
- data/ext/nokogiri/include/libxml2/libxml/SAX.h +173 -0
- data/ext/nokogiri/include/libxml2/libxml/SAX2.h +178 -0
- data/ext/nokogiri/include/libxml2/libxml/c14n.h +126 -0
- data/ext/nokogiri/include/libxml2/libxml/catalog.h +182 -0
- data/ext/nokogiri/include/libxml2/libxml/chvalid.h +230 -0
- data/ext/nokogiri/include/libxml2/libxml/debugXML.h +217 -0
- data/ext/nokogiri/include/libxml2/libxml/dict.h +79 -0
- data/ext/nokogiri/include/libxml2/libxml/encoding.h +245 -0
- data/ext/nokogiri/include/libxml2/libxml/entities.h +151 -0
- data/ext/nokogiri/include/libxml2/libxml/globals.h +508 -0
- data/ext/nokogiri/include/libxml2/libxml/hash.h +236 -0
- data/ext/nokogiri/include/libxml2/libxml/list.h +137 -0
- data/ext/nokogiri/include/libxml2/libxml/nanoftp.h +163 -0
- data/ext/nokogiri/include/libxml2/libxml/nanohttp.h +81 -0
- data/ext/nokogiri/include/libxml2/libxml/parser.h +1241 -0
- data/ext/nokogiri/include/libxml2/libxml/parserInternals.h +644 -0
- data/ext/nokogiri/include/libxml2/libxml/pattern.h +100 -0
- data/ext/nokogiri/include/libxml2/libxml/relaxng.h +217 -0
- data/ext/nokogiri/include/libxml2/libxml/schemasInternals.h +958 -0
- data/ext/nokogiri/include/libxml2/libxml/schematron.h +142 -0
- data/ext/nokogiri/include/libxml2/libxml/threads.h +89 -0
- data/ext/nokogiri/include/libxml2/libxml/tree.h +1311 -0
- data/ext/nokogiri/include/libxml2/libxml/uri.h +94 -0
- data/ext/nokogiri/include/libxml2/libxml/valid.h +458 -0
- data/ext/nokogiri/include/libxml2/libxml/xinclude.h +129 -0
- data/ext/nokogiri/include/libxml2/libxml/xlink.h +189 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlIO.h +366 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlautomata.h +146 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlerror.h +945 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlexports.h +153 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +224 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlmodule.h +57 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlreader.h +428 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlregexp.h +222 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlsave.h +88 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlschemas.h +246 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +151 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlstring.h +140 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +202 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlversion.h +485 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +488 -0
- data/ext/nokogiri/include/libxml2/libxml/xpath.h +566 -0
- data/ext/nokogiri/include/libxml2/libxml/xpathInternals.h +632 -0
- data/ext/nokogiri/include/libxml2/libxml/xpointer.h +114 -0
- data/ext/nokogiri/include/libxslt/attributes.h +38 -0
- data/ext/nokogiri/include/libxslt/documents.h +93 -0
- data/ext/nokogiri/include/libxslt/extensions.h +262 -0
- data/ext/nokogiri/include/libxslt/extra.h +72 -0
- data/ext/nokogiri/include/libxslt/functions.h +78 -0
- data/ext/nokogiri/include/libxslt/imports.h +75 -0
- data/ext/nokogiri/include/libxslt/keys.h +53 -0
- data/ext/nokogiri/include/libxslt/namespaces.h +68 -0
- data/ext/nokogiri/include/libxslt/numbersInternals.h +73 -0
- data/ext/nokogiri/include/libxslt/pattern.h +84 -0
- data/ext/nokogiri/include/libxslt/preproc.h +43 -0
- data/ext/nokogiri/include/libxslt/security.h +104 -0
- data/ext/nokogiri/include/libxslt/templates.h +77 -0
- data/ext/nokogiri/include/libxslt/transform.h +207 -0
- data/ext/nokogiri/include/libxslt/variables.h +118 -0
- data/ext/nokogiri/include/libxslt/xslt.h +110 -0
- data/ext/nokogiri/include/libxslt/xsltInternals.h +1978 -0
- data/ext/nokogiri/include/libxslt/xsltconfig.h +180 -0
- data/ext/nokogiri/include/libxslt/xsltexports.h +142 -0
- data/ext/nokogiri/include/libxslt/xsltlocale.h +76 -0
- data/ext/nokogiri/include/libxslt/xsltutils.h +313 -0
- data/ext/nokogiri/nokogiri.c +37 -46
- data/ext/nokogiri/nokogiri.h +25 -17
- data/ext/nokogiri/test_global_handlers.c +41 -0
- data/ext/nokogiri/xml_document.c +8 -3
- data/ext/nokogiri/xml_io.c +8 -6
- data/ext/nokogiri/xml_node.c +1 -1
- data/ext/nokogiri/xml_node_set.c +1 -1
- data/ext/nokogiri/xml_reader.c +6 -17
- data/ext/nokogiri/xml_relax_ng.c +29 -11
- data/ext/nokogiri/xml_sax_parser.c +2 -7
- data/ext/nokogiri/xml_sax_parser_context.c +4 -2
- data/ext/nokogiri/xml_sax_push_parser.c +2 -0
- data/ext/nokogiri/xml_schema.c +84 -13
- data/ext/nokogiri/xml_syntax_error.c +23 -0
- data/ext/nokogiri/xml_syntax_error.h +15 -3
- data/ext/nokogiri/xml_xpath_context.c +80 -4
- data/ext/nokogiri/xslt_stylesheet.c +1 -4
- data/lib/nokogiri.rb +20 -3
- data/lib/nokogiri/2.5/nokogiri.so +0 -0
- data/lib/nokogiri/2.6/nokogiri.so +0 -0
- data/lib/nokogiri/2.7/nokogiri.so +0 -0
- data/lib/nokogiri/3.0/nokogiri.so +0 -0
- data/lib/nokogiri/css/parser.rb +62 -62
- data/lib/nokogiri/css/parser.y +2 -2
- data/lib/nokogiri/css/parser_extras.rb +38 -36
- data/lib/nokogiri/css/xpath_visitor.rb +70 -42
- data/lib/nokogiri/html/document.rb +12 -26
- data/lib/nokogiri/version.rb +2 -148
- data/lib/nokogiri/version/constant.rb +5 -0
- data/lib/nokogiri/version/info.rb +182 -0
- data/lib/nokogiri/xml/builder.rb +2 -2
- data/lib/nokogiri/xml/document.rb +17 -7
- data/lib/nokogiri/xml/document_fragment.rb +4 -6
- data/lib/nokogiri/xml/node.rb +562 -238
- data/lib/nokogiri/xml/parse_options.rb +6 -0
- data/lib/nokogiri/xml/relax_ng.rb +6 -2
- data/lib/nokogiri/xml/schema.rb +12 -4
- data/lib/nokogiri/xml/searchable.rb +24 -16
- metadata +149 -130
- data/lib/nokogiri/2.4/nokogiri.so +0 -0
@@ -0,0 +1,236 @@
|
|
1
|
+
/*
|
2
|
+
* Summary: Chained hash tables
|
3
|
+
* Description: This module implements the hash table support used in
|
4
|
+
* various places in the library.
|
5
|
+
*
|
6
|
+
* Copy: See Copyright for the status of this software.
|
7
|
+
*
|
8
|
+
* Author: Bjorn Reese <bjorn.reese@systematic.dk>
|
9
|
+
*/
|
10
|
+
|
11
|
+
#ifndef __XML_HASH_H__
|
12
|
+
#define __XML_HASH_H__
|
13
|
+
|
14
|
+
#ifdef __cplusplus
|
15
|
+
extern "C" {
|
16
|
+
#endif
|
17
|
+
|
18
|
+
/*
|
19
|
+
* The hash table.
|
20
|
+
*/
|
21
|
+
typedef struct _xmlHashTable xmlHashTable;
|
22
|
+
typedef xmlHashTable *xmlHashTablePtr;
|
23
|
+
|
24
|
+
#ifdef __cplusplus
|
25
|
+
}
|
26
|
+
#endif
|
27
|
+
|
28
|
+
#include <libxml/xmlversion.h>
|
29
|
+
#include <libxml/parser.h>
|
30
|
+
#include <libxml/dict.h>
|
31
|
+
|
32
|
+
#ifdef __cplusplus
|
33
|
+
extern "C" {
|
34
|
+
#endif
|
35
|
+
|
36
|
+
/*
|
37
|
+
* Recent version of gcc produce a warning when a function pointer is assigned
|
38
|
+
* to an object pointer, or vice versa. The following macro is a dirty hack
|
39
|
+
* to allow suppression of the warning. If your architecture has function
|
40
|
+
* pointers which are a different size than a void pointer, there may be some
|
41
|
+
* serious trouble within the library.
|
42
|
+
*/
|
43
|
+
/**
|
44
|
+
* XML_CAST_FPTR:
|
45
|
+
* @fptr: pointer to a function
|
46
|
+
*
|
47
|
+
* Macro to do a casting from an object pointer to a
|
48
|
+
* function pointer without encountering a warning from
|
49
|
+
* gcc
|
50
|
+
*
|
51
|
+
* #define XML_CAST_FPTR(fptr) (*(void **)(&fptr))
|
52
|
+
* This macro violated ISO C aliasing rules (gcc4 on s390 broke)
|
53
|
+
* so it is disabled now
|
54
|
+
*/
|
55
|
+
|
56
|
+
#define XML_CAST_FPTR(fptr) fptr
|
57
|
+
|
58
|
+
|
59
|
+
/*
|
60
|
+
* function types:
|
61
|
+
*/
|
62
|
+
/**
|
63
|
+
* xmlHashDeallocator:
|
64
|
+
* @payload: the data in the hash
|
65
|
+
* @name: the name associated
|
66
|
+
*
|
67
|
+
* Callback to free data from a hash.
|
68
|
+
*/
|
69
|
+
typedef void (*xmlHashDeallocator)(void *payload, const xmlChar *name);
|
70
|
+
/**
|
71
|
+
* xmlHashCopier:
|
72
|
+
* @payload: the data in the hash
|
73
|
+
* @name: the name associated
|
74
|
+
*
|
75
|
+
* Callback to copy data from a hash.
|
76
|
+
*
|
77
|
+
* Returns a copy of the data or NULL in case of error.
|
78
|
+
*/
|
79
|
+
typedef void *(*xmlHashCopier)(void *payload, const xmlChar *name);
|
80
|
+
/**
|
81
|
+
* xmlHashScanner:
|
82
|
+
* @payload: the data in the hash
|
83
|
+
* @data: extra scanner data
|
84
|
+
* @name: the name associated
|
85
|
+
*
|
86
|
+
* Callback when scanning data in a hash with the simple scanner.
|
87
|
+
*/
|
88
|
+
typedef void (*xmlHashScanner)(void *payload, void *data, const xmlChar *name);
|
89
|
+
/**
|
90
|
+
* xmlHashScannerFull:
|
91
|
+
* @payload: the data in the hash
|
92
|
+
* @data: extra scanner data
|
93
|
+
* @name: the name associated
|
94
|
+
* @name2: the second name associated
|
95
|
+
* @name3: the third name associated
|
96
|
+
*
|
97
|
+
* Callback when scanning data in a hash with the full scanner.
|
98
|
+
*/
|
99
|
+
typedef void (*xmlHashScannerFull)(void *payload, void *data,
|
100
|
+
const xmlChar *name, const xmlChar *name2,
|
101
|
+
const xmlChar *name3);
|
102
|
+
|
103
|
+
/*
|
104
|
+
* Constructor and destructor.
|
105
|
+
*/
|
106
|
+
XMLPUBFUN xmlHashTablePtr XMLCALL
|
107
|
+
xmlHashCreate (int size);
|
108
|
+
XMLPUBFUN xmlHashTablePtr XMLCALL
|
109
|
+
xmlHashCreateDict(int size,
|
110
|
+
xmlDictPtr dict);
|
111
|
+
XMLPUBFUN void XMLCALL
|
112
|
+
xmlHashFree (xmlHashTablePtr table,
|
113
|
+
xmlHashDeallocator f);
|
114
|
+
XMLPUBFUN void XMLCALL
|
115
|
+
xmlHashDefaultDeallocator(void *entry,
|
116
|
+
const xmlChar *name);
|
117
|
+
|
118
|
+
/*
|
119
|
+
* Add a new entry to the hash table.
|
120
|
+
*/
|
121
|
+
XMLPUBFUN int XMLCALL
|
122
|
+
xmlHashAddEntry (xmlHashTablePtr table,
|
123
|
+
const xmlChar *name,
|
124
|
+
void *userdata);
|
125
|
+
XMLPUBFUN int XMLCALL
|
126
|
+
xmlHashUpdateEntry(xmlHashTablePtr table,
|
127
|
+
const xmlChar *name,
|
128
|
+
void *userdata,
|
129
|
+
xmlHashDeallocator f);
|
130
|
+
XMLPUBFUN int XMLCALL
|
131
|
+
xmlHashAddEntry2(xmlHashTablePtr table,
|
132
|
+
const xmlChar *name,
|
133
|
+
const xmlChar *name2,
|
134
|
+
void *userdata);
|
135
|
+
XMLPUBFUN int XMLCALL
|
136
|
+
xmlHashUpdateEntry2(xmlHashTablePtr table,
|
137
|
+
const xmlChar *name,
|
138
|
+
const xmlChar *name2,
|
139
|
+
void *userdata,
|
140
|
+
xmlHashDeallocator f);
|
141
|
+
XMLPUBFUN int XMLCALL
|
142
|
+
xmlHashAddEntry3(xmlHashTablePtr table,
|
143
|
+
const xmlChar *name,
|
144
|
+
const xmlChar *name2,
|
145
|
+
const xmlChar *name3,
|
146
|
+
void *userdata);
|
147
|
+
XMLPUBFUN int XMLCALL
|
148
|
+
xmlHashUpdateEntry3(xmlHashTablePtr table,
|
149
|
+
const xmlChar *name,
|
150
|
+
const xmlChar *name2,
|
151
|
+
const xmlChar *name3,
|
152
|
+
void *userdata,
|
153
|
+
xmlHashDeallocator f);
|
154
|
+
|
155
|
+
/*
|
156
|
+
* Remove an entry from the hash table.
|
157
|
+
*/
|
158
|
+
XMLPUBFUN int XMLCALL
|
159
|
+
xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,
|
160
|
+
xmlHashDeallocator f);
|
161
|
+
XMLPUBFUN int XMLCALL
|
162
|
+
xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,
|
163
|
+
const xmlChar *name2, xmlHashDeallocator f);
|
164
|
+
XMLPUBFUN int XMLCALL
|
165
|
+
xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
|
166
|
+
const xmlChar *name2, const xmlChar *name3,
|
167
|
+
xmlHashDeallocator f);
|
168
|
+
|
169
|
+
/*
|
170
|
+
* Retrieve the userdata.
|
171
|
+
*/
|
172
|
+
XMLPUBFUN void * XMLCALL
|
173
|
+
xmlHashLookup (xmlHashTablePtr table,
|
174
|
+
const xmlChar *name);
|
175
|
+
XMLPUBFUN void * XMLCALL
|
176
|
+
xmlHashLookup2 (xmlHashTablePtr table,
|
177
|
+
const xmlChar *name,
|
178
|
+
const xmlChar *name2);
|
179
|
+
XMLPUBFUN void * XMLCALL
|
180
|
+
xmlHashLookup3 (xmlHashTablePtr table,
|
181
|
+
const xmlChar *name,
|
182
|
+
const xmlChar *name2,
|
183
|
+
const xmlChar *name3);
|
184
|
+
XMLPUBFUN void * XMLCALL
|
185
|
+
xmlHashQLookup (xmlHashTablePtr table,
|
186
|
+
const xmlChar *name,
|
187
|
+
const xmlChar *prefix);
|
188
|
+
XMLPUBFUN void * XMLCALL
|
189
|
+
xmlHashQLookup2 (xmlHashTablePtr table,
|
190
|
+
const xmlChar *name,
|
191
|
+
const xmlChar *prefix,
|
192
|
+
const xmlChar *name2,
|
193
|
+
const xmlChar *prefix2);
|
194
|
+
XMLPUBFUN void * XMLCALL
|
195
|
+
xmlHashQLookup3 (xmlHashTablePtr table,
|
196
|
+
const xmlChar *name,
|
197
|
+
const xmlChar *prefix,
|
198
|
+
const xmlChar *name2,
|
199
|
+
const xmlChar *prefix2,
|
200
|
+
const xmlChar *name3,
|
201
|
+
const xmlChar *prefix3);
|
202
|
+
|
203
|
+
/*
|
204
|
+
* Helpers.
|
205
|
+
*/
|
206
|
+
XMLPUBFUN xmlHashTablePtr XMLCALL
|
207
|
+
xmlHashCopy (xmlHashTablePtr table,
|
208
|
+
xmlHashCopier f);
|
209
|
+
XMLPUBFUN int XMLCALL
|
210
|
+
xmlHashSize (xmlHashTablePtr table);
|
211
|
+
XMLPUBFUN void XMLCALL
|
212
|
+
xmlHashScan (xmlHashTablePtr table,
|
213
|
+
xmlHashScanner f,
|
214
|
+
void *data);
|
215
|
+
XMLPUBFUN void XMLCALL
|
216
|
+
xmlHashScan3 (xmlHashTablePtr table,
|
217
|
+
const xmlChar *name,
|
218
|
+
const xmlChar *name2,
|
219
|
+
const xmlChar *name3,
|
220
|
+
xmlHashScanner f,
|
221
|
+
void *data);
|
222
|
+
XMLPUBFUN void XMLCALL
|
223
|
+
xmlHashScanFull (xmlHashTablePtr table,
|
224
|
+
xmlHashScannerFull f,
|
225
|
+
void *data);
|
226
|
+
XMLPUBFUN void XMLCALL
|
227
|
+
xmlHashScanFull3(xmlHashTablePtr table,
|
228
|
+
const xmlChar *name,
|
229
|
+
const xmlChar *name2,
|
230
|
+
const xmlChar *name3,
|
231
|
+
xmlHashScannerFull f,
|
232
|
+
void *data);
|
233
|
+
#ifdef __cplusplus
|
234
|
+
}
|
235
|
+
#endif
|
236
|
+
#endif /* ! __XML_HASH_H__ */
|
@@ -0,0 +1,137 @@
|
|
1
|
+
/*
|
2
|
+
* Summary: lists interfaces
|
3
|
+
* Description: this module implement the list support used in
|
4
|
+
* various place in the library.
|
5
|
+
*
|
6
|
+
* Copy: See Copyright for the status of this software.
|
7
|
+
*
|
8
|
+
* Author: Gary Pennington <Gary.Pennington@uk.sun.com>
|
9
|
+
*/
|
10
|
+
|
11
|
+
#ifndef __XML_LINK_INCLUDE__
|
12
|
+
#define __XML_LINK_INCLUDE__
|
13
|
+
|
14
|
+
#include <libxml/xmlversion.h>
|
15
|
+
|
16
|
+
#ifdef __cplusplus
|
17
|
+
extern "C" {
|
18
|
+
#endif
|
19
|
+
|
20
|
+
typedef struct _xmlLink xmlLink;
|
21
|
+
typedef xmlLink *xmlLinkPtr;
|
22
|
+
|
23
|
+
typedef struct _xmlList xmlList;
|
24
|
+
typedef xmlList *xmlListPtr;
|
25
|
+
|
26
|
+
/**
|
27
|
+
* xmlListDeallocator:
|
28
|
+
* @lk: the data to deallocate
|
29
|
+
*
|
30
|
+
* Callback function used to free data from a list.
|
31
|
+
*/
|
32
|
+
typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
|
33
|
+
/**
|
34
|
+
* xmlListDataCompare:
|
35
|
+
* @data0: the first data
|
36
|
+
* @data1: the second data
|
37
|
+
*
|
38
|
+
* Callback function used to compare 2 data.
|
39
|
+
*
|
40
|
+
* Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
|
41
|
+
*/
|
42
|
+
typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
|
43
|
+
/**
|
44
|
+
* xmlListWalker:
|
45
|
+
* @data: the data found in the list
|
46
|
+
* @user: extra user provided data to the walker
|
47
|
+
*
|
48
|
+
* Callback function used when walking a list with xmlListWalk().
|
49
|
+
*
|
50
|
+
* Returns 0 to stop walking the list, 1 otherwise.
|
51
|
+
*/
|
52
|
+
typedef int (*xmlListWalker) (const void *data, void *user);
|
53
|
+
|
54
|
+
/* Creation/Deletion */
|
55
|
+
XMLPUBFUN xmlListPtr XMLCALL
|
56
|
+
xmlListCreate (xmlListDeallocator deallocator,
|
57
|
+
xmlListDataCompare compare);
|
58
|
+
XMLPUBFUN void XMLCALL
|
59
|
+
xmlListDelete (xmlListPtr l);
|
60
|
+
|
61
|
+
/* Basic Operators */
|
62
|
+
XMLPUBFUN void * XMLCALL
|
63
|
+
xmlListSearch (xmlListPtr l,
|
64
|
+
void *data);
|
65
|
+
XMLPUBFUN void * XMLCALL
|
66
|
+
xmlListReverseSearch (xmlListPtr l,
|
67
|
+
void *data);
|
68
|
+
XMLPUBFUN int XMLCALL
|
69
|
+
xmlListInsert (xmlListPtr l,
|
70
|
+
void *data) ;
|
71
|
+
XMLPUBFUN int XMLCALL
|
72
|
+
xmlListAppend (xmlListPtr l,
|
73
|
+
void *data) ;
|
74
|
+
XMLPUBFUN int XMLCALL
|
75
|
+
xmlListRemoveFirst (xmlListPtr l,
|
76
|
+
void *data);
|
77
|
+
XMLPUBFUN int XMLCALL
|
78
|
+
xmlListRemoveLast (xmlListPtr l,
|
79
|
+
void *data);
|
80
|
+
XMLPUBFUN int XMLCALL
|
81
|
+
xmlListRemoveAll (xmlListPtr l,
|
82
|
+
void *data);
|
83
|
+
XMLPUBFUN void XMLCALL
|
84
|
+
xmlListClear (xmlListPtr l);
|
85
|
+
XMLPUBFUN int XMLCALL
|
86
|
+
xmlListEmpty (xmlListPtr l);
|
87
|
+
XMLPUBFUN xmlLinkPtr XMLCALL
|
88
|
+
xmlListFront (xmlListPtr l);
|
89
|
+
XMLPUBFUN xmlLinkPtr XMLCALL
|
90
|
+
xmlListEnd (xmlListPtr l);
|
91
|
+
XMLPUBFUN int XMLCALL
|
92
|
+
xmlListSize (xmlListPtr l);
|
93
|
+
|
94
|
+
XMLPUBFUN void XMLCALL
|
95
|
+
xmlListPopFront (xmlListPtr l);
|
96
|
+
XMLPUBFUN void XMLCALL
|
97
|
+
xmlListPopBack (xmlListPtr l);
|
98
|
+
XMLPUBFUN int XMLCALL
|
99
|
+
xmlListPushFront (xmlListPtr l,
|
100
|
+
void *data);
|
101
|
+
XMLPUBFUN int XMLCALL
|
102
|
+
xmlListPushBack (xmlListPtr l,
|
103
|
+
void *data);
|
104
|
+
|
105
|
+
/* Advanced Operators */
|
106
|
+
XMLPUBFUN void XMLCALL
|
107
|
+
xmlListReverse (xmlListPtr l);
|
108
|
+
XMLPUBFUN void XMLCALL
|
109
|
+
xmlListSort (xmlListPtr l);
|
110
|
+
XMLPUBFUN void XMLCALL
|
111
|
+
xmlListWalk (xmlListPtr l,
|
112
|
+
xmlListWalker walker,
|
113
|
+
void *user);
|
114
|
+
XMLPUBFUN void XMLCALL
|
115
|
+
xmlListReverseWalk (xmlListPtr l,
|
116
|
+
xmlListWalker walker,
|
117
|
+
void *user);
|
118
|
+
XMLPUBFUN void XMLCALL
|
119
|
+
xmlListMerge (xmlListPtr l1,
|
120
|
+
xmlListPtr l2);
|
121
|
+
XMLPUBFUN xmlListPtr XMLCALL
|
122
|
+
xmlListDup (const xmlListPtr old);
|
123
|
+
XMLPUBFUN int XMLCALL
|
124
|
+
xmlListCopy (xmlListPtr cur,
|
125
|
+
const xmlListPtr old);
|
126
|
+
/* Link operators */
|
127
|
+
XMLPUBFUN void * XMLCALL
|
128
|
+
xmlLinkGetData (xmlLinkPtr lk);
|
129
|
+
|
130
|
+
/* xmlListUnique() */
|
131
|
+
/* xmlListSwap */
|
132
|
+
|
133
|
+
#ifdef __cplusplus
|
134
|
+
}
|
135
|
+
#endif
|
136
|
+
|
137
|
+
#endif /* __XML_LINK_INCLUDE__ */
|
@@ -0,0 +1,163 @@
|
|
1
|
+
/*
|
2
|
+
* Summary: minimal FTP implementation
|
3
|
+
* Description: minimal FTP implementation allowing to fetch resources
|
4
|
+
* like external subset.
|
5
|
+
*
|
6
|
+
* Copy: See Copyright for the status of this software.
|
7
|
+
*
|
8
|
+
* Author: Daniel Veillard
|
9
|
+
*/
|
10
|
+
|
11
|
+
#ifndef __NANO_FTP_H__
|
12
|
+
#define __NANO_FTP_H__
|
13
|
+
|
14
|
+
#include <libxml/xmlversion.h>
|
15
|
+
|
16
|
+
#ifdef LIBXML_FTP_ENABLED
|
17
|
+
|
18
|
+
/* Needed for portability to Windows 64 bits */
|
19
|
+
#if defined(_WIN32) && !defined(__CYGWIN__)
|
20
|
+
#include <winsock2.h>
|
21
|
+
#else
|
22
|
+
/**
|
23
|
+
* SOCKET:
|
24
|
+
*
|
25
|
+
* macro used to provide portability of code to windows sockets
|
26
|
+
*/
|
27
|
+
#define SOCKET int
|
28
|
+
/**
|
29
|
+
* INVALID_SOCKET:
|
30
|
+
*
|
31
|
+
* macro used to provide portability of code to windows sockets
|
32
|
+
* the value to be used when the socket is not valid
|
33
|
+
*/
|
34
|
+
#undef INVALID_SOCKET
|
35
|
+
#define INVALID_SOCKET (-1)
|
36
|
+
#endif
|
37
|
+
|
38
|
+
#ifdef __cplusplus
|
39
|
+
extern "C" {
|
40
|
+
#endif
|
41
|
+
|
42
|
+
/**
|
43
|
+
* ftpListCallback:
|
44
|
+
* @userData: user provided data for the callback
|
45
|
+
* @filename: the file name (including "->" when links are shown)
|
46
|
+
* @attrib: the attribute string
|
47
|
+
* @owner: the owner string
|
48
|
+
* @group: the group string
|
49
|
+
* @size: the file size
|
50
|
+
* @links: the link count
|
51
|
+
* @year: the year
|
52
|
+
* @month: the month
|
53
|
+
* @day: the day
|
54
|
+
* @hour: the hour
|
55
|
+
* @minute: the minute
|
56
|
+
*
|
57
|
+
* A callback for the xmlNanoFTPList command.
|
58
|
+
* Note that only one of year and day:minute are specified.
|
59
|
+
*/
|
60
|
+
typedef void (*ftpListCallback) (void *userData,
|
61
|
+
const char *filename, const char *attrib,
|
62
|
+
const char *owner, const char *group,
|
63
|
+
unsigned long size, int links, int year,
|
64
|
+
const char *month, int day, int hour,
|
65
|
+
int minute);
|
66
|
+
/**
|
67
|
+
* ftpDataCallback:
|
68
|
+
* @userData: the user provided context
|
69
|
+
* @data: the data received
|
70
|
+
* @len: its size in bytes
|
71
|
+
*
|
72
|
+
* A callback for the xmlNanoFTPGet command.
|
73
|
+
*/
|
74
|
+
typedef void (*ftpDataCallback) (void *userData,
|
75
|
+
const char *data,
|
76
|
+
int len);
|
77
|
+
|
78
|
+
/*
|
79
|
+
* Init
|
80
|
+
*/
|
81
|
+
XMLPUBFUN void XMLCALL
|
82
|
+
xmlNanoFTPInit (void);
|
83
|
+
XMLPUBFUN void XMLCALL
|
84
|
+
xmlNanoFTPCleanup (void);
|
85
|
+
|
86
|
+
/*
|
87
|
+
* Creating/freeing contexts.
|
88
|
+
*/
|
89
|
+
XMLPUBFUN void * XMLCALL
|
90
|
+
xmlNanoFTPNewCtxt (const char *URL);
|
91
|
+
XMLPUBFUN void XMLCALL
|
92
|
+
xmlNanoFTPFreeCtxt (void * ctx);
|
93
|
+
XMLPUBFUN void * XMLCALL
|
94
|
+
xmlNanoFTPConnectTo (const char *server,
|
95
|
+
int port);
|
96
|
+
/*
|
97
|
+
* Opening/closing session connections.
|
98
|
+
*/
|
99
|
+
XMLPUBFUN void * XMLCALL
|
100
|
+
xmlNanoFTPOpen (const char *URL);
|
101
|
+
XMLPUBFUN int XMLCALL
|
102
|
+
xmlNanoFTPConnect (void *ctx);
|
103
|
+
XMLPUBFUN int XMLCALL
|
104
|
+
xmlNanoFTPClose (void *ctx);
|
105
|
+
XMLPUBFUN int XMLCALL
|
106
|
+
xmlNanoFTPQuit (void *ctx);
|
107
|
+
XMLPUBFUN void XMLCALL
|
108
|
+
xmlNanoFTPScanProxy (const char *URL);
|
109
|
+
XMLPUBFUN void XMLCALL
|
110
|
+
xmlNanoFTPProxy (const char *host,
|
111
|
+
int port,
|
112
|
+
const char *user,
|
113
|
+
const char *passwd,
|
114
|
+
int type);
|
115
|
+
XMLPUBFUN int XMLCALL
|
116
|
+
xmlNanoFTPUpdateURL (void *ctx,
|
117
|
+
const char *URL);
|
118
|
+
|
119
|
+
/*
|
120
|
+
* Rather internal commands.
|
121
|
+
*/
|
122
|
+
XMLPUBFUN int XMLCALL
|
123
|
+
xmlNanoFTPGetResponse (void *ctx);
|
124
|
+
XMLPUBFUN int XMLCALL
|
125
|
+
xmlNanoFTPCheckResponse (void *ctx);
|
126
|
+
|
127
|
+
/*
|
128
|
+
* CD/DIR/GET handlers.
|
129
|
+
*/
|
130
|
+
XMLPUBFUN int XMLCALL
|
131
|
+
xmlNanoFTPCwd (void *ctx,
|
132
|
+
const char *directory);
|
133
|
+
XMLPUBFUN int XMLCALL
|
134
|
+
xmlNanoFTPDele (void *ctx,
|
135
|
+
const char *file);
|
136
|
+
|
137
|
+
XMLPUBFUN SOCKET XMLCALL
|
138
|
+
xmlNanoFTPGetConnection (void *ctx);
|
139
|
+
XMLPUBFUN int XMLCALL
|
140
|
+
xmlNanoFTPCloseConnection(void *ctx);
|
141
|
+
XMLPUBFUN int XMLCALL
|
142
|
+
xmlNanoFTPList (void *ctx,
|
143
|
+
ftpListCallback callback,
|
144
|
+
void *userData,
|
145
|
+
const char *filename);
|
146
|
+
XMLPUBFUN SOCKET XMLCALL
|
147
|
+
xmlNanoFTPGetSocket (void *ctx,
|
148
|
+
const char *filename);
|
149
|
+
XMLPUBFUN int XMLCALL
|
150
|
+
xmlNanoFTPGet (void *ctx,
|
151
|
+
ftpDataCallback callback,
|
152
|
+
void *userData,
|
153
|
+
const char *filename);
|
154
|
+
XMLPUBFUN int XMLCALL
|
155
|
+
xmlNanoFTPRead (void *ctx,
|
156
|
+
void *dest,
|
157
|
+
int len);
|
158
|
+
|
159
|
+
#ifdef __cplusplus
|
160
|
+
}
|
161
|
+
#endif
|
162
|
+
#endif /* LIBXML_FTP_ENABLED */
|
163
|
+
#endif /* __NANO_FTP_H__ */
|