mirror of
https://github.com/GNOME/libxml2.git
synced 2025-03-31 19:10:28 +08:00
-Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline - HTMLparser.[ch] HTMLtree.c SAX.c debugXML.c encoding.[ch] encoding.h entities.c error.c list.[ch] nanoftp.c nanohttp.c parser.[ch] parserInternals.[ch] testHTML.c testSAX.c testURI.c testXPath.c tree.[ch] uri.c valid.[ch] xinclude.c xmlIO.[ch] xmllint.c xmlmemory.c xpath.c xpathInternals.h xpointer.[ch] example/gjobread.c: Cleanup, staticfied a number of non-exported functions, detected and cleaned up a dozen of problem found this way, avoided a lot of public function name/typedef/system names clashes - doc/xml.html: updated - configure.in: switched private flags to the really pedantic ones. Daniel
179 lines
5.4 KiB
C
179 lines
5.4 KiB
C
/*
|
|
* xmlIO.h : interface for the I/O interfaces used by the parser
|
|
*
|
|
* See Copyright for the status of this software.
|
|
*
|
|
* Daniel.Veillard@w3.org
|
|
*
|
|
* 15 Nov 2000 ht - modified for VMS
|
|
*/
|
|
|
|
#ifndef __XML_IO_H__
|
|
#define __XML_IO_H__
|
|
|
|
#include <stdio.h>
|
|
#include <libxml/tree.h>
|
|
#include <libxml/parser.h>
|
|
#include <libxml/encoding.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Those are the functions and datatypes for the parser input
|
|
* I/O structures.
|
|
*/
|
|
|
|
typedef int (*xmlInputMatchCallback) (char const *filename);
|
|
typedef void * (*xmlInputOpenCallback) (char const *filename);
|
|
typedef int (*xmlInputReadCallback) (void * context, char * buffer, int len);
|
|
typedef void (*xmlInputCloseCallback) (void * context);
|
|
|
|
typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
|
|
typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
|
|
struct _xmlParserInputBuffer {
|
|
void* context;
|
|
xmlInputReadCallback readcallback;
|
|
xmlInputCloseCallback closecallback;
|
|
|
|
xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
|
|
|
|
xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */
|
|
xmlBufferPtr raw; /* if encoder != NULL buffer for raw input */
|
|
};
|
|
|
|
|
|
/*
|
|
* Those are the functions and datatypes for the library output
|
|
* I/O structures.
|
|
*/
|
|
|
|
typedef int (*xmlOutputMatchCallback) (char const *filename);
|
|
typedef void * (*xmlOutputOpenCallback) (char const *filename);
|
|
typedef int (*xmlOutputWriteCallback) (void * context, const char * buffer,
|
|
int len);
|
|
typedef void (*xmlOutputCloseCallback) (void * context);
|
|
|
|
typedef struct _xmlOutputBuffer xmlOutputBuffer;
|
|
typedef xmlOutputBuffer *xmlOutputBufferPtr;
|
|
struct _xmlOutputBuffer {
|
|
void* context;
|
|
xmlOutputWriteCallback writecallback;
|
|
xmlOutputCloseCallback closecallback;
|
|
|
|
xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
|
|
|
|
xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */
|
|
xmlBufferPtr conv; /* if encoder != NULL buffer for output */
|
|
int written; /* total number of byte written */
|
|
};
|
|
|
|
/*
|
|
* Interfaces for input
|
|
*/
|
|
|
|
void xmlRegisterDefaultInputCallbacks (void);
|
|
xmlParserInputBufferPtr
|
|
xmlAllocParserInputBuffer (xmlCharEncoding enc);
|
|
|
|
#ifdef VMS
|
|
xmlParserInputBufferPtr
|
|
xmlParserInputBufferCreateFname (const char *URI,
|
|
xmlCharEncoding enc);
|
|
#define xmlParserInputBufferCreateFilename xmlParserInputBufferCreateFname
|
|
#else
|
|
xmlParserInputBufferPtr
|
|
xmlParserInputBufferCreateFilename (const char *URI,
|
|
xmlCharEncoding enc);
|
|
#endif
|
|
|
|
xmlParserInputBufferPtr
|
|
xmlParserInputBufferCreateFile (FILE *file,
|
|
xmlCharEncoding enc);
|
|
xmlParserInputBufferPtr
|
|
xmlParserInputBufferCreateFd (int fd,
|
|
xmlCharEncoding enc);
|
|
xmlParserInputBufferPtr
|
|
xmlParserInputBufferCreateMem (const char *mem, int size,
|
|
xmlCharEncoding enc);
|
|
xmlParserInputBufferPtr
|
|
xmlParserInputBufferCreateIO (xmlInputReadCallback ioread,
|
|
xmlInputCloseCallback ioclose,
|
|
void *ioctx,
|
|
xmlCharEncoding enc);
|
|
int xmlParserInputBufferRead (xmlParserInputBufferPtr in,
|
|
int len);
|
|
int xmlParserInputBufferGrow (xmlParserInputBufferPtr in,
|
|
int len);
|
|
int xmlParserInputBufferPush (xmlParserInputBufferPtr in,
|
|
int len,
|
|
const char *buf);
|
|
void xmlFreeParserInputBuffer (xmlParserInputBufferPtr in);
|
|
char * xmlParserGetDirectory (const char *filename);
|
|
|
|
int xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc,
|
|
xmlInputOpenCallback openFunc,
|
|
xmlInputReadCallback readFunc,
|
|
xmlInputCloseCallback closeFunc);
|
|
/*
|
|
* Interfaces for output
|
|
*/
|
|
void xmlRegisterDefaultOutputCallbacks(void);
|
|
xmlOutputBufferPtr
|
|
xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);
|
|
|
|
xmlOutputBufferPtr
|
|
xmlOutputBufferCreateFilename (const char *URI,
|
|
xmlCharEncodingHandlerPtr encoder,
|
|
int compression);
|
|
|
|
xmlOutputBufferPtr
|
|
xmlOutputBufferCreateFile (FILE *file,
|
|
xmlCharEncodingHandlerPtr encoder);
|
|
|
|
xmlOutputBufferPtr
|
|
xmlOutputBufferCreateFd (int fd,
|
|
xmlCharEncodingHandlerPtr encoder);
|
|
|
|
xmlOutputBufferPtr
|
|
xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite,
|
|
xmlOutputCloseCallback ioclose,
|
|
void *ioctx,
|
|
xmlCharEncodingHandlerPtr encoder);
|
|
|
|
int xmlOutputBufferWrite (xmlOutputBufferPtr out,
|
|
int len,
|
|
const char *buf);
|
|
int xmlOutputBufferWriteString (xmlOutputBufferPtr out,
|
|
const char *str);
|
|
|
|
int xmlOutputBufferFlush (xmlOutputBufferPtr out);
|
|
int xmlOutputBufferClose (xmlOutputBufferPtr out);
|
|
|
|
int xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc,
|
|
xmlOutputOpenCallback openFunc,
|
|
xmlOutputWriteCallback writeFunc,
|
|
xmlOutputCloseCallback closeFunc);
|
|
|
|
/*
|
|
* This save function are part of tree.h and HTMLtree.h actually
|
|
*/
|
|
int xmlSaveFileTo (xmlOutputBuffer *buf,
|
|
xmlDocPtr cur,
|
|
const char *encoding);
|
|
void xmlNodeDumpOutput (xmlOutputBufferPtr buf,
|
|
xmlDocPtr doc,
|
|
xmlNodePtr cur,
|
|
int level,
|
|
int format,
|
|
const char *encoding);
|
|
void htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
|
|
xmlDocPtr cur,
|
|
const char *encoding);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __XML_IO_H__ */
|