1/**
2***     Transcoding support declarations.
3***
4***     See Copyright for the status of this software.
5***
6***     Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
7**/
8
9#ifndef _TRANSCODE_H_
10#define _TRANSCODE_H_
11
12#include <stdarg.h>
13#include <libxml/dict.h>
14
15
16XMLPUBFUN void          xmlZapDict(xmlDictPtr * dict);
17XMLPUBFUN const char *  xmlTranscodeResult(const xmlChar * s,
18        const char * encoding, xmlDictPtr * dict,
19        void (*freeproc)(const void *));
20XMLPUBFUN const xmlChar * xmlTranscodeString(const char * s,
21        const char * encoding, xmlDictPtr * dict);
22XMLPUBFUN const xmlChar * xmlTranscodeWString(const char * s,
23        const char * encoding, xmlDictPtr * dict);
24XMLPUBFUN const xmlChar * xmlTranscodeHString(const char * s,
25        const char * encoding, xmlDictPtr * dict);
26
27#ifndef XML_NO_SHORT_NAMES
28/**
29***     Since the above functions are generally called "inline" (i.e.: several
30***             times nested in a single expression), define shorthand names
31***             to minimize calling statement length.
32**/
33
34#define xmlTR   xmlTranscodeResult
35#define xmlTS   xmlTranscodeString
36#define xmlTW   xmlTranscodeWString
37#define xmlTH   xmlTranscodeHstring
38#endif
39
40XMLPUBFUN const char *  xmlVasprintf(xmlDictPtr * dict, const char * encoding,
41        const xmlChar * fmt, va_list args);
42
43#endif
44