1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-12-25 23:21:26 +03:00

Released 1.8.6, Daniel.

This commit is contained in:
Daniel Veillard 2000-01-30 20:00:07 +00:00
parent f3be931a2e
commit e41f2b74c5
27 changed files with 1789 additions and 596 deletions

View File

@ -1,3 +1,14 @@
Mon Jan 31 14:25:57 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
* nanoftp.[ch]: cleanup, bug fixes, integration in rpmfind, added
xmlNanoFTPUpdateURL for persistent control connections.
* configure.in: 1.8.6
Thu Jan 27 17:52:29 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
* nanohttp.[ch], nanoftp.[ch]: cleanup, added proxy support
* tree.[ch] : added xmlSaveNoEmptyTags
2000-01-29 James Henstridge <james@daa.com.au>
* nanoftp.c: include <netinet/in.h> for IPPROTO_TCP.

View File

@ -5,7 +5,7 @@ AM_CONFIG_HEADER(config.h)
LIBXML_MAJOR_VERSION=1
LIBXML_MINOR_VERSION=8
LIBXML_MICRO_VERSION=5
LIBXML_MICRO_VERSION=6
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN12232"
NAME="AEN12350"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN12232"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN12235"
NAME="AEN12353"
></A
><H2
>Synopsis</H2
@ -304,7 +304,7 @@ HREF="FILE"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN12279"
NAME="AEN12397"
></A
><H2
>Description</H2
@ -314,14 +314,14 @@ NAME="AEN12279"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN12282"
NAME="AEN12400"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN12284"
NAME="AEN12402"
></A
><H3
><A
@ -403,7 +403,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12304"
NAME="AEN12422"
></A
><H3
><A
@ -503,7 +503,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12328"
NAME="AEN12446"
></A
><H3
><A
@ -603,7 +603,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12352"
NAME="AEN12470"
></A
><H3
><A
@ -703,7 +703,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12376"
NAME="AEN12494"
></A
><H3
><A
@ -803,7 +803,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12400"
NAME="AEN12518"
></A
><H3
><A
@ -903,7 +903,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12424"
NAME="AEN12542"
></A
><H3
><A
@ -985,7 +985,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12444"
NAME="AEN12562"
></A
><H3
><A
@ -1067,7 +1067,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12464"
NAME="AEN12582"
></A
><H3
><A
@ -1149,7 +1149,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12484"
NAME="AEN12602"
></A
><H3
><A
@ -1231,7 +1231,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12504"
NAME="AEN12622"
></A
><H3
><A
@ -1304,7 +1304,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12522"
NAME="AEN12640"
></A
><H3
><A
@ -1338,7 +1338,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12527"
NAME="AEN12645"
></A
><H3
><A
@ -1364,7 +1364,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12532"
NAME="AEN12650"
></A
><H3
><A
@ -1500,7 +1500,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12565"
NAME="AEN12683"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN12015"
NAME="AEN12133"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN12015"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN12018"
NAME="AEN12136"
></A
><H2
>Synopsis</H2
@ -219,7 +219,7 @@ HREF="gnome-xml-encoding.html#XMLFINDCHARENCODINGHANDLER"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN12039"
NAME="AEN12157"
></A
><H2
>Description</H2
@ -229,14 +229,14 @@ NAME="AEN12039"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN12042"
NAME="AEN12160"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN12044"
NAME="AEN12162"
></A
><H3
><A
@ -286,7 +286,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12049"
NAME="AEN12167"
></A
><H3
><A
@ -413,7 +413,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12079"
NAME="AEN12197"
></A
><H3
><A
@ -540,7 +540,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12109"
NAME="AEN12227"
></A
><H3
><A
@ -570,7 +570,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12114"
NAME="AEN12232"
></A
><H3
><A
@ -596,7 +596,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12119"
NAME="AEN12237"
></A
><H3
><A
@ -627,7 +627,7 @@ in normal processing.</P
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12125"
NAME="AEN12243"
></A
><H3
><A
@ -656,7 +656,7 @@ unregisters all the encoding handlers.</P
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12131"
NAME="AEN12249"
></A
><H3
><A
@ -719,7 +719,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12147"
NAME="AEN12265"
></A
><H3
><A
@ -799,7 +799,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12167"
NAME="AEN12285"
></A
><H3
><A
@ -880,7 +880,7 @@ if not recognized.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12187"
NAME="AEN12305"
></A
><H3
><A
@ -962,7 +962,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12208"
NAME="AEN12326"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN5870"
NAME="AEN5876"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN5870"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN5873"
NAME="AEN5879"
></A
><H2
>Synopsis</H2
@ -356,7 +356,7 @@ HREF="gnome-xml-entities.html#XMLCLEANUPPREDEFINEDENTITIES"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5933"
NAME="AEN5939"
></A
><H2
>Description</H2
@ -366,14 +366,14 @@ NAME="AEN5933"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5936"
NAME="AEN5942"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN5938"
NAME="AEN5944"
></A
><H3
><A
@ -399,7 +399,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5943"
NAME="AEN5949"
></A
><H3
><A
@ -425,7 +425,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5948"
NAME="AEN5954"
></A
><H3
><A
@ -451,7 +451,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5953"
NAME="AEN5959"
></A
><H3
><A
@ -477,7 +477,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5958"
NAME="AEN5964"
></A
><H3
><A
@ -503,7 +503,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5963"
NAME="AEN5969"
></A
><H3
><A
@ -529,7 +529,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5968"
NAME="AEN5974"
></A
><H3
><A
@ -564,7 +564,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5973"
NAME="AEN5979"
></A
><H3
><A
@ -590,7 +590,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5978"
NAME="AEN5984"
></A
><H3
><A
@ -616,7 +616,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5983"
NAME="AEN5989"
></A
><H3
><A
@ -646,7 +646,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5988"
NAME="AEN5994"
></A
><H3
><A
@ -672,7 +672,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5993"
NAME="AEN5999"
></A
><H3
><A
@ -837,7 +837,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6033"
NAME="AEN6039"
></A
><H3
><A
@ -1002,7 +1002,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6073"
NAME="AEN6079"
></A
><H3
><A
@ -1083,7 +1083,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6094"
NAME="AEN6100"
></A
><H3
><A
@ -1187,7 +1187,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6120"
NAME="AEN6126"
></A
><H3
><A
@ -1290,7 +1290,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6146"
NAME="AEN6152"
></A
><H3
><A
@ -1393,7 +1393,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6172"
NAME="AEN6178"
></A
><H3
><A
@ -1502,7 +1502,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6200"
NAME="AEN6206"
></A
><H3
><A
@ -1610,7 +1610,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6227"
NAME="AEN6233"
></A
><H3
><A
@ -1671,7 +1671,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6243"
NAME="AEN6249"
></A
><H3
><A
@ -1752,7 +1752,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6264"
NAME="AEN6270"
></A
><H3
><A
@ -1815,7 +1815,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6280"
NAME="AEN6286"
></A
><H3
><A
@ -1899,7 +1899,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6301"
NAME="AEN6307"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN8057"
NAME="AEN8063"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN8057"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN8060"
NAME="AEN8066"
></A
><H2
>Synopsis</H2
@ -354,7 +354,7 @@ HREF="gnome-xml-htmlparser.html#HTMLPARSERCTXTPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8117"
NAME="AEN8123"
></A
><H2
>Description</H2
@ -364,14 +364,14 @@ NAME="AEN8117"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8120"
NAME="AEN8126"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN8122"
NAME="AEN8128"
></A
><H3
><A
@ -397,7 +397,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8127"
NAME="AEN8133"
></A
><H3
><A
@ -423,7 +423,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8132"
NAME="AEN8138"
></A
><H3
><A
@ -449,7 +449,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8137"
NAME="AEN8143"
></A
><H3
><A
@ -475,7 +475,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8142"
NAME="AEN8148"
></A
><H3
><A
@ -501,7 +501,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8147"
NAME="AEN8153"
></A
><H3
><A
@ -527,7 +527,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8152"
NAME="AEN8158"
></A
><H3
><A
@ -553,7 +553,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8157"
NAME="AEN8163"
></A
><H3
><A
@ -579,7 +579,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8162"
NAME="AEN8168"
></A
><H3
><A
@ -605,7 +605,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8167"
NAME="AEN8173"
></A
><H3
><A
@ -639,7 +639,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8172"
NAME="AEN8178"
></A
><H3
><A
@ -665,7 +665,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8177"
NAME="AEN8183"
></A
><H3
><A
@ -695,7 +695,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8182"
NAME="AEN8188"
></A
><H3
><A
@ -721,7 +721,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8187"
NAME="AEN8193"
></A
><H3
><A
@ -802,7 +802,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8208"
NAME="AEN8214"
></A
><H3
><A
@ -885,7 +885,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8230"
NAME="AEN8236"
></A
><H3
><A
@ -986,7 +986,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8255"
NAME="AEN8261"
></A
><H3
><A
@ -1109,7 +1109,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8285"
NAME="AEN8291"
></A
><H3
><A
@ -1214,7 +1214,7 @@ if non-NULL *str will have to be freed by the caller.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8312"
NAME="AEN8318"
></A
><H3
><A
@ -1298,7 +1298,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8334"
NAME="AEN8340"
></A
><H3
><A
@ -1365,7 +1365,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8352"
NAME="AEN8358"
></A
><H3
><A
@ -1505,7 +1505,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8386"
NAME="AEN8392"
></A
><H3
><A
@ -1604,7 +1604,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8411"
NAME="AEN8417"
></A
><H3
><A
@ -1742,7 +1742,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8444"
NAME="AEN8450"
></A
><H3
><A
@ -1839,7 +1839,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8468"
NAME="AEN8474"
></A
><H3
><A
@ -1903,7 +1903,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8484"
NAME="AEN8490"
></A
><H3
><A
@ -2090,7 +2090,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8528"
NAME="AEN8534"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN8565"
NAME="AEN8571"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN8565"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN8568"
NAME="AEN8574"
></A
><H2
>Synopsis</H2
@ -188,7 +188,7 @@ HREF="gnome-xml-tree.html#XMLDOCPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8582"
NAME="AEN8588"
></A
><H2
>Description</H2
@ -198,14 +198,14 @@ NAME="AEN8582"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8585"
NAME="AEN8591"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN8587"
NAME="AEN8593"
></A
><H3
><A
@ -231,7 +231,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8592"
NAME="AEN8598"
></A
><H3
><A
@ -257,7 +257,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8597"
NAME="AEN8603"
></A
><H3
><A
@ -283,7 +283,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8602"
NAME="AEN8608"
></A
><H3
><A
@ -386,7 +386,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8627"
NAME="AEN8633"
></A
><H3
><A
@ -470,7 +470,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8648"
NAME="AEN8654"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN9291"
NAME="AEN9326"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN9291"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN9294"
NAME="AEN9329"
></A
><H2
>Synopsis</H2
@ -154,6 +154,7 @@ HREF="LONG"
int year,
const char *month,
int day,
int hour,
int minute);
void (<A
HREF="gnome-xml-nanoftp.html#FTPDATACALLBACK"
@ -165,6 +166,10 @@ void <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPINIT"
>xmlNanoFTPInit</A
> (void);
void <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPCLEANUP"
>xmlNanoFTPCleanup</A
> (void);
void* <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPNEWCTXT"
>xmlNanoFTPNewCtxt</A
@ -194,6 +199,23 @@ int <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPQUIT"
>xmlNanoFTPQuit</A
> (void *ctx);
void <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPSCANPROXY"
>xmlNanoFTPScanProxy</A
> (const char *URL);
void <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPPROXY"
>xmlNanoFTPProxy</A
> (const char *host,
int port,
const char *user,
const char *passwd,
int type);
int <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPUPDATEURL"
>xmlNanoFTPUpdateURL</A
> (void *ctx,
const char *URL);
int <A
HREF="gnome-xml-nanoftp.html#XMLNANOFTPGETRESPONSE"
>xmlNanoFTPGetResponse</A
@ -253,7 +275,7 @@ HREF="gnome-xml-nanoftp.html#XMLNANOFTPREAD"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN9319"
NAME="AEN9358"
></A
><H2
>Description</H2
@ -263,14 +285,14 @@ NAME="AEN9319"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN9322"
NAME="AEN9361"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN9324"
NAME="AEN9363"
></A
><H3
><A
@ -299,6 +321,7 @@ HREF="LONG"
int year,
const char *month,
int day,
int hour,
int minute);</PRE
></TD
></TR
@ -494,6 +517,23 @@ VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>hour</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>minute</I
></TT
>&nbsp;:</TD
@ -511,7 +551,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9379"
NAME="AEN9422"
></A
><H3
><A
@ -605,7 +645,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9401"
NAME="AEN9444"
></A
><H3
><A
@ -626,14 +666,42 @@ CLASS="PROGRAMLISTING"
></TR
></TABLE
><P
>Initialize the FTP handling.</P
>Initialize the FTP protocol layer.
Currently it just checks for proxy informations,
and get the hostname</P
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9407"
NAME="AEN9450"
></A
><H3
><A
NAME="XMLNANOFTPCLEANUP"
></A
>xmlNanoFTPCleanup ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xmlNanoFTPCleanup (void);</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9455"
></A
><H3
><A
@ -693,7 +761,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9422"
NAME="AEN9470"
></A
><H3
><A
@ -753,7 +821,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9437"
NAME="AEN9485"
></A
><H3
><A
@ -831,7 +899,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9456"
NAME="AEN9504"
></A
><H3
><A
@ -891,7 +959,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9471"
NAME="AEN9519"
></A
><H3
><A
@ -966,7 +1034,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9490"
NAME="AEN9538"
></A
><H3
><A
@ -1041,7 +1109,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9509"
NAME="AEN9557"
></A
><H3
><A
@ -1116,7 +1184,306 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9528"
NAME="AEN9576"
></A
><H3
><A
NAME="XMLNANOFTPSCANPROXY"
></A
>xmlNanoFTPScanProxy ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xmlNanoFTPScanProxy (const char *URL);</PRE
></TD
></TR
></TABLE
><P
>(Re)Initialize the FTP Proxy context by parsing the URL and finding
the protocol host port it indicates.
Should be like ftp://myproxy/ or ftp://myproxy:3128/
A NULL URL cleans up proxy informations.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>URL</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> The proxy URL used to initialize the proxy context</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9591"
></A
><H3
><A
NAME="XMLNANOFTPPROXY"
></A
>xmlNanoFTPProxy ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xmlNanoFTPProxy (const char *host,
int port,
const char *user,
const char *passwd,
int type);</PRE
></TD
></TR
></TABLE
><P
>Setup the FTP proxy informations.
This can also be done by using ftp_proxy ftp_proxy_user and
ftp_proxy_password environment variables.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>host</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the proxy host name</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>port</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the proxy port</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>user</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the proxy user name</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>passwd</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the proxy password</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>type</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the type of proxy 1 for using SITE, 2 for USER a<TT
CLASS="PARAMETER"
><I
>b</I
></TT
></TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9623"
></A
><H3
><A
NAME="XMLNANOFTPUPDATEURL"
></A
>xmlNanoFTPUpdateURL ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xmlNanoFTPUpdateURL (void *ctx,
const char *URL);</PRE
></TD
></TR
></TABLE
><P
>Update an FTP context by parsing the URL and finding
new path it indicates. If there is an error in the
protocol, hostname, port or other information, the
error is raised. It indicates a new connection has to
be established.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> an FTP context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>URL</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> The URL used to update the context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>0 if Ok, -1 in case of error (other host).</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9646"
></A
><H3
><A
@ -1191,7 +1558,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9547"
NAME="AEN9665"
></A
><H3
><A
@ -1266,7 +1633,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9566"
NAME="AEN9684"
></A
><H3
><A
@ -1357,7 +1724,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9588"
NAME="AEN9706"
></A
><H3
><A
@ -1433,7 +1800,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9607"
NAME="AEN9725"
></A
><H3
><A
@ -1508,7 +1875,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9626"
NAME="AEN9744"
></A
><H3
><A
@ -1641,7 +2008,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9658"
NAME="AEN9776"
></A
><H3
><A
@ -1709,7 +2076,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the file to retrieve</TD
> the file to retrieve (or NULL if path is in context).</TD
></TR
><TR
><TD
@ -1734,7 +2101,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9681"
NAME="AEN9799"
></A
><H3
><A
@ -1867,7 +2234,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9713"
NAME="AEN9831"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN9104"
NAME="AEN9110"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN9104"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN9107"
NAME="AEN9113"
></A
><H2
>Synopsis</H2
@ -138,6 +138,18 @@ CELLPADDING="6"
CLASS="SYNOPSIS"
>&#13;
void <A
HREF="gnome-xml-nanohttp.html#XMLNANOHTTPINIT"
>xmlNanoHTTPInit</A
> (void);
void <A
HREF="gnome-xml-nanohttp.html#XMLNANOHTTPCLEANUP"
>xmlNanoHTTPCleanup</A
> (void);
void <A
HREF="gnome-xml-nanohttp.html#XMLNANOHTTPSCANPROXY"
>xmlNanoHTTPScanProxy</A
> (const char *URL);
int <A
HREF="gnome-xml-nanohttp.html#XMLNANOHTTPFETCH"
>xmlNanoHTTPFetch</A
@ -183,7 +195,7 @@ HREF="gnome-xml-nanohttp.html#XMLNANOHTTPCLOSE"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN9117"
NAME="AEN9126"
></A
><H2
>Description</H2
@ -193,14 +205,132 @@ NAME="AEN9117"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN9120"
NAME="AEN9129"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN9122"
NAME="AEN9131"
></A
><H3
><A
NAME="XMLNANOHTTPINIT"
></A
>xmlNanoHTTPInit ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xmlNanoHTTPInit (void);</PRE
></TD
></TR
></TABLE
><P
>Initialize the HTTP protocol layer.
Currently it just checks for proxy informations</P
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9137"
></A
><H3
><A
NAME="XMLNANOHTTPCLEANUP"
></A
>xmlNanoHTTPCleanup ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xmlNanoHTTPCleanup (void);</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9142"
></A
><H3
><A
NAME="XMLNANOHTTPSCANPROXY"
></A
>xmlNanoHTTPScanProxy ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xmlNanoHTTPScanProxy (const char *URL);</PRE
></TD
></TR
></TABLE
><P
>(Re)Initialize the HTTP Proxy context by parsing the URL and finding
the protocol host port it indicates.
Should be like http://myproxy/ or http://myproxy:3128/
A NULL URL cleans up proxy informations.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>URL</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> The proxy URL used to initialize the proxy context</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9157"
></A
><H3
><A
@ -314,7 +444,7 @@ if provided must be freed by the caller</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9149"
NAME="AEN9184"
></A
><H3
><A
@ -453,7 +583,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9181"
NAME="AEN9216"
></A
><H3
><A
@ -533,7 +663,7 @@ returned at that location</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9200"
NAME="AEN9235"
></A
><H3
><A
@ -608,7 +738,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9219"
NAME="AEN9254"
></A
><H3
><A
@ -731,7 +861,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9248"
NAME="AEN9283"
></A
><H3
><A
@ -825,7 +955,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9271"
NAME="AEN9306"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN10004"
NAME="AEN10122"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN10004"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN10007"
NAME="AEN10125"
></A
><H2
>Synopsis</H2
@ -882,7 +882,7 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN10217"
NAME="AEN10335"
></A
><H2
>Description</H2
@ -892,14 +892,14 @@ NAME="AEN10217"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN10220"
NAME="AEN10338"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN10222"
NAME="AEN10340"
></A
><H3
><A
@ -925,7 +925,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10227"
NAME="AEN10345"
></A
><H3
><A
@ -938,7 +938,7 @@ NAME="CHARVAL"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10231"
NAME="AEN10349"
></A
><H3
><A
@ -996,7 +996,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10245"
NAME="AEN10363"
></A
><H3
><A
@ -1054,7 +1054,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10259"
NAME="AEN10377"
></A
><H3
><A
@ -1112,7 +1112,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10273"
NAME="AEN10391"
></A
><H3
><A
@ -1170,7 +1170,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10287"
NAME="AEN10405"
></A
><H3
><A
@ -1228,7 +1228,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10301"
NAME="AEN10419"
></A
><H3
><A
@ -1286,7 +1286,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10315"
NAME="AEN10433"
></A
><H3
><A
@ -1344,7 +1344,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10329"
NAME="AEN10447"
></A
><H3
><A
@ -1402,7 +1402,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10343"
NAME="AEN10461"
></A
><H3
><A
@ -1460,7 +1460,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10357"
NAME="AEN10475"
></A
><H3
><A
@ -1518,7 +1518,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10371"
NAME="AEN10489"
></A
><H3
><A
@ -1576,7 +1576,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10385"
NAME="AEN10503"
></A
><H3
><A
@ -1634,7 +1634,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10399"
NAME="AEN10517"
></A
><H3
><A
@ -1692,7 +1692,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10413"
NAME="AEN10531"
></A
><H3
><A
@ -1750,7 +1750,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10427"
NAME="AEN10545"
></A
><H3
><A
@ -1831,7 +1831,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10448"
NAME="AEN10566"
></A
><H3
><A
@ -1911,7 +1911,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10468"
NAME="AEN10586"
></A
><H3
><A
@ -2007,7 +2007,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10492"
NAME="AEN10610"
></A
><H3
><A
@ -2071,7 +2071,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10508"
NAME="AEN10626"
></A
><H3
><A
@ -2132,7 +2132,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10524"
NAME="AEN10642"
></A
><H3
><A
@ -2217,7 +2217,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10545"
NAME="AEN10663"
></A
><H3
><A
@ -2304,7 +2304,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10567"
NAME="AEN10685"
></A
><H3
><A
@ -2406,7 +2406,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10593"
NAME="AEN10711"
></A
><H3
><A
@ -2491,7 +2491,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10614"
NAME="AEN10732"
></A
><H3
><A
@ -2573,7 +2573,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10635"
NAME="AEN10753"
></A
><H3
><A
@ -2636,7 +2636,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10651"
NAME="AEN10769"
></A
><H3
><A
@ -2735,7 +2735,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10676"
NAME="AEN10794"
></A
><H3
><A
@ -2844,7 +2844,7 @@ to get the Prefix if any.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10705"
NAME="AEN10823"
></A
><H3
><A
@ -2930,7 +2930,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10728"
NAME="AEN10846"
></A
><H3
><A
@ -3039,7 +3039,7 @@ to get the Prefix if any.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10757"
NAME="AEN10875"
></A
><H3
><A
@ -3124,7 +3124,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10780"
NAME="AEN10898"
></A
><H3
><A
@ -3206,7 +3206,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10801"
NAME="AEN10919"
></A
><H3
><A
@ -3275,7 +3275,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10819"
NAME="AEN10937"
></A
><H3
><A
@ -3364,7 +3364,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10843"
NAME="AEN10961"
></A
><H3
><A
@ -3452,7 +3452,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10867"
NAME="AEN10985"
></A
><H3
><A
@ -3537,7 +3537,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10890"
NAME="AEN11008"
></A
><H3
><A
@ -3642,7 +3642,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10917"
NAME="AEN11035"
></A
><H3
><A
@ -3780,7 +3780,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10951"
NAME="AEN11069"
></A
><H3
><A
@ -3863,7 +3863,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10973"
NAME="AEN11091"
></A
><H3
><A
@ -3946,7 +3946,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN10995"
NAME="AEN11113"
></A
><H3
><A
@ -4030,7 +4030,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11016"
NAME="AEN11134"
></A
><H3
><A
@ -4161,7 +4161,7 @@ it is possible to return NULL and have publicID set.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11049"
NAME="AEN11167"
></A
><H3
><A
@ -4228,7 +4228,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11066"
NAME="AEN11184"
></A
><H3
><A
@ -4311,7 +4311,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11088"
NAME="AEN11206"
></A
><H3
><A
@ -4378,7 +4378,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11106"
NAME="AEN11224"
></A
><H3
><A
@ -4453,7 +4453,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11126"
NAME="AEN11244"
></A
><H3
><A
@ -4531,7 +4531,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11149"
NAME="AEN11267"
></A
><H3
><A
@ -4670,7 +4670,7 @@ or XML_ATTRIBUTE_FIXED. </TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11186"
NAME="AEN11304"
></A
><H3
><A
@ -4759,7 +4759,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11210"
NAME="AEN11328"
></A
><H3
><A
@ -4846,7 +4846,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11233"
NAME="AEN11351"
></A
><H3
><A
@ -4949,7 +4949,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11260"
NAME="AEN11378"
></A
><H3
><A
@ -5093,7 +5093,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11298"
NAME="AEN11416"
></A
><H3
><A
@ -5160,7 +5160,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11316"
NAME="AEN11434"
></A
><H3
><A
@ -5258,7 +5258,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11342"
NAME="AEN11460"
></A
><H3
><A
@ -5361,7 +5361,7 @@ hierarchy.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11368"
NAME="AEN11486"
></A
><H3
><A
@ -5484,7 +5484,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11399"
NAME="AEN11517"
></A
><H3
><A
@ -5567,7 +5567,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11421"
NAME="AEN11539"
></A
><H3
><A
@ -5646,7 +5646,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11440"
NAME="AEN11558"
></A
><H3
><A
@ -5734,7 +5734,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11463"
NAME="AEN11581"
></A
><H3
><A
@ -5835,7 +5835,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11487"
NAME="AEN11605"
></A
><H3
><A
@ -5909,7 +5909,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11506"
NAME="AEN11624"
></A
><H3
><A
@ -5995,7 +5995,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11527"
NAME="AEN11645"
></A
><H3
><A
@ -6065,7 +6065,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11545"
NAME="AEN11663"
></A
><H3
><A
@ -6190,7 +6190,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11579"
NAME="AEN11697"
></A
><H3
><A
@ -6292,7 +6292,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11608"
NAME="AEN11726"
></A
><H3
><A
@ -6361,7 +6361,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11627"
NAME="AEN11745"
></A
><H3
><A
@ -6432,7 +6432,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11647"
NAME="AEN11765"
></A
><H3
><A
@ -6497,7 +6497,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11664"
NAME="AEN11782"
></A
><H3
><A
@ -6579,7 +6579,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11683"
NAME="AEN11801"
></A
><H3
><A
@ -6662,7 +6662,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11705"
NAME="AEN11823"
></A
><H3
><A
@ -6747,7 +6747,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11728"
NAME="AEN11846"
></A
><H3
><A
@ -6830,7 +6830,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11750"
NAME="AEN11868"
></A
><H3
><A
@ -6915,7 +6915,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11773"
NAME="AEN11891"
></A
><H3
><A
@ -7010,7 +7010,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11795"
NAME="AEN11913"
></A
><H3
><A
@ -7075,7 +7075,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11812"
NAME="AEN11930"
></A
><H3
><A
@ -7140,7 +7140,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11829"
NAME="AEN11947"
></A
><H3
><A
@ -7249,7 +7249,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11857"
NAME="AEN11975"
></A
><H3
><A
@ -7275,7 +7275,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11862"
NAME="AEN11980"
></A
><H3
><A
@ -7301,7 +7301,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11867"
NAME="AEN11985"
></A
><H3
><A
@ -7327,7 +7327,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11872"
NAME="AEN11990"
></A
><H3
><A
@ -7353,7 +7353,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11877"
NAME="AEN11995"
></A
><H3
><A
@ -7536,7 +7536,7 @@ must deallocate it !</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11922"
NAME="AEN12040"
></A
><H3
><A
@ -7633,7 +7633,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11946"
NAME="AEN12064"
></A
><H3
><A
@ -7712,7 +7712,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11966"
NAME="AEN12084"
></A
><H3
><A
@ -7809,7 +7809,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN11990"
NAME="AEN12108"
></A
><H3
><A

File diff suppressed because it is too large Load Diff

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN6312"
NAME="AEN6318"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN6312"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN6315"
NAME="AEN6321"
></A
><H2
>Synopsis</H2
@ -859,7 +859,7 @@ HREF="gnome-xml-tree.html#XMLCHAR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6511"
NAME="AEN6517"
></A
><H2
>Description</H2
@ -869,14 +869,14 @@ NAME="AEN6511"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6514"
NAME="AEN6520"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN6516"
NAME="AEN6522"
></A
><H3
><A
@ -970,7 +970,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6538"
NAME="AEN6544"
></A
><H3
><A
@ -1064,7 +1064,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6560"
NAME="AEN6566"
></A
><H3
><A
@ -1094,7 +1094,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6565"
NAME="AEN6571"
></A
><H3
><A
@ -1120,7 +1120,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6570"
NAME="AEN6576"
></A
><H3
><A
@ -1146,7 +1146,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6575"
NAME="AEN6581"
></A
><H3
><A
@ -1176,7 +1176,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6580"
NAME="AEN6586"
></A
><H3
><A
@ -1202,7 +1202,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6585"
NAME="AEN6591"
></A
><H3
><A
@ -1228,7 +1228,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6590"
NAME="AEN6596"
></A
><H3
><A
@ -1258,7 +1258,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6595"
NAME="AEN6601"
></A
><H3
><A
@ -1284,7 +1284,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6600"
NAME="AEN6606"
></A
><H3
><A
@ -1310,7 +1310,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6605"
NAME="AEN6611"
></A
><H3
><A
@ -1340,7 +1340,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6610"
NAME="AEN6616"
></A
><H3
><A
@ -1366,7 +1366,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6615"
NAME="AEN6621"
></A
><H3
><A
@ -1392,7 +1392,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6620"
NAME="AEN6626"
></A
><H3
><A
@ -1422,7 +1422,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6625"
NAME="AEN6631"
></A
><H3
><A
@ -1448,7 +1448,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6630"
NAME="AEN6636"
></A
><H3
><A
@ -1474,7 +1474,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6635"
NAME="AEN6641"
></A
><H3
><A
@ -1504,7 +1504,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6640"
NAME="AEN6646"
></A
><H3
><A
@ -1530,7 +1530,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6645"
NAME="AEN6651"
></A
><H3
><A
@ -1695,7 +1695,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6686"
NAME="AEN6692"
></A
><H3
><A
@ -1776,7 +1776,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6707"
NAME="AEN6713"
></A
><H3
><A
@ -1839,7 +1839,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6723"
NAME="AEN6729"
></A
><H3
><A
@ -1923,7 +1923,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6744"
NAME="AEN6750"
></A
><H3
><A
@ -2025,7 +2025,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6770"
NAME="AEN6776"
></A
><H3
><A
@ -2106,7 +2106,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6791"
NAME="AEN6797"
></A
><H3
><A
@ -2169,7 +2169,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6807"
NAME="AEN6813"
></A
><H3
><A
@ -2334,7 +2334,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6848"
NAME="AEN6854"
></A
><H3
><A
@ -2415,7 +2415,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6869"
NAME="AEN6875"
></A
><H3
><A
@ -2478,7 +2478,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6885"
NAME="AEN6891"
></A
><H3
><A
@ -2562,7 +2562,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6906"
NAME="AEN6912"
></A
><H3
><A
@ -2644,7 +2644,7 @@ of error.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6927"
NAME="AEN6933"
></A
><H3
><A
@ -2707,7 +2707,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6943"
NAME="AEN6949"
></A
><H3
><A
@ -2789,7 +2789,7 @@ of error.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6964"
NAME="AEN6970"
></A
><H3
><A
@ -3017,7 +3017,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7020"
NAME="AEN7026"
></A
><H3
><A
@ -3098,7 +3098,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7041"
NAME="AEN7047"
></A
><H3
><A
@ -3161,7 +3161,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7057"
NAME="AEN7063"
></A
><H3
><A
@ -3245,7 +3245,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7078"
NAME="AEN7084"
></A
><H3
><A
@ -3389,7 +3389,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7114"
NAME="AEN7120"
></A
><H3
><A
@ -3468,7 +3468,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7134"
NAME="AEN7140"
></A
><H3
><A
@ -3531,7 +3531,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7150"
NAME="AEN7156"
></A
><H3
><A
@ -3633,7 +3633,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7176"
NAME="AEN7182"
></A
><H3
><A
@ -3755,7 +3755,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7206"
NAME="AEN7212"
></A
><H3
><A
@ -3854,7 +3854,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7231"
NAME="AEN7237"
></A
><H3
><A
@ -3998,7 +3998,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7267"
NAME="AEN7273"
></A
><H3
><A
@ -4077,7 +4077,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7287"
NAME="AEN7293"
></A
><H3
><A
@ -4140,7 +4140,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7303"
NAME="AEN7309"
></A
><H3
><A
@ -4262,7 +4262,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7333"
NAME="AEN7339"
></A
><H3
><A
@ -4361,7 +4361,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7358"
NAME="AEN7364"
></A
><H3
><A
@ -4464,7 +4464,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7383"
NAME="AEN7389"
></A
><H3
><A
@ -4589,7 +4589,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7413"
NAME="AEN7419"
></A
><H3
><A
@ -4716,7 +4716,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7444"
NAME="AEN7450"
></A
><H3
><A
@ -4830,7 +4830,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7473"
NAME="AEN7479"
></A
><H3
><A
@ -4954,7 +4954,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7503"
NAME="AEN7509"
></A
><H3
><A
@ -5076,7 +5076,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7534"
NAME="AEN7540"
></A
><H3
><A
@ -5179,7 +5179,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7560"
NAME="AEN7566"
></A
><H3
><A
@ -5299,7 +5299,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7590"
NAME="AEN7596"
></A
><H3
><A
@ -5429,7 +5429,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7622"
NAME="AEN7628"
></A
><H3
><A
@ -5603,7 +5603,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7663"
NAME="AEN7669"
></A
><H3
><A
@ -5705,7 +5705,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7689"
NAME="AEN7695"
></A
><H3
><A
@ -5826,7 +5826,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7719"
NAME="AEN7725"
></A
><H3
><A
@ -5926,7 +5926,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7744"
NAME="AEN7750"
></A
><H3
><A
@ -6050,7 +6050,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7775"
NAME="AEN7781"
></A
><H3
><A
@ -6152,7 +6152,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7801"
NAME="AEN7807"
></A
><H3
><A
@ -6254,7 +6254,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7827"
NAME="AEN7833"
></A
><H3
><A
@ -6420,7 +6420,7 @@ receiving array and retry.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7865"
NAME="AEN7871"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN7903"
NAME="AEN7909"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN7903"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN7906"
NAME="AEN7912"
></A
><H2
>Synopsis</H2
@ -187,7 +187,7 @@ HREF="gnome-xml-parser.html#XMLPARSERINPUTPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN7918"
NAME="AEN7924"
></A
><H2
>Description</H2
@ -197,14 +197,14 @@ NAME="AEN7918"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN7921"
NAME="AEN7927"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN7923"
NAME="AEN7929"
></A
><H3
><A
@ -341,7 +341,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7928"
NAME="AEN7934"
></A
><H3
><A
@ -438,7 +438,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7951"
NAME="AEN7957"
></A
><H3
><A
@ -535,7 +535,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7974"
NAME="AEN7980"
></A
><H3
><A
@ -632,7 +632,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN7997"
NAME="AEN8003"
></A
><H3
><A
@ -729,7 +729,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8020"
NAME="AEN8026"
></A
><H3
><A
@ -792,7 +792,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8036"
NAME="AEN8042"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN9747"
NAME="AEN9865"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN9747"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN9750"
NAME="AEN9868"
></A
><H2
>Synopsis</H2
@ -239,7 +239,7 @@ HREF="gnome-xml-xmlio.html#XMLPARSERGETDIRECTORY"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN9777"
NAME="AEN9895"
></A
><H2
>Description</H2
@ -249,14 +249,14 @@ NAME="AEN9777"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN9780"
NAME="AEN9898"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN9782"
NAME="AEN9900"
></A
><H3
><A
@ -293,7 +293,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9787"
NAME="AEN9905"
></A
><H3
><A
@ -319,7 +319,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9792"
NAME="AEN9910"
></A
><H3
><A
@ -401,7 +401,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9813"
NAME="AEN9931"
></A
><H3
><A
@ -504,7 +504,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9838"
NAME="AEN9956"
></A
><H3
><A
@ -608,7 +608,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9864"
NAME="AEN9982"
></A
><H3
><A
@ -709,7 +709,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9889"
NAME="AEN10007"
></A
><H3
><A
@ -808,7 +808,7 @@ in case of error.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9913"
NAME="AEN10031"
></A
><H3
><A
@ -908,7 +908,7 @@ in case of error.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9937"
NAME="AEN10055"
></A
><H3
><A
@ -1025,7 +1025,7 @@ in case of error.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9965"
NAME="AEN10083"
></A
><H3
><A
@ -1088,7 +1088,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9981"
NAME="AEN10099"
></A
><H3
><A

View File

@ -103,7 +103,7 @@ ALIGN="right"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN12600"
NAME="AEN12718"
></A
><H2
>Name</H2
@ -111,7 +111,7 @@ NAME="AEN12600"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN12603"
NAME="AEN12721"
></A
><H2
>Synopsis</H2
@ -212,7 +212,7 @@ HREF="gnome-xml-xmlmemory.html#XMLMEMSTRDUPLOC"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN12624"
NAME="AEN12742"
></A
><H2
>Description</H2
@ -222,14 +222,14 @@ NAME="AEN12624"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN12627"
NAME="AEN12745"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN12629"
NAME="AEN12747"
></A
><H3
><A
@ -255,7 +255,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12634"
NAME="AEN12752"
></A
><H3
><A
@ -318,7 +318,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12650"
NAME="AEN12768"
></A
><H3
><A
@ -381,7 +381,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12666"
NAME="AEN12784"
></A
><H3
><A
@ -462,7 +462,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12686"
NAME="AEN12804"
></A
><H3
><A
@ -540,7 +540,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12706"
NAME="AEN12824"
></A
><H3
><A
@ -598,7 +598,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12721"
NAME="AEN12839"
></A
><H3
><A
@ -656,7 +656,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12736"
NAME="AEN12854"
></A
><H3
><A
@ -684,7 +684,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12742"
NAME="AEN12860"
></A
><H3
><A
@ -748,7 +748,7 @@ written to the file .memorylist</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12758"
NAME="AEN12876"
></A
><H3
><A
@ -835,7 +835,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12779"
NAME="AEN12897"
></A
><H3
><A
@ -861,7 +861,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12784"
NAME="AEN12902"
></A
><H3
><A
@ -887,7 +887,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12789"
NAME="AEN12907"
></A
><H3
><A
@ -913,7 +913,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12794"
NAME="AEN12912"
></A
><H3
><A
@ -1018,7 +1018,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12819"
NAME="AEN12937"
></A
><H3
><A
@ -1135,7 +1135,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN12847"
NAME="AEN12965"
></A
><H3
><A

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN8677"
NAME="AEN8683"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN8677"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN8680"
NAME="AEN8686"
></A
><H2
>Synopsis</H2
@ -347,7 +347,7 @@ HREF="gnome-xml-xpath.html#XMLNODESETPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8737"
NAME="AEN8743"
></A
><H2
>Description</H2
@ -357,14 +357,14 @@ NAME="AEN8737"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8740"
NAME="AEN8746"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN8742"
NAME="AEN8748"
></A
><H3
><A
@ -415,7 +415,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8747"
NAME="AEN8753"
></A
><H3
><A
@ -441,7 +441,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8752"
NAME="AEN8758"
></A
><H3
><A
@ -478,7 +478,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8757"
NAME="AEN8763"
></A
><H3
><A
@ -504,7 +504,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8762"
NAME="AEN8768"
></A
><H3
><A
@ -534,7 +534,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8767"
NAME="AEN8773"
></A
><H3
><A
@ -560,7 +560,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8772"
NAME="AEN8778"
></A
><H3
><A
@ -586,7 +586,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8777"
NAME="AEN8783"
></A
><H3
><A
@ -612,7 +612,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8782"
NAME="AEN8788"
></A
><H3
><A
@ -638,7 +638,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8787"
NAME="AEN8793"
></A
><H3
><A
@ -664,7 +664,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8792"
NAME="AEN8798"
></A
><H3
><A
@ -690,7 +690,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8797"
NAME="AEN8803"
></A
><H3
><A
@ -716,7 +716,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8802"
NAME="AEN8808"
></A
><H3
><A
@ -749,7 +749,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8807"
NAME="AEN8813"
></A
><H3
><A
@ -775,7 +775,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8812"
NAME="AEN8818"
></A
><H3
><A
@ -869,7 +869,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8835"
NAME="AEN8841"
></A
><H3
><A
@ -898,7 +898,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8840"
NAME="AEN8846"
></A
><H3
><A
@ -924,7 +924,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8845"
NAME="AEN8851"
></A
><H3
><A
@ -953,7 +953,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8850"
NAME="AEN8856"
></A
><H3
><A
@ -979,7 +979,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8855"
NAME="AEN8861"
></A
><H3
><A
@ -1058,7 +1058,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8874"
NAME="AEN8880"
></A
><H3
><A
@ -1087,7 +1087,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8879"
NAME="AEN8885"
></A
><H3
><A
@ -1113,7 +1113,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8884"
NAME="AEN8890"
></A
><H3
><A
@ -1213,7 +1213,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8909"
NAME="AEN8915"
></A
><H3
><A
@ -1242,7 +1242,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8914"
NAME="AEN8920"
></A
><H3
><A
@ -1268,7 +1268,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8919"
NAME="AEN8925"
></A
><H3
><A
@ -1347,7 +1347,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8938"
NAME="AEN8944"
></A
><H3
><A
@ -1428,7 +1428,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8959"
NAME="AEN8965"
></A
><H3
><A
@ -1491,7 +1491,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN8975"
NAME="AEN8981"
></A
><H3
><A
@ -1594,7 +1594,7 @@ the caller has to free the object.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9001"
NAME="AEN9007"
></A
><H3
><A
@ -1657,7 +1657,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9017"
NAME="AEN9023"
></A
><H3
><A
@ -1760,7 +1760,7 @@ the caller has to free the object.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9043"
NAME="AEN9049"
></A
><H3
><A
@ -1846,7 +1846,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9065"
NAME="AEN9071"
></A
><H3
><A
@ -1918,7 +1918,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN9083"
NAME="AEN9089"
></A
><H3
><A

View File

@ -171,6 +171,7 @@
<ANCHOR id ="OLDXMLWDCOMPATIBILITY" href="gnome-xml/gnome-xml-tree.html#OLDXMLWDCOMPATIBILITY">
<ANCHOR id ="XMLINDENTTREEOUTPUT" href="gnome-xml/gnome-xml-tree.html#XMLINDENTTREEOUTPUT">
<ANCHOR id ="XMLBUFFERALLOCSCHEME" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERALLOCSCHEME">
<ANCHOR id ="XMLSAVENOEMPTYTAGS" href="gnome-xml/gnome-xml-tree.html#XMLSAVENOEMPTYTAGS">
<ANCHOR id ="XMLBUFFERCREATE" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERCREATE">
<ANCHOR id ="XMLBUFFERCREATESIZE" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERCREATESIZE">
<ANCHOR id ="XMLBUFFERFREE" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERFREE">
@ -437,6 +438,9 @@
<ANCHOR id ="XMLXPATHFREENODESETLIST" href="gnome-xml/gnome-xml-xpath.html#XMLXPATHFREENODESETLIST">
<ANCHOR id ="XMLXPATHFREENODESET" href="gnome-xml/gnome-xml-xpath.html#XMLXPATHFREENODESET">
<ANCHOR id ="GNOME-XML-NANOHTTP" href="gnome-xml/gnome-xml-nanohttp.html">
<ANCHOR id ="XMLNANOHTTPINIT" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPINIT">
<ANCHOR id ="XMLNANOHTTPCLEANUP" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPCLEANUP">
<ANCHOR id ="XMLNANOHTTPSCANPROXY" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPSCANPROXY">
<ANCHOR id ="XMLNANOHTTPFETCH" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPFETCH">
<ANCHOR id ="XMLNANOHTTPMETHOD" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPMETHOD">
<ANCHOR id ="XMLNANOHTTPOPEN" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPOPEN">
@ -448,6 +452,7 @@
<ANCHOR id ="FTPLISTCALLBACK" href="gnome-xml/gnome-xml-nanoftp.html#FTPLISTCALLBACK">
<ANCHOR id ="FTPDATACALLBACK" href="gnome-xml/gnome-xml-nanoftp.html#FTPDATACALLBACK">
<ANCHOR id ="XMLNANOFTPINIT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPINIT">
<ANCHOR id ="XMLNANOFTPCLEANUP" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCLEANUP">
<ANCHOR id ="XMLNANOFTPNEWCTXT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPNEWCTXT">
<ANCHOR id ="XMLNANOFTPFREECTXT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPFREECTXT">
<ANCHOR id ="XMLNANOFTPCONNECTTO" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCONNECTTO">
@ -455,6 +460,9 @@
<ANCHOR id ="XMLNANOFTPCONNECT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCONNECT">
<ANCHOR id ="XMLNANOFTPCLOSE" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCLOSE">
<ANCHOR id ="XMLNANOFTPQUIT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPQUIT">
<ANCHOR id ="XMLNANOFTPSCANPROXY" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPSCANPROXY">
<ANCHOR id ="XMLNANOFTPPROXY" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPPROXY">
<ANCHOR id ="XMLNANOFTPUPDATEURL" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPUPDATEURL">
<ANCHOR id ="XMLNANOFTPGETRESPONSE" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPGETRESPONSE">
<ANCHOR id ="XMLNANOFTPCHECKRESPONSE" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCHECKRESPONSE">
<ANCHOR id ="XMLNANOFTPCWD" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCWD">

View File

@ -149,7 +149,13 @@ for really accurate description</h3>
<li>there is some kind of roadmap to libxml-2.0: fix I18N, and <a
href="http://rpmfind.net/tools/gdome/messages/0039.html">change structures
to accomodate DOM</a></li>
<li>added a nanoFTP transport module</li>
</ul>
<h3>1.8.6: Jan 31 2000</h3>
<ul>
<li>added a nanoFTP transport module, debugged until the new version of <a
href="http://rpmfind.net/linux/rpm2html/rpmfind.html">rpmfind</a> can use
it without troubles</li>
</ul>
<h3>1.8.5: Jan 21 2000</h3>
@ -1004,6 +1010,6 @@ base under gnome-xml/example</p>
<p><a href="mailto:Daniel.Veillard@w3.org">Daniel Veillard</a></p>
<p>$Id: xml.html,v 1.22 2000/01/18 18:01:01 veillard Exp $</p>
<p>$Id: xml.html,v 1.23 2000/01/25 18:31:22 veillard Exp $</p>
</body>
</html>

View File

@ -14,13 +14,28 @@ extern "C" {
/**
* ftpListCallback:
* @userData: user provided data for the callback
* @filename: the file name (including "->" when links are shown)
* @attrib: the attribute string
* @owner: the owner string
* @group: the group string
* @size: the file size
* @links: the link count
* @year: the year
* @month: the month
* @day: the day
* @hour: the hour
* @minute: the minute
*
* A callback for the xmlNanoFTPList command
* Note that only one of year and day:minute are specified
*/
typedef void (*ftpListCallback) (void *userData,
const char *filename, const char* attrib,
const char *owner, const char *group,
unsigned long size, int links, int year,
const char *month, int day, int minute);
const char *month, int day, int hour,
int minute);
/**
* ftpDataCallback:
* A callback for the xmlNanoFTPGet command
@ -31,6 +46,7 @@ typedef void (*ftpDataCallback) (void *userData, const char *data, int len);
* Init
*/
void xmlNanoFTPInit (void);
void xmlNanoFTPCleanup (void);
/*
* Creating/freeing contexts
@ -46,7 +62,14 @@ void * xmlNanoFTPOpen (const char *URL);
int xmlNanoFTPConnect (void *ctx);
int xmlNanoFTPClose (void *ctx);
int xmlNanoFTPQuit (void *ctx);
void xmlNanoFTPScanProxy (const char *URL);
void xmlNanoFTPProxy (const char *host,
int port,
const char *user,
const char *passwd,
int type);
int xmlNanoFTPUpdateURL (void *ctx,
const char *URL);
/*
* Rathern internal commands

View File

@ -11,6 +11,9 @@
#ifdef __cplusplus
extern "C" {
#endif
void xmlNanoHTTPInit (void);
void xmlNanoHTTPCleanup (void);
void xmlNanoHTTPScanProxy (const char *URL);
int xmlNanoHTTPFetch (const char *URL,
const char *filename,
char **contentType);

View File

@ -317,6 +317,7 @@ extern xmlNsPtr baseDTD;
extern int oldXMLWDcompatibility;/* maintain compatibility with old WD */
extern int xmlIndentTreeOutput; /* try to indent the tree dumps */
extern xmlBufferAllocationScheme xmlBufferAllocScheme; /* alloc scheme to use */
extern int xmlSaveNoEmptyTags; /* save empty tags as <empty></empty> */
/*
* Handling Buffers.

538
nanoftp.c
View File

@ -31,20 +31,40 @@
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef HAVE_RESOLV_H
#include <resolv.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include "xmlmemory.h"
#include "nanoftp.h"
/* #define DEBUG_FTP 1 */
#ifdef STANDALONE
#ifndef DEBUG_FTP
#define DEBUG_FTP 1
#endif
#endif
static char hostname[100];
@ -67,6 +87,111 @@ typedef struct xmlNanoFTPCtxt {
int returnValue; /* the protocol return value */
} xmlNanoFTPCtxt, *xmlNanoFTPCtxtPtr;
static int initialized = 0;
static char *proxy = NULL; /* the proxy name if any */
static int proxyPort = 0; /* the proxy port if any */
static char *proxyUser = NULL; /* user for proxy authentication */
static char *proxyPasswd = NULL;/* passwd for proxy authentication */
static int proxyType = 0; /* uses TYPE or a@b ? */
/**
* xmlNanoFTPInit:
*
* Initialize the FTP protocol layer.
* Currently it just checks for proxy informations,
* and get the hostname
*/
void
xmlNanoFTPInit(void) {
const char *env;
if (initialized)
return;
gethostname(hostname, sizeof(hostname));
proxyPort = 21;
env = getenv("no_proxy");
if (env != NULL)
return;
env = getenv("ftp_proxy");
if (env != NULL) {
xmlNanoFTPScanProxy(env);
} else {
env = getenv("FTP_PROXY");
if (env != NULL) {
xmlNanoFTPScanProxy(env);
}
}
env = getenv("ftp_proxy_user");
if (env != NULL) {
proxyUser = xmlMemStrdup(env);
}
env = getenv("ftp_proxy_password");
if (env != NULL) {
proxyPasswd = xmlMemStrdup(env);
}
initialized = 1;
}
/**
* xmlNanoFTPClenup:
*
* Cleanup the FTP protocol layer. This cleanup proxy informations.
*/
void
xmlNanoFTPCleanup(void) {
if (proxy != NULL) {
xmlFree(proxy);
proxy = NULL;
}
if (proxyUser != NULL) {
xmlFree(proxyUser);
proxyUser = NULL;
}
if (proxyPasswd != NULL) {
xmlFree(proxyPasswd);
proxyPasswd = NULL;
}
hostname[0] = 0;
initialized = 0;
return;
}
/**
* xmlNanoFTPProxy:
* @host: the proxy host name
* @port: the proxy port
* @user: the proxy user name
* @passwd: the proxy password
* @type: the type of proxy 1 for using SITE, 2 for USER a@b
*
* Setup the FTP proxy informations.
* This can also be done by using ftp_proxy ftp_proxy_user and
* ftp_proxy_password environment variables.
*/
void
xmlNanoFTPProxy(const char *host, int port, const char *user,
const char *passwd, int type) {
if (proxy != NULL)
xmlFree(proxy);
if (proxyUser != NULL)
xmlFree(proxyUser);
if (proxyPasswd != NULL)
xmlFree(proxyPasswd);
if (host)
proxy = xmlMemStrdup(host);
if (user)
proxyUser = xmlMemStrdup(user);
if (passwd)
proxyPasswd = xmlMemStrdup(passwd);
proxyPort = port;
proxyType = type;
}
/**
* xmlNanoFTPScanURL:
* @ctx: an FTP context
@ -96,6 +221,7 @@ xmlNanoFTPScanURL(void *ctx, const char *URL) {
xmlFree(ctxt->path);
ctxt->path = NULL;
}
if (URL == NULL) return;
buf[index] = 0;
while (*cur != 0) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
@ -148,6 +274,169 @@ xmlNanoFTPScanURL(void *ctx, const char *URL) {
}
}
/**
* xmlNanoFTPUpdateURL:
* @ctx: an FTP context
* @URL: The URL used to update the context
*
* Update an FTP context by parsing the URL and finding
* new path it indicates. If there is an error in the
* protocol, hostname, port or other information, the
* error is raised. It indicates a new connection has to
* be established.
*
* Returns 0 if Ok, -1 in case of error (other host).
*/
int
xmlNanoFTPUpdateURL(void *ctx, const char *URL) {
xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
const char *cur = URL;
char buf[4096];
int index = 0;
int port = 0;
if (URL == NULL)
return(-1);
if (ctxt == NULL)
return(-1);
if (ctxt->protocol == NULL)
return(-1);
if (ctxt->hostname == NULL)
return(-1);
buf[index] = 0;
while (*cur != 0) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[index] = 0;
if (strcmp(ctxt->protocol, buf))
return(-1);
index = 0;
cur += 3;
break;
}
buf[index++] = *cur++;
}
if (*cur == 0)
return(-1);
buf[index] = 0;
while (1) {
if (cur[0] == ':') {
buf[index] = 0;
if (strcmp(ctxt->hostname, buf))
return(-1);
index = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != ctxt->port)
return(-1);
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[index] = 0;
if (strcmp(ctxt->hostname, buf))
return(-1);
index = 0;
break;
}
buf[index++] = *cur++;
}
if (ctxt->path != NULL) {
xmlFree(ctxt->path);
ctxt->path = NULL;
}
if (*cur == 0)
ctxt->path = xmlMemStrdup("/");
else {
buf[index] = 0;
while (*cur != 0) {
if ((cur[0] == '#') || (cur[0] == '?'))
break;
buf[index++] = *cur++;
}
buf[index] = 0;
ctxt->path = xmlMemStrdup(buf);
}
return(0);
}
/**
* xmlNanoFTPScanProxy:
* @URL: The proxy URL used to initialize the proxy context
*
* (Re)Initialize the FTP Proxy context by parsing the URL and finding
* the protocol host port it indicates.
* Should be like ftp://myproxy/ or ftp://myproxy:3128/
* A NULL URL cleans up proxy informations.
*/
void
xmlNanoFTPScanProxy(const char *URL) {
const char *cur = URL;
char buf[4096];
int index = 0;
int port = 0;
if (proxy != NULL) {
xmlFree(proxy);
proxy = NULL;
}
if (proxyPort != 0) {
proxyPort = 0;
}
#ifdef DEBUG_FTP
if (URL == NULL)
printf("Removing FTP proxy info\n");
else
printf("Using FTP proxy %s\n", URL);
#endif
if (URL == NULL) return;
buf[index] = 0;
while (*cur != 0) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[index] = 0;
index = 0;
cur += 3;
break;
}
buf[index++] = *cur++;
}
if (*cur == 0) return;
buf[index] = 0;
while (1) {
if (cur[0] == ':') {
buf[index] = 0;
proxy = xmlMemStrdup(buf);
index = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) proxyPort = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[index] = 0;
proxy = xmlMemStrdup(buf);
index = 0;
break;
}
buf[index++] = *cur++;
}
}
/**
* xmlNanoFTPNewCtxt:
* @URL: The URL used to initialize the context
@ -195,20 +484,6 @@ xmlNanoFTPFreeCtxt(void * ctx) {
xmlFree(ctxt);
}
/**
* xmlNanoFTPInit:
*
* Initialize the FTP handling.
*/
void
xmlNanoFTPInit(void) {
static int done = 0;
if (done) return;
gethostname(hostname, sizeof(hostname));
done = 1;
}
/**
* Parsing of the server answer, we just extract the code.
* return 0 for errors
@ -446,6 +721,7 @@ int
xmlNanoFTPConnect(void *ctx) {
xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
struct hostent *hp;
int port;
int res;
if (ctxt == NULL)
@ -456,7 +732,10 @@ xmlNanoFTPConnect(void *ctx) {
/*
* do the blocking DNS query.
*/
hp = gethostbyname(ctxt->hostname);
if (proxy)
hp = gethostbyname(proxy);
else
hp = gethostbyname(ctxt->hostname);
if (hp == NULL)
return(-1);
@ -466,9 +745,14 @@ xmlNanoFTPConnect(void *ctx) {
memset(&ctxt->ftpAddr, 0, sizeof(ctxt->ftpAddr));
ctxt->ftpAddr.sin_family = AF_INET;
memcpy(&ctxt->ftpAddr.sin_addr, hp->h_addr_list[0], hp->h_length);
if (ctxt->port == 0)
ctxt->port = 21;
ctxt->ftpAddr.sin_port = htons(ctxt->port);
if (proxy) {
port = proxyPort;
} else {
port = ctxt->port;
}
if (port == 0)
port = 21;
ctxt->ftpAddr.sin_port = htons(port);
ctxt->controlFd = socket(AF_INET, SOCK_STREAM, 0);
if (ctxt->controlFd < 0)
return(-1);
@ -524,6 +808,157 @@ xmlNanoFTPConnect(void *ctx) {
* +---+ ACCT +---+-- | ----->+---+
* | |---------->| W | 4,5 -------->| F |
* +---+ +---+------------->+---+
*
* Of course in case of using a proxy this get really nasty and is not
* standardized at all :-(
*/
if (proxy) {
int len;
char buf[400];
if (proxyUser != NULL) {
/*
* We need proxy auth
*/
len = snprintf(buf, sizeof(buf), "USER %s\r\n", proxyUser);
#ifdef DEBUG_FTP
printf(buf);
#endif
res = send(ctxt->controlFd, buf, len, 0);
if (res < 0) {
close(ctxt->controlFd);
ctxt->controlFd = -1;
return(res);
}
res = xmlNanoFTPGetResponse(ctxt);
switch (res) {
case 2:
if (proxyPasswd == NULL)
break;
case 3:
if (proxyPasswd != NULL)
len = snprintf(buf, sizeof(buf), "PASS %s\r\n", proxyPasswd);
else
len = snprintf(buf, sizeof(buf), "PASS libxml@%s\r\n",
hostname);
#ifdef DEBUG_FTP
printf(buf);
#endif
res = send(ctxt->controlFd, buf, len, 0);
if (res < 0) {
close(ctxt->controlFd);
ctxt->controlFd = -1;
return(res);
}
res = xmlNanoFTPGetResponse(ctxt);
if (res > 3) {
close(ctxt->controlFd);
ctxt->controlFd = -1;
return(-1);
}
break;
case 1:
break;
case 4:
case 5:
case -1:
default:
close(ctxt->controlFd);
ctxt->controlFd = -1;
return(-1);
}
}
/*
* We assume we don't need more authentication to the proxy
* and that it succeeded :-\
*/
switch (proxyType) {
case 0:
/* we will try in seqence */
case 1:
/* Using SITE command */
len = snprintf(buf, sizeof(buf), "SITE %s\r\n", ctxt->hostname);
#ifdef DEBUG_FTP
printf(buf);
#endif
res = send(ctxt->controlFd, buf, len, 0);
if (res < 0) {
close(ctxt->controlFd); ctxt->controlFd = -1;
ctxt->controlFd = -1;
return(res);
}
res = xmlNanoFTPGetResponse(ctxt);
if (res == 2) {
/* we assume it worked :-\ 1 is error for SITE command */
proxyType = 1;
break;
}
if (proxyType == 1) {
close(ctxt->controlFd); ctxt->controlFd = -1;
ctxt->controlFd = -1;
return(-1);
}
case 2:
/* USER user@host command */
if (ctxt->user == NULL)
len = snprintf(buf, sizeof(buf), "USER anonymous@%s\r\n",
ctxt->hostname);
else
len = snprintf(buf, sizeof(buf), "USER %s@%s\r\n",
ctxt->user, ctxt->hostname);
#ifdef DEBUG_FTP
printf(buf);
#endif
res = send(ctxt->controlFd, buf, len, 0);
if (res < 0) {
close(ctxt->controlFd); ctxt->controlFd = -1;
ctxt->controlFd = -1;
return(res);
}
res = xmlNanoFTPGetResponse(ctxt);
if ((res == 1) || (res == 2)) {
/* we assume it worked :-\ */
proxyType = 2;
return(0);
}
if (ctxt->passwd == NULL)
len = snprintf(buf, sizeof(buf), "PASS libxml@%s\r\n", hostname);
else
len = snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
#ifdef DEBUG_FTP
printf(buf);
#endif
res = send(ctxt->controlFd, buf, len, 0);
if (res < 0) {
close(ctxt->controlFd); ctxt->controlFd = -1;
ctxt->controlFd = -1;
return(res);
}
res = xmlNanoFTPGetResponse(ctxt);
if ((res == 1) || (res == 2)) {
/* we assume it worked :-\ */
proxyType = 2;
return(0);
}
if (proxyType == 2) {
close(ctxt->controlFd); ctxt->controlFd = -1;
ctxt->controlFd = -1;
return(-1);
}
case 3:
/*
* If you need support for other Proxy authentication scheme
* send the code or at least the sequence in use.
*/
default:
close(ctxt->controlFd); ctxt->controlFd = -1;
ctxt->controlFd = -1;
return(-1);
}
}
/*
* Non-proxy handling.
*/
res = xmlNanoFTPSendUser(ctxt);
if (res < 0) {
@ -896,7 +1331,7 @@ xmlNanoFTPParseList(const char *list, ftpListCallback callback, void *userData)
}
if (callback != NULL) {
callback(userData, filename, attrib, owner, group, size, links,
year, month, day, minute);
year, month, day, hour, minute);
}
return(cur - list);
}
@ -924,12 +1359,19 @@ xmlNanoFTPList(void *ctx, ftpListCallback callback, void *userData,
fd_set rfd, efd;
struct timeval tv;
ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
if (filename != NULL)
len = snprintf(buf, sizeof(buf), "LIST -L %s\r\n", filename);
else
if (filename == NULL) {
if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
return(-1);
ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
len = snprintf(buf, sizeof(buf), "LIST -L\r\n");
} else {
if (filename[0] != '/') {
if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
return(-1);
}
ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
len = snprintf(buf, sizeof(buf), "LIST -L %s\r\n", filename);
}
#ifdef DEBUG_FTP
printf(buf);
#endif
@ -1003,7 +1445,7 @@ xmlNanoFTPList(void *ctx, ftpListCallback callback, void *userData,
/**
* xmlNanoFTPGetSocket:
* @ctx: an FTP context
* @filename: the file to retrieve
* @filename: the file to retrieve (or NULL if path is in context).
*
* Initiate fetch of the given file from the server.
*
@ -1016,7 +1458,7 @@ xmlNanoFTPGetSocket(void *ctx, const char *filename) {
xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
char buf[300];
int res, len;
if (filename == NULL)
if ((filename == NULL) && (ctxt->path == NULL))
return(-1);
ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
@ -1034,7 +1476,10 @@ xmlNanoFTPGetSocket(void *ctx, const char *filename) {
close(ctxt->dataFd); ctxt->dataFd = -1;
return(-res);
}
len = snprintf(buf, sizeof(buf), "RETR %s\r\n", filename);
if (filename == NULL)
len = snprintf(buf, sizeof(buf), "RETR %s\r\n", ctxt->path);
else
len = snprintf(buf, sizeof(buf), "RETR %s\r\n", filename);
#ifdef DEBUG_FTP
printf(buf);
#endif
@ -1073,7 +1518,7 @@ xmlNanoFTPGet(void *ctx, ftpDataCallback callback, void *userData,
fd_set rfd;
struct timeval tv;
if (filename == NULL)
if ((filename == NULL) && (ctxt->path == NULL))
return(-1);
if (callback == NULL)
return(-1);
@ -1218,7 +1663,7 @@ xmlNanoFTPClose(void *ctx) {
************************************************************************/
void ftpList(void *userData, const char *filename, const char* attrib,
const char *owner, const char *group, unsigned long size, int links,
int year, const char *month, int day, int minute) {
int year, const char *month, int day, int hour, int minute) {
printf("%s %s %s %ld %s\n", attrib, owner, group, size, filename);
}
void ftpData(void *userData, const char *data, int len) {
@ -1233,12 +1678,15 @@ void ftpData(void *userData, const char *data, int len) {
int main(int argc, char **argv) {
void *ctxt;
FILE *output;
int res;
const char *tstfile = "tstfile";
char *tstfile = NULL;
xmlNanoFTPInit();
if (argc > 1) {
ctxt = xmlNanoFTPConnectTo(argv[1], 0);
ctxt = xmlNanoFTPNewCtxt(argv[1]);
if (xmlNanoFTPConnect(ctxt) < 0) {
fprintf(stderr, "Couldn't connect to %s\n", argv[1]);
exit(1);
}
if (argc > 2)
tstfile = argv[2];
} else
@ -1247,33 +1695,11 @@ int main(int argc, char **argv) {
fprintf(stderr, "Couldn't connect to localhost\n");
exit(1);
}
res = xmlNanoFTPCwd(ctxt, "/linux");
if (res < 0) {
fprintf(stderr, "disconnected\n");
xmlNanoFTPClose(ctxt);
exit(1);
}
if (res == 0) {
fprintf(stderr, "/linux : CWD failed\n");
} else {
fprintf(stderr, "/linux : CWD successful\n");
}
res = xmlNanoFTPCwd(ctxt, "/toto");
if (res < 0) {
fprintf(stderr, "disconnected\n");
xmlNanoFTPClose(ctxt);
exit(1);
}
if (res == 0) {
fprintf(stderr, "/toto : CWD failed\n");
} else {
fprintf(stderr, "/toto : CWD successful\n");
}
xmlNanoFTPList(ctxt, ftpList, NULL, NULL);
xmlNanoFTPList(ctxt, ftpList, NULL, tstfile);
output = fopen("/tmp/tstdata", "w");
if (output != NULL) {
if (xmlNanoFTPGet(ctxt, ftpData, (void *) output, tstfile) < 0)
fprintf(stderr, "Failed to get file %s\n", tstfile);
fprintf(stderr, "Failed to get file\n");
}
xmlNanoFTPClose(ctxt);

View File

@ -14,13 +14,28 @@ extern "C" {
/**
* ftpListCallback:
* @userData: user provided data for the callback
* @filename: the file name (including "->" when links are shown)
* @attrib: the attribute string
* @owner: the owner string
* @group: the group string
* @size: the file size
* @links: the link count
* @year: the year
* @month: the month
* @day: the day
* @hour: the hour
* @minute: the minute
*
* A callback for the xmlNanoFTPList command
* Note that only one of year and day:minute are specified
*/
typedef void (*ftpListCallback) (void *userData,
const char *filename, const char* attrib,
const char *owner, const char *group,
unsigned long size, int links, int year,
const char *month, int day, int minute);
const char *month, int day, int hour,
int minute);
/**
* ftpDataCallback:
* A callback for the xmlNanoFTPGet command
@ -31,6 +46,7 @@ typedef void (*ftpDataCallback) (void *userData, const char *data, int len);
* Init
*/
void xmlNanoFTPInit (void);
void xmlNanoFTPCleanup (void);
/*
* Creating/freeing contexts
@ -46,7 +62,14 @@ void * xmlNanoFTPOpen (const char *URL);
int xmlNanoFTPConnect (void *ctx);
int xmlNanoFTPClose (void *ctx);
int xmlNanoFTPQuit (void *ctx);
void xmlNanoFTPScanProxy (const char *URL);
void xmlNanoFTPProxy (const char *host,
int port,
const char *user,
const char *passwd,
int type);
int xmlNanoFTPUpdateURL (void *ctx,
const char *URL);
/*
* Rathern internal commands

View File

@ -92,6 +92,58 @@ typedef struct xmlNanoHTTPCtxt {
char *location; /* the new URL in case of redirect */
} xmlNanoHTTPCtxt, *xmlNanoHTTPCtxtPtr;
static int initialized = 0;
static char *proxy = NULL; /* the proxy name if any */
static int proxyPort; /* the proxy port if any */
/**
* xmlNanoHTTPInit:
*
* Initialize the HTTP protocol layer.
* Currently it just checks for proxy informations
*/
void
xmlNanoHTTPInit(void) {
const char *env;
if (initialized)
return;
if (proxy == NULL) {
proxyPort = 80;
env = getenv("no_proxy");
if (env != NULL)
goto done;
env = getenv("http_proxy");
if (env != NULL) {
xmlNanoHTTPScanProxy(env);
goto done;
}
env = getenv("HTTP_PROXY");
if (env != NULL) {
xmlNanoHTTPScanProxy(env);
goto done;
}
}
done:
initialized = 1;
}
/**
* xmlNanoHTTPClenup:
*
* Cleanup the HTTP protocol layer.
*/
void
xmlNanoHTTPCleanup(void) {
if (proxy != NULL)
xmlFree(proxy);
initialized = 0;
return;
}
/**
* xmlNanoHTTPScanURL:
* @ctxt: an HTTP context
@ -120,6 +172,7 @@ xmlNanoHTTPScanURL(xmlNanoHTTPCtxtPtr ctxt, const char *URL) {
xmlFree(ctxt->path);
ctxt->path = NULL;
}
if (URL == NULL) return;
buf[index] = 0;
while (*cur != 0) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
@ -172,6 +225,76 @@ xmlNanoHTTPScanURL(xmlNanoHTTPCtxtPtr ctxt, const char *URL) {
}
}
/**
* xmlNanoHTTPScanProxy:
* @URL: The proxy URL used to initialize the proxy context
*
* (Re)Initialize the HTTP Proxy context by parsing the URL and finding
* the protocol host port it indicates.
* Should be like http://myproxy/ or http://myproxy:3128/
* A NULL URL cleans up proxy informations.
*/
void
xmlNanoHTTPScanProxy(const char *URL) {
const char *cur = URL;
char buf[4096];
int index = 0;
int port = 0;
if (proxy != NULL) {
xmlFree(proxy);
proxy = NULL;
}
if (proxyPort != 0) {
proxyPort = 0;
}
#ifdef DEBUG_HTTP
if (URL == NULL)
printf("Removing HTTP proxy info\n");
else
printf("Using HTTP proxy %s\n", URL);
#endif
if (URL == NULL) return;
buf[index] = 0;
while (*cur != 0) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[index] = 0;
index = 0;
cur += 3;
break;
}
buf[index++] = *cur++;
}
if (*cur == 0) return;
buf[index] = 0;
while (1) {
if (cur[0] == ':') {
buf[index] = 0;
proxy = xmlMemStrdup(buf);
index = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) proxyPort = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[index] = 0;
proxy = xmlMemStrdup(buf);
index = 0;
break;
}
buf[index++] = *cur++;
}
}
/**
* xmlNanoHTTPNewCtxt:
* @URL: The URL used to initialize the context
@ -598,6 +721,7 @@ xmlNanoHTTPOpen(const char *URL, char **contentType) {
int nbRedirects = 0;
char *redirURL = NULL;
xmlNanoHTTPInit();
if (contentType != NULL) *contentType = NULL;
retry:
@ -618,23 +742,54 @@ retry:
xmlNanoHTTPFreeCtxt(ctxt);
return(NULL);
}
ret = xmlNanoHTTPConnectHost(ctxt->hostname, ctxt->port);
if (proxy)
ret = xmlNanoHTTPConnectHost(proxy, proxyPort);
else
ret = xmlNanoHTTPConnectHost(ctxt->hostname, ctxt->port);
if (ret < 0) {
xmlNanoHTTPFreeCtxt(ctxt);
return(NULL);
}
ctxt->fd = ret;
#ifdef HAVE_SNPRINTF
snprintf(buf, sizeof(buf),"GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->path, ctxt->hostname);
if (proxy) {
#ifdef have_snprintf
if (ctxt->port != 80)
snprintf(buf, sizeof(buf),
"GET http://%s:%d%s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->hostname, ctxt->port, ctxt->path, ctxt->hostname);
else
snprintf(buf, sizeof(buf),"GET http://%s%s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->hostname, ctxt->path, ctxt->hostname);
#else
sprintf(buf, "GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->path, ctxt->hostname);
if (ctxt->port != 80)
sprintf(buf,
"GET http://%s:%d%s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->hostname, ctxt->port, ctxt->path, ctxt->hostname);
else
sprintf(buf, "GET http://%s%s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->hostname, ctxt->path, ctxt->hostname);
#endif
#ifdef DEBUG_HTTP
printf("-> GET %s HTTP/1.0\n-> Host: %s\n\n",
ctxt->path, ctxt->hostname);
if (ctxt->port != 80)
printf("-> Proxy GET http://%s:%d%s HTTP/1.0\n-> Host: %s\n\n",
ctxt->hostname, ctxt->port, ctxt->path, ctxt->hostname);
else
printf("-> Proxy GET http://%s%s HTTP/1.0\n-> Host: %s\n\n",
ctxt->hostname, ctxt->path, ctxt->hostname);
#endif
} else {
#ifdef HAVE_SNPRINTF
snprintf(buf, sizeof(buf),"GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->path, ctxt->hostname);
#else
sprintf(buf, "GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
ctxt->path, ctxt->hostname);
#endif
#ifdef DEBUG_HTTP
printf("-> GET %s HTTP/1.0\n-> Host: %s\n\n",
ctxt->path, ctxt->hostname);
#endif
}
ctxt->outptr = ctxt->out = xmlMemStrdup(buf);
ctxt->state = XML_NANO_HTTP_WRITE;
xmlNanoHTTPSend(ctxt);
@ -645,6 +800,7 @@ retry:
if (head && (*p == 0)) {
head = 0;
ctxt->content = ctxt->inrptr;
xmlFree(p);
break;
}
xmlNanoHTTPScanAnswer(ctxt, p);
@ -984,7 +1140,7 @@ xmlNanoHTTPFetch(const char *URL, const char *filename, char **contentType) {
if (!strcmp(filename, "-"))
fd = 0;
else {
fd = open(filename, O_CREAT | O_WRONLY);
fd = open(filename, O_CREAT | O_WRONLY, 00644);
if (fd < 0) {
xmlNanoHTTPClose(ctxt);
if ((contentType != NULL) && (*contentType != NULL)) {
@ -1000,6 +1156,7 @@ xmlNanoHTTPFetch(const char *URL, const char *filename, char **contentType) {
}
xmlNanoHTTPClose(ctxt);
close(fd);
return(0);
}
@ -1068,6 +1225,8 @@ int main(int argc, char **argv) {
printf("%s: minimal HTTP GET implementation\n", argv[0]);
printf("\tusage %s [ URL [ filename ] ]\n", argv[0]);
}
xmlNanoHTTPCleanup();
xmlMemoryDump();
return(0);
}
#endif /* STANDALONE */

View File

@ -11,6 +11,9 @@
#ifdef __cplusplus
extern "C" {
#endif
void xmlNanoHTTPInit (void);
void xmlNanoHTTPCleanup (void);
void xmlNanoHTTPScanProxy (const char *URL);
int xmlNanoHTTPFetch (const char *URL,
const char *filename,
char **contentType);

4
tree.c
View File

@ -38,6 +38,7 @@ xmlBufferAllocationScheme xmlBufferAllocScheme = XML_BUFFER_ALLOC_EXACT;
static int xmlCompressMode = 0;
static int xmlCheckDTD = 1;
int xmlSaveNoEmptyTags = 0;
#define UPDATE_LAST_CHILD(n) if ((n) != NULL) { \
xmlNodePtr ulccur = (n)->childs; \
@ -4299,7 +4300,8 @@ xmlNodeDump(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, int level,
if (cur->properties != NULL)
xmlAttrListDump(buf, doc, cur->properties);
if ((cur->content == NULL) && (cur->childs == NULL)) {
if ((cur->content == NULL) && (cur->childs == NULL) &&
(!xmlSaveNoEmptyTags)) {
xmlBufferWriteChar(buf, "/>");
return;
}

1
tree.h
View File

@ -317,6 +317,7 @@ extern xmlNsPtr baseDTD;
extern int oldXMLWDcompatibility;/* maintain compatibility with old WD */
extern int xmlIndentTreeOutput; /* try to indent the tree dumps */
extern xmlBufferAllocationScheme xmlBufferAllocScheme; /* alloc scheme to use */
extern int xmlSaveNoEmptyTags; /* save empty tags as <empty></empty> */
/*
* Handling Buffers.