nokogiri 1.11.0.rc1-x64-mingw32 → 1.11.1-x64-mingw32

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.

Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/LICENSE-DEPENDENCIES.md +1015 -947
  4. data/README.md +164 -92
  5. data/ext/nokogiri/depend +476 -357
  6. data/ext/nokogiri/extconf.rb +467 -326
  7. data/ext/nokogiri/html_document.c +79 -78
  8. data/ext/nokogiri/html_sax_parser_context.c +4 -2
  9. data/ext/nokogiri/html_sax_push_parser.c +14 -8
  10. data/ext/nokogiri/include/libexslt/exslt.h +102 -0
  11. data/ext/nokogiri/include/libexslt/exsltconfig.h +70 -0
  12. data/ext/nokogiri/include/libexslt/exsltexports.h +140 -0
  13. data/ext/nokogiri/include/libxml2/libxml/DOCBparser.h +96 -0
  14. data/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +306 -0
  15. data/ext/nokogiri/include/libxml2/libxml/HTMLtree.h +147 -0
  16. data/ext/nokogiri/include/libxml2/libxml/SAX.h +173 -0
  17. data/ext/nokogiri/include/libxml2/libxml/SAX2.h +178 -0
  18. data/ext/nokogiri/include/libxml2/libxml/c14n.h +126 -0
  19. data/ext/nokogiri/include/libxml2/libxml/catalog.h +182 -0
  20. data/ext/nokogiri/include/libxml2/libxml/chvalid.h +230 -0
  21. data/ext/nokogiri/include/libxml2/libxml/debugXML.h +217 -0
  22. data/ext/nokogiri/include/libxml2/libxml/dict.h +79 -0
  23. data/ext/nokogiri/include/libxml2/libxml/encoding.h +245 -0
  24. data/ext/nokogiri/include/libxml2/libxml/entities.h +151 -0
  25. data/ext/nokogiri/include/libxml2/libxml/globals.h +508 -0
  26. data/ext/nokogiri/include/libxml2/libxml/hash.h +236 -0
  27. data/ext/nokogiri/include/libxml2/libxml/list.h +137 -0
  28. data/ext/nokogiri/include/libxml2/libxml/nanoftp.h +163 -0
  29. data/ext/nokogiri/include/libxml2/libxml/nanohttp.h +81 -0
  30. data/ext/nokogiri/include/libxml2/libxml/parser.h +1241 -0
  31. data/ext/nokogiri/include/libxml2/libxml/parserInternals.h +644 -0
  32. data/ext/nokogiri/include/libxml2/libxml/pattern.h +100 -0
  33. data/ext/nokogiri/include/libxml2/libxml/relaxng.h +217 -0
  34. data/ext/nokogiri/include/libxml2/libxml/schemasInternals.h +958 -0
  35. data/ext/nokogiri/include/libxml2/libxml/schematron.h +142 -0
  36. data/ext/nokogiri/include/libxml2/libxml/threads.h +89 -0
  37. data/ext/nokogiri/include/libxml2/libxml/tree.h +1311 -0
  38. data/ext/nokogiri/include/libxml2/libxml/uri.h +94 -0
  39. data/ext/nokogiri/include/libxml2/libxml/valid.h +458 -0
  40. data/ext/nokogiri/include/libxml2/libxml/xinclude.h +129 -0
  41. data/ext/nokogiri/include/libxml2/libxml/xlink.h +189 -0
  42. data/ext/nokogiri/include/libxml2/libxml/xmlIO.h +366 -0
  43. data/ext/nokogiri/include/libxml2/libxml/xmlautomata.h +146 -0
  44. data/ext/nokogiri/include/libxml2/libxml/xmlerror.h +945 -0
  45. data/ext/nokogiri/include/libxml2/libxml/xmlexports.h +153 -0
  46. data/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +224 -0
  47. data/ext/nokogiri/include/libxml2/libxml/xmlmodule.h +57 -0
  48. data/ext/nokogiri/include/libxml2/libxml/xmlreader.h +428 -0
  49. data/ext/nokogiri/include/libxml2/libxml/xmlregexp.h +222 -0
  50. data/ext/nokogiri/include/libxml2/libxml/xmlsave.h +88 -0
  51. data/ext/nokogiri/include/libxml2/libxml/xmlschemas.h +246 -0
  52. data/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +151 -0
  53. data/ext/nokogiri/include/libxml2/libxml/xmlstring.h +140 -0
  54. data/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +202 -0
  55. data/ext/nokogiri/include/libxml2/libxml/xmlversion.h +485 -0
  56. data/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +488 -0
  57. data/ext/nokogiri/include/libxml2/libxml/xpath.h +566 -0
  58. data/ext/nokogiri/include/libxml2/libxml/xpathInternals.h +632 -0
  59. data/ext/nokogiri/include/libxml2/libxml/xpointer.h +114 -0
  60. data/ext/nokogiri/include/libxslt/attributes.h +38 -0
  61. data/ext/nokogiri/include/libxslt/documents.h +93 -0
  62. data/ext/nokogiri/include/libxslt/extensions.h +262 -0
  63. data/ext/nokogiri/include/libxslt/extra.h +72 -0
  64. data/ext/nokogiri/include/libxslt/functions.h +78 -0
  65. data/ext/nokogiri/include/libxslt/imports.h +75 -0
  66. data/ext/nokogiri/include/libxslt/keys.h +53 -0
  67. data/ext/nokogiri/include/libxslt/namespaces.h +68 -0
  68. data/ext/nokogiri/include/libxslt/numbersInternals.h +73 -0
  69. data/ext/nokogiri/include/libxslt/pattern.h +84 -0
  70. data/ext/nokogiri/include/libxslt/preproc.h +43 -0
  71. data/ext/nokogiri/include/libxslt/security.h +104 -0
  72. data/ext/nokogiri/include/libxslt/templates.h +77 -0
  73. data/ext/nokogiri/include/libxslt/transform.h +207 -0
  74. data/ext/nokogiri/include/libxslt/variables.h +118 -0
  75. data/ext/nokogiri/include/libxslt/xslt.h +110 -0
  76. data/ext/nokogiri/include/libxslt/xsltInternals.h +1978 -0
  77. data/ext/nokogiri/include/libxslt/xsltconfig.h +180 -0
  78. data/ext/nokogiri/include/libxslt/xsltexports.h +142 -0
  79. data/ext/nokogiri/include/libxslt/xsltlocale.h +76 -0
  80. data/ext/nokogiri/include/libxslt/xsltutils.h +313 -0
  81. data/ext/nokogiri/nokogiri.c +37 -46
  82. data/ext/nokogiri/nokogiri.h +25 -17
  83. data/ext/nokogiri/test_global_handlers.c +41 -0
  84. data/ext/nokogiri/xml_document.c +8 -3
  85. data/ext/nokogiri/xml_io.c +8 -6
  86. data/ext/nokogiri/xml_node.c +1 -1
  87. data/ext/nokogiri/xml_node_set.c +1 -1
  88. data/ext/nokogiri/xml_reader.c +6 -17
  89. data/ext/nokogiri/xml_relax_ng.c +29 -11
  90. data/ext/nokogiri/xml_sax_parser.c +2 -7
  91. data/ext/nokogiri/xml_sax_parser_context.c +4 -2
  92. data/ext/nokogiri/xml_sax_push_parser.c +2 -0
  93. data/ext/nokogiri/xml_schema.c +84 -13
  94. data/ext/nokogiri/xml_syntax_error.c +23 -0
  95. data/ext/nokogiri/xml_syntax_error.h +15 -3
  96. data/ext/nokogiri/xml_xpath_context.c +80 -4
  97. data/ext/nokogiri/xslt_stylesheet.c +1 -4
  98. data/lib/nokogiri.rb +20 -3
  99. data/lib/nokogiri/2.5/nokogiri.so +0 -0
  100. data/lib/nokogiri/2.6/nokogiri.so +0 -0
  101. data/lib/nokogiri/2.7/nokogiri.so +0 -0
  102. data/lib/nokogiri/3.0/nokogiri.so +0 -0
  103. data/lib/nokogiri/css/parser.rb +62 -62
  104. data/lib/nokogiri/css/parser.y +2 -2
  105. data/lib/nokogiri/css/parser_extras.rb +38 -36
  106. data/lib/nokogiri/css/xpath_visitor.rb +70 -42
  107. data/lib/nokogiri/html/document.rb +12 -26
  108. data/lib/nokogiri/version.rb +2 -148
  109. data/lib/nokogiri/version/constant.rb +5 -0
  110. data/lib/nokogiri/version/info.rb +182 -0
  111. data/lib/nokogiri/xml/builder.rb +2 -2
  112. data/lib/nokogiri/xml/document.rb +17 -7
  113. data/lib/nokogiri/xml/document_fragment.rb +4 -6
  114. data/lib/nokogiri/xml/node.rb +562 -238
  115. data/lib/nokogiri/xml/parse_options.rb +6 -0
  116. data/lib/nokogiri/xml/relax_ng.rb +6 -2
  117. data/lib/nokogiri/xml/schema.rb +12 -4
  118. data/lib/nokogiri/xml/searchable.rb +24 -16
  119. metadata +149 -130
  120. 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__ */