| 
									
										
										
										
											2018-09-21 08:39:36 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |                             __  __            _ | 
					
						
							|  |  |  |                          ___\ \/ /_ __   __ _| |_ | 
					
						
							|  |  |  |                         / _ \\  /| '_ \ / _` | __| | 
					
						
							|  |  |  |                        |  __//  \| |_) | (_| | |_
 | 
					
						
							|  |  |  |                         \___/_/\_\ .__/ \__,_|\__| | 
					
						
							|  |  |  |                                  |_| XML parser | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Copyright (c) 1997-2000 Thai Open Source Software Center Ltd | 
					
						
							|  |  |  |    Copyright (c) 2000-2017 Expat development team | 
					
						
							|  |  |  |    Licensed under the MIT license: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Permission is  hereby granted,  free of charge,  to any  person obtaining | 
					
						
							|  |  |  |    a  copy  of  this  software   and  associated  documentation  files  (the | 
					
						
							|  |  |  |    "Software"),  to  deal in  the  Software  without restriction,  including | 
					
						
							|  |  |  |    without  limitation the  rights  to use,  copy,  modify, merge,  publish, | 
					
						
							|  |  |  |    distribute, sublicense, and/or sell copies of the Software, and to permit | 
					
						
							|  |  |  |    persons  to whom  the Software  is  furnished to  do so,  subject to  the | 
					
						
							|  |  |  |    following conditions: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The above copyright  notice and this permission notice  shall be included | 
					
						
							|  |  |  |    in all copies or substantial portions of the Software. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    THE  SOFTWARE  IS  PROVIDED  "AS  IS",  WITHOUT  WARRANTY  OF  ANY  KIND, | 
					
						
							|  |  |  |    EXPRESS  OR IMPLIED,  INCLUDING  BUT  NOT LIMITED  TO  THE WARRANTIES  OF | 
					
						
							|  |  |  |    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN | 
					
						
							|  |  |  |    NO EVENT SHALL THE AUTHORS OR  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | 
					
						
							|  |  |  |    DAMAGES OR  OTHER LIABILITY, WHETHER  IN AN  ACTION OF CONTRACT,  TORT OR | 
					
						
							|  |  |  |    OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE | 
					
						
							|  |  |  |    USE OR OTHER DEALINGS IN THE SOFTWARE. | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef Expat_External_INCLUDED
 | 
					
						
							|  |  |  | #define Expat_External_INCLUDED 1
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* External API definitions */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Expat tries very hard to make the API boundary very specifically
 | 
					
						
							|  |  |  |    defined.  There are two macros defined to control this boundary; | 
					
						
							|  |  |  |    each of these can be defined before including this header to | 
					
						
							|  |  |  |    achieve some different behavior, but doing so it not recommended or | 
					
						
							|  |  |  |    tested frequently. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    XMLCALL    - The calling convention to use for all calls across the | 
					
						
							|  |  |  |                 "library boundary."  This will default to cdecl, and | 
					
						
							|  |  |  |                 try really hard to tell the compiler that's what we | 
					
						
							|  |  |  |                 want. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    XMLIMPORT  - Whatever magic is needed to note that a function is | 
					
						
							|  |  |  |                 to be imported from a dynamically loaded library | 
					
						
							|  |  |  |                 (.dll, .so, or .sl, depending on your platform). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The XMLCALL macro was added in Expat 1.95.7.  The only one which is | 
					
						
							|  |  |  |    expected to be directly useful in client code is XMLCALL. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Note that on at least some Unix versions, the Expat library must be | 
					
						
							|  |  |  |    compiled with the cdecl calling convention as the default since | 
					
						
							|  |  |  |    system headers may assume the cdecl convention. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #ifndef XMLCALL
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #  if defined(_MSC_VER)
 | 
					
						
							|  |  |  | #    define XMLCALL __cdecl
 | 
					
						
							|  |  |  | #  elif defined(__GNUC__) && defined(__i386) && ! defined(__INTEL_COMPILER)
 | 
					
						
							|  |  |  | #    define XMLCALL __attribute__((cdecl))
 | 
					
						
							|  |  |  | #  else
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | /* For any platform which uses this definition and supports more than
 | 
					
						
							|  |  |  |    one calling convention, we need to extend this definition to | 
					
						
							|  |  |  |    declare the convention used on that platform, if it's possible to | 
					
						
							|  |  |  |    do so. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    If this is the case for your platform, please file a bug report | 
					
						
							|  |  |  |    with information on how to identify your platform via the C | 
					
						
							|  |  |  |    pre-processor and how to specify the same calling convention as the | 
					
						
							|  |  |  |    platform's malloc() implementation. | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #    define XMLCALL
 | 
					
						
							|  |  |  | #  endif
 | 
					
						
							|  |  |  | #endif /* not defined XMLCALL */
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #if ! defined(XML_STATIC) && ! defined(XMLIMPORT)
 | 
					
						
							|  |  |  | #  ifndef XML_BUILDING_EXPAT
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | /* using Expat from an application */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #    if defined(_MSC_EXTENSIONS) && ! defined(__BEOS__) && ! defined(__CYGWIN__)
 | 
					
						
							|  |  |  | #      define XMLIMPORT __declspec(dllimport)
 | 
					
						
							|  |  |  | #    endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-21 08:39:36 +02:00
										 |  |  | #  endif
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #endif /* not defined XML_STATIC */
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #ifndef XML_ENABLE_VISIBILITY
 | 
					
						
							|  |  |  | #  define XML_ENABLE_VISIBILITY 0
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #if ! defined(XMLIMPORT) && XML_ENABLE_VISIBILITY
 | 
					
						
							|  |  |  | #  define XMLIMPORT __attribute__((visibility("default")))
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* If we didn't define it above, define it away: */ | 
					
						
							|  |  |  | #ifndef XMLIMPORT
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #  define XMLIMPORT
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #if defined(__GNUC__)                                                          \
 | 
					
						
							|  |  |  |     && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) | 
					
						
							|  |  |  | #  define XML_ATTR_MALLOC __attribute__((__malloc__))
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #  define XML_ATTR_MALLOC
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #if defined(__GNUC__)                                                          \
 | 
					
						
							|  |  |  |     && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) | 
					
						
							|  |  |  | #  define XML_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #  define XML_ATTR_ALLOC_SIZE(x)
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef XML_UNICODE_WCHAR_T
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #  ifndef XML_UNICODE
 | 
					
						
							|  |  |  | #    define XML_UNICODE
 | 
					
						
							|  |  |  | #  endif
 | 
					
						
							|  |  |  | #  if defined(__SIZEOF_WCHAR_T__) && (__SIZEOF_WCHAR_T__ != 2)
 | 
					
						
							|  |  |  | #    error "sizeof(wchar_t) != 2; Need -fshort-wchar for both Expat and libc"
 | 
					
						
							|  |  |  | #  endif
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #ifdef XML_UNICODE /* Information is UTF-16 encoded. */
 | 
					
						
							|  |  |  | #  ifdef XML_UNICODE_WCHAR_T
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | typedef wchar_t XML_Char; | 
					
						
							|  |  |  | typedef wchar_t XML_LChar; | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #  else
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | typedef unsigned short XML_Char; | 
					
						
							|  |  |  | typedef char XML_LChar; | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #  endif /* XML_UNICODE_WCHAR_T */
 | 
					
						
							|  |  |  | #else    /* Information is UTF-8 encoded. */
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | typedef char XML_Char; | 
					
						
							|  |  |  | typedef char XML_LChar; | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #endif   /* XML_UNICODE */
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-20 22:07:04 +02:00
										 |  |  | #ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | typedef long long XML_Index; | 
					
						
							|  |  |  | typedef unsigned long long XML_Size; | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | typedef long XML_Index; | 
					
						
							|  |  |  | typedef unsigned long XML_Size; | 
					
						
							|  |  |  | #endif /* XML_LARGE_SIZE */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* not Expat_External_INCLUDED */
 |