• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* libxml2 - Library for parsing XML documents
2  * Copyright (C) 2006-2019 Free Software Foundation, Inc.
3  *
4  * This file is not part of the GNU gettext program, but is used with
5  * GNU gettext.
6  *
7  * The original copyright notice is as follows:
8  */
9 
10 /*
11  * Copyright (C) 1998-2012 Daniel Veillard.  All Rights Reserved.
12  *
13  * Permission is hereby granted, free of charge, to any person obtaining a copy
14  * of this software and associated documentation files (the "Software"), to deal
15  * in the Software without restriction, including without limitation the rights
16  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17  * copies of the Software, and to permit persons to whom the Software is fur-
18  * nished to do so, subject to the following conditions:
19  *
20  * The above copyright notice and this permission notice shall be included in
21  * all copies or substantial portions of the Software.
22  *
23  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
25  * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
26  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29  * THE SOFTWARE.
30  *
31  * Author: breese@users.sourceforge.net
32  */
33 
34 /*
35  * libxml.h: internal header only used during the compilation of libxml
36  */
37 
38 #ifndef __XML_LIBXML_H__
39 #define __XML_LIBXML_H__
40 
41 #ifndef NO_LARGEFILE_SOURCE
42 #ifndef _LARGEFILE_SOURCE
43 #define _LARGEFILE_SOURCE
44 #endif
45 #ifndef _FILE_OFFSET_BITS
46 #define _FILE_OFFSET_BITS 64
47 #endif
48 #endif
49 
50 #if defined(macintosh)
51 #include "config-mac.h"
52 #elif defined(_WIN32_WCE)
53 /*
54  * Windows CE compatibility definitions and functions
55  * This is needed to compile libxml2 for Windows CE.
56  * At least I tested it with WinCE 5.0 for Emulator and WinCE 4.2/SH4 target
57  */
58 #include <win32config.h>
59 #include <libxml/xmlversion.h>
60 #else
61 /*
62  * Currently supported platforms use either autoconf or
63  * copy to config.h own "preset" configuration file.
64  * As result ifdef HAVE_CONFIG_H is omited here.
65  */
66 #include "config.h"
67 #include <libxml/xmlversion.h>
68 #endif
69 
70 #if defined(__Lynx__)
71 #include <stdio.h> /* pull definition of size_t */
72 #include <varargs.h>
73 int snprintf(char *, size_t, const char *, ...);
74 int vfprintf(FILE *, const char *, va_list);
75 #endif
76 
77 #ifndef WITH_TRIO
78 #include <stdio.h>
79 #else
80 /**
81  * TRIO_REPLACE_STDIO:
82  *
83  * This macro is defined if teh trio string formatting functions are to
84  * be used instead of the default stdio ones.
85  */
86 #define TRIO_REPLACE_STDIO
87 #include "trio.h"
88 #endif
89 
90 #if defined(__clang__) || \
91     (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406))
92 #define XML_IGNORE_PEDANTIC_WARNINGS \
93     _Pragma("GCC diagnostic push") \
94     _Pragma("GCC diagnostic ignored \"-Wpedantic\"")
95 #define XML_POP_WARNINGS \
96     _Pragma("GCC diagnostic pop")
97 #else
98 #define XML_IGNORE_PEDANTIC_WARNINGS
99 #define XML_POP_WARNINGS
100 #endif
101 
102 #include <libxml/xmlstring.h>
103 
104 /*
105  * Internal variable indicating if a callback has been registered for
106  * node creation/destruction. It avoids spending a lot of time in locking
107  * function while checking if the callback exists.
108  */
109 extern int __xmlRegisterCallbacks;
110 /*
111  * internal error reporting routines, shared but not partof the API.
112  */
113 void __xmlIOErr(int domain, int code, const char *extra);
114 void __xmlLoaderErr(void *ctx, const char *msg, const char *filename) LIBXML_ATTR_FORMAT(2,0);
115 #ifdef LIBXML_HTML_ENABLED
116 /*
117  * internal function of HTML parser needed for xmlParseInNodeContext
118  * but not part of the API
119  */
120 void __htmlParseContent(void *ctx);
121 #endif
122 
123 /*
124  * internal global initialization critical section routines.
125  */
126 void __xmlGlobalInitMutexLock(void);
127 void __xmlGlobalInitMutexUnlock(void);
128 void __xmlGlobalInitMutexDestroy(void);
129 
130 int __xmlInitializeDict(void);
131 
132 #if defined(HAVE_RAND) && defined(HAVE_SRAND) && defined(HAVE_TIME)
133 /*
134  * internal thread safe random function
135  */
136 int __xmlRandom(void);
137 #endif
138 
139 XMLPUBFUN xmlChar * XMLCALL xmlEscapeFormatString(xmlChar **msg);
140 int xmlInputReadCallbackNop(void *context, char *buffer, int len);
141 
142 #ifdef IN_LIBXML
143 #ifdef __GNUC__
144 #ifdef PIC
145 #ifdef __linux__
146 #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
147 #include "elfgcchack.h"
148 #endif
149 #endif
150 #endif
151 #endif
152 #endif
153 #if !defined(PIC) && !defined(NOLIBTOOL) && !defined(LIBXML_STATIC)
154 # define LIBXML_STATIC 1
155 #endif
156 #endif /* ! __XML_LIBXML_H__ */
157