mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-12-24 21:33:51 +03:00
legacy: Add stubs for disabled modules
When legacy support is requested, always enable stubs for FTP and XPointer location modules which were removed from the standard configuration. Going forward, the --with-legacy configuration option should be used to provide maximum ABI compatibility. Fixes #433.
This commit is contained in:
parent
ed3bd05284
commit
778cca386d
@ -20,6 +20,14 @@ gcc:minimum:
|
||||
BASE_CONFIG: "--with-minimum"
|
||||
CFLAGS: "-O2"
|
||||
|
||||
gcc:legacy:
|
||||
extends: .test
|
||||
only:
|
||||
- schedules
|
||||
variables:
|
||||
BASE_CONFIG: "--with-legacy"
|
||||
CFLAGS: "-O2"
|
||||
|
||||
gcc:python3:
|
||||
extends: .test
|
||||
variables:
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
|
||||
#ifdef LIBXML_FTP_ENABLED
|
||||
#if defined(LIBXML_FTP_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
|
||||
|
||||
/* Needed for portability to Windows 64 bits */
|
||||
#if defined(_WIN32)
|
||||
@ -182,5 +182,5 @@ XMLPUBFUN int
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* LIBXML_FTP_ENABLED */
|
||||
#endif /* defined(LIBXML_FTP_ENABLED) || defined(LIBXML_LEGACY_ENABLED) */
|
||||
#endif /* __NANO_FTP_H__ */
|
||||
|
@ -349,7 +349,7 @@ XMLPUBFUN int
|
||||
/**
|
||||
* Default 'ftp://' protocol callbacks
|
||||
*/
|
||||
#ifdef LIBXML_FTP_ENABLED
|
||||
#if defined(LIBXML_FTP_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
|
||||
XMLPUBFUN int
|
||||
xmlIOFTPMatch (const char *filename);
|
||||
XMLPUBFUN void *
|
||||
@ -360,7 +360,7 @@ XMLPUBFUN int
|
||||
int len);
|
||||
XMLPUBFUN int
|
||||
xmlIOFTPClose (void * context);
|
||||
#endif /* LIBXML_FTP_ENABLED */
|
||||
#endif /* defined(LIBXML_FTP_ENABLED) || defined(LIBXML_LEGACY_ENABLED) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef LIBXML_XPTR_LOCS_ENABLED
|
||||
#if defined(LIBXML_XPTR_LOCS_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
|
||||
/*
|
||||
* A Location Set
|
||||
*/
|
||||
@ -105,7 +105,7 @@ XML_DEPRECATED
|
||||
XMLPUBFUN void
|
||||
xmlXPtrLocationSetRemove (xmlLocationSetPtr cur,
|
||||
int val);
|
||||
#endif /* LIBXML_XPTR_LOCS_ENABLED */
|
||||
#endif /* defined(LIBXML_XPTR_LOCS_ENABLED) || defined(LIBXML_LEGACY_ENABLED) */
|
||||
|
||||
/*
|
||||
* Functions.
|
||||
@ -117,7 +117,8 @@ XMLPUBFUN xmlXPathContextPtr
|
||||
XMLPUBFUN xmlXPathObjectPtr
|
||||
xmlXPtrEval (const xmlChar *str,
|
||||
xmlXPathContextPtr ctx);
|
||||
#ifdef LIBXML_XPTR_LOCS_ENABLED
|
||||
|
||||
#if defined(LIBXML_XPTR_LOCS_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
|
||||
XML_DEPRECATED
|
||||
XMLPUBFUN void
|
||||
xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt,
|
||||
@ -128,7 +129,7 @@ XMLPUBFUN xmlNodePtr
|
||||
XML_DEPRECATED
|
||||
XMLPUBFUN void
|
||||
xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt);
|
||||
#endif /* LIBXML_XPTR_LOCS_ENABLED */
|
||||
#endif /* defined(LIBXML_XPTR_LOCS_ENABLED) || defined(LIBXML_LEGACY_ENABLED) */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
261
legacy.c
261
legacy.c
@ -1338,5 +1338,266 @@ cdataBlock(void *ctx, const xmlChar * value, int len)
|
||||
xmlSAX2CDataBlock(ctx, value, len);
|
||||
}
|
||||
|
||||
/*
|
||||
* nanoftp.h
|
||||
*/
|
||||
|
||||
#ifndef LIBXML_FTP_ENABLED
|
||||
|
||||
#include <libxml/nanoftp.h>
|
||||
|
||||
void
|
||||
xmlNanoFTPInit(void) {
|
||||
}
|
||||
|
||||
void
|
||||
xmlNanoFTPCleanup(void) {
|
||||
}
|
||||
|
||||
void
|
||||
xmlNanoFTPProxy(const char *host ATTRIBUTE_UNUSED, int port ATTRIBUTE_UNUSED,
|
||||
const char *user ATTRIBUTE_UNUSED,
|
||||
const char *passwd ATTRIBUTE_UNUSED, int type ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPUpdateURL(void *ctx ATTRIBUTE_UNUSED,
|
||||
const char *URL ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
void
|
||||
xmlNanoFTPScanProxy(const char *URL ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
void*
|
||||
xmlNanoFTPNewCtxt(const char *URL ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
xmlNanoFTPFreeCtxt(void * ctx ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPGetResponse(void *ctx ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPCheckResponse(void *ctx ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPQuit(void *ctx ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPConnect(void *ctx ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
void*
|
||||
xmlNanoFTPConnectTo(const char *server ATTRIBUTE_UNUSED,
|
||||
int port ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPCwd(void *ctx ATTRIBUTE_UNUSED,
|
||||
const char *directory ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPDele(void *ctx ATTRIBUTE_UNUSED, const char *file ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
SOCKET
|
||||
xmlNanoFTPGetConnection(void *ctx ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPCloseConnection(void *ctx ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPList(void *ctx ATTRIBUTE_UNUSED,
|
||||
ftpListCallback callback ATTRIBUTE_UNUSED,
|
||||
void *userData ATTRIBUTE_UNUSED,
|
||||
const char *filename ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
SOCKET
|
||||
xmlNanoFTPGetSocket(void *ctx ATTRIBUTE_UNUSED,
|
||||
const char *filename ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPGet(void *ctx ATTRIBUTE_UNUSED,
|
||||
ftpDataCallback callback ATTRIBUTE_UNUSED,
|
||||
void *userData ATTRIBUTE_UNUSED,
|
||||
const char *filename ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPRead(void *ctx ATTRIBUTE_UNUSED, void *dest ATTRIBUTE_UNUSED,
|
||||
int len ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
void*
|
||||
xmlNanoFTPOpen(const char *URL ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
int
|
||||
xmlNanoFTPClose(void *ctx ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlIOFTPMatch(const char *filename ATTRIBUTE_UNUSED) {
|
||||
return(0);
|
||||
}
|
||||
|
||||
void *
|
||||
xmlIOFTPOpen(const char *filename ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
int
|
||||
xmlIOFTPRead(void *context ATTRIBUTE_UNUSED, char *buffer ATTRIBUTE_UNUSED,
|
||||
int len ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int
|
||||
xmlIOFTPClose(void *context ATTRIBUTE_UNUSED) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
#endif /* #ifndef LIBXML_FTP_ENABLED */
|
||||
|
||||
/*
|
||||
* xpointer.h
|
||||
*/
|
||||
|
||||
#ifndef LIBXML_XPTR_LOCS_ENABLED
|
||||
|
||||
#include <libxml/xpath.h>
|
||||
#include <libxml/xpathInternals.h>
|
||||
#include <libxml/xpointer.h>
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewRange(xmlNodePtr start ATTRIBUTE_UNUSED,
|
||||
int startindex ATTRIBUTE_UNUSED,
|
||||
xmlNodePtr end ATTRIBUTE_UNUSED,
|
||||
int endindex ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewRangePoints(xmlXPathObjectPtr start ATTRIBUTE_UNUSED,
|
||||
xmlXPathObjectPtr end ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewRangePointNode(xmlXPathObjectPtr start ATTRIBUTE_UNUSED,
|
||||
xmlNodePtr end ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewRangeNodePoint(xmlNodePtr start ATTRIBUTE_UNUSED,
|
||||
xmlXPathObjectPtr end ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewRangeNodes(xmlNodePtr start ATTRIBUTE_UNUSED,
|
||||
xmlNodePtr end ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewCollapsedRange(xmlNodePtr start ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewRangeNodeObject(xmlNodePtr start ATTRIBUTE_UNUSED,
|
||||
xmlXPathObjectPtr end ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlLocationSetPtr
|
||||
xmlXPtrLocationSetCreate(xmlXPathObjectPtr val ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
xmlXPtrLocationSetAdd(xmlLocationSetPtr cur ATTRIBUTE_UNUSED,
|
||||
xmlXPathObjectPtr val ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
xmlLocationSetPtr
|
||||
xmlXPtrLocationSetMerge(xmlLocationSetPtr val1 ATTRIBUTE_UNUSED,
|
||||
xmlLocationSetPtr val2 ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
xmlXPtrLocationSetDel(xmlLocationSetPtr cur ATTRIBUTE_UNUSED,
|
||||
xmlXPathObjectPtr val ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
void
|
||||
xmlXPtrLocationSetRemove(xmlLocationSetPtr cur ATTRIBUTE_UNUSED,
|
||||
int val ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
void
|
||||
xmlXPtrFreeLocationSet(xmlLocationSetPtr obj ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewLocationSetNodes(xmlNodePtr start ATTRIBUTE_UNUSED,
|
||||
xmlNodePtr end ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlXPathObjectPtr
|
||||
xmlXPtrWrapLocationSet(xmlLocationSetPtr val ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
xmlNodePtr
|
||||
xmlXPtrBuildNodeList(xmlXPathObjectPtr obj ATTRIBUTE_UNUSED) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt,
|
||||
int nargs ATTRIBUTE_UNUSED) {
|
||||
XP_ERROR(XPATH_EXPR_ERROR);
|
||||
}
|
||||
|
||||
#endif /* #ifndef LIBXML_XPTR_LOCS_ENABLED */
|
||||
|
||||
#endif /* LIBXML_LEGACY_ENABLED */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user