Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/expat_external.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 /* | |
2 __ __ _ | |
3 ___\ \/ /_ __ __ _| |_ | |
4 / _ \\ /| '_ \ / _` | __| | |
5 | __// \| |_) | (_| | |_ | |
6 \___/_/\_\ .__/ \__,_|\__| | |
7 |_| XML parser | |
8 | |
9 Copyright (c) 1997-2000 Thai Open Source Software Center Ltd | |
10 Copyright (c) 2000 Clark Cooper <coopercc@users.sourceforge.net> | |
11 Copyright (c) 2000-2004 Fred L. Drake, Jr. <fdrake@users.sourceforge.net> | |
12 Copyright (c) 2001-2002 Greg Stein <gstein@users.sourceforge.net> | |
13 Copyright (c) 2002-2006 Karl Waclawek <karl@waclawek.net> | |
14 Copyright (c) 2016 Cristian RodrÃguez <crrodriguez@opensuse.org> | |
15 Copyright (c) 2016-2019 Sebastian Pipping <sebastian@pipping.org> | |
16 Copyright (c) 2017 Rhodri James <rhodri@wildebeest.org.uk> | |
17 Copyright (c) 2018 Yury Gribov <tetra2005@gmail.com> | |
18 Licensed under the MIT license: | |
19 | |
20 Permission is hereby granted, free of charge, to any person obtaining | |
21 a copy of this software and associated documentation files (the | |
22 "Software"), to deal in the Software without restriction, including | |
23 without limitation the rights to use, copy, modify, merge, publish, | |
24 distribute, sublicense, and/or sell copies of the Software, and to permit | |
25 persons to whom the Software is furnished to do so, subject to the | |
26 following conditions: | |
27 | |
28 The above copyright notice and this permission notice shall be included | |
29 in all copies or substantial portions of the Software. | |
30 | |
31 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
32 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
33 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN | |
34 NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | |
35 DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | |
36 OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE | |
37 USE OR OTHER DEALINGS IN THE SOFTWARE. | |
38 */ | |
39 | |
40 #ifndef Expat_External_INCLUDED | |
41 #define Expat_External_INCLUDED 1 | |
42 | |
43 /* External API definitions */ | |
44 | |
45 /* Expat tries very hard to make the API boundary very specifically | |
46 defined. There are two macros defined to control this boundary; | |
47 each of these can be defined before including this header to | |
48 achieve some different behavior, but doing so it not recommended or | |
49 tested frequently. | |
50 | |
51 XMLCALL - The calling convention to use for all calls across the | |
52 "library boundary." This will default to cdecl, and | |
53 try really hard to tell the compiler that's what we | |
54 want. | |
55 | |
56 XMLIMPORT - Whatever magic is needed to note that a function is | |
57 to be imported from a dynamically loaded library | |
58 (.dll, .so, or .sl, depending on your platform). | |
59 | |
60 The XMLCALL macro was added in Expat 1.95.7. The only one which is | |
61 expected to be directly useful in client code is XMLCALL. | |
62 | |
63 Note that on at least some Unix versions, the Expat library must be | |
64 compiled with the cdecl calling convention as the default since | |
65 system headers may assume the cdecl convention. | |
66 */ | |
67 #ifndef XMLCALL | |
68 # if defined(_MSC_VER) | |
69 # define XMLCALL __cdecl | |
70 # elif defined(__GNUC__) && defined(__i386) && ! defined(__INTEL_COMPILER) | |
71 # define XMLCALL __attribute__((cdecl)) | |
72 # else | |
73 /* For any platform which uses this definition and supports more than | |
74 one calling convention, we need to extend this definition to | |
75 declare the convention used on that platform, if it's possible to | |
76 do so. | |
77 | |
78 If this is the case for your platform, please file a bug report | |
79 with information on how to identify your platform via the C | |
80 pre-processor and how to specify the same calling convention as the | |
81 platform's malloc() implementation. | |
82 */ | |
83 # define XMLCALL | |
84 # endif | |
85 #endif /* not defined XMLCALL */ | |
86 | |
87 #if ! defined(XML_STATIC) && ! defined(XMLIMPORT) | |
88 # ifndef XML_BUILDING_EXPAT | |
89 /* using Expat from an application */ | |
90 | |
91 # if defined(_MSC_EXTENSIONS) && ! defined(__BEOS__) && ! defined(__CYGWIN__) | |
92 # define XMLIMPORT __declspec(dllimport) | |
93 # endif | |
94 | |
95 # endif | |
96 #endif /* not defined XML_STATIC */ | |
97 | |
98 #ifndef XML_ENABLE_VISIBILITY | |
99 # define XML_ENABLE_VISIBILITY 0 | |
100 #endif | |
101 | |
102 #if ! defined(XMLIMPORT) && XML_ENABLE_VISIBILITY | |
103 # define XMLIMPORT __attribute__((visibility("default"))) | |
104 #endif | |
105 | |
106 /* If we didn't define it above, define it away: */ | |
107 #ifndef XMLIMPORT | |
108 # define XMLIMPORT | |
109 #endif | |
110 | |
111 #if defined(__GNUC__) \ | |
112 && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) | |
113 # define XML_ATTR_MALLOC __attribute__((__malloc__)) | |
114 #else | |
115 # define XML_ATTR_MALLOC | |
116 #endif | |
117 | |
118 #if defined(__GNUC__) \ | |
119 && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) | |
120 # define XML_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) | |
121 #else | |
122 # define XML_ATTR_ALLOC_SIZE(x) | |
123 #endif | |
124 | |
125 #define XMLPARSEAPI(type) XMLIMPORT type XMLCALL | |
126 | |
127 #ifdef __cplusplus | |
128 extern "C" { | |
129 #endif | |
130 | |
131 #ifdef XML_UNICODE_WCHAR_T | |
132 # ifndef XML_UNICODE | |
133 # define XML_UNICODE | |
134 # endif | |
135 # if defined(__SIZEOF_WCHAR_T__) && (__SIZEOF_WCHAR_T__ != 2) | |
136 # error "sizeof(wchar_t) != 2; Need -fshort-wchar for both Expat and libc" | |
137 # endif | |
138 #endif | |
139 | |
140 #ifdef XML_UNICODE /* Information is UTF-16 encoded. */ | |
141 # ifdef XML_UNICODE_WCHAR_T | |
142 typedef wchar_t XML_Char; | |
143 typedef wchar_t XML_LChar; | |
144 # else | |
145 typedef unsigned short XML_Char; | |
146 typedef char XML_LChar; | |
147 # endif /* XML_UNICODE_WCHAR_T */ | |
148 #else /* Information is UTF-8 encoded. */ | |
149 typedef char XML_Char; | |
150 typedef char XML_LChar; | |
151 #endif /* XML_UNICODE */ | |
152 | |
153 #ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */ | |
154 typedef long long XML_Index; | |
155 typedef unsigned long long XML_Size; | |
156 #else | |
157 typedef long XML_Index; | |
158 typedef unsigned long XML_Size; | |
159 #endif /* XML_LARGE_SIZE */ | |
160 | |
161 #ifdef __cplusplus | |
162 } | |
163 #endif | |
164 | |
165 #endif /* not Expat_External_INCLUDED */ |