|
|
@@ -1,5 +1,33 @@
|
|
|
-/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
|
|
|
- See the file COPYING for copying permission.
|
|
|
+/*
|
|
|
+ __ __ _
|
|
|
+ ___\ \/ /_ __ __ _| |_
|
|
|
+ / _ \\ /| '_ \ / _` | __|
|
|
|
+ | __// \| |_) | (_| | |_
|
|
|
+ \___/_/\_\ .__/ \__,_|\__|
|
|
|
+ |_| 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.
|
|
|
*/
|
|
|
|
|
|
#ifndef Expat_External_INCLUDED
|
|
|
@@ -8,7 +36,7 @@
|
|
|
/* External API definitions */
|
|
|
|
|
|
#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)
|
|
|
-#define XML_USE_MSC_EXTENSIONS 1
|
|
|
+# define XML_USE_MSC_EXTENSIONS 1
|
|
|
#endif
|
|
|
|
|
|
/* Expat tries very hard to make the API boundary very specifically
|
|
|
@@ -34,11 +62,11 @@
|
|
|
system headers may assume the cdecl convention.
|
|
|
*/
|
|
|
#ifndef XMLCALL
|
|
|
-#if defined(_MSC_VER)
|
|
|
-#define XMLCALL __cdecl
|
|
|
-#elif defined(__GNUC__) && defined(__i386) && !defined(__INTEL_COMPILER)
|
|
|
-#define XMLCALL __attribute__((cdecl))
|
|
|
-#else
|
|
|
+# if defined(_MSC_VER)
|
|
|
+# define XMLCALL __cdecl
|
|
|
+# elif defined(__GNUC__) && defined(__i386) && !defined(__INTEL_COMPILER)
|
|
|
+# define XMLCALL __attribute__((cdecl))
|
|
|
+# else
|
|
|
/* 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
|
|
|
@@ -49,43 +77,47 @@
|
|
|
pre-processor and how to specify the same calling convention as the
|
|
|
platform's malloc() implementation.
|
|
|
*/
|
|
|
-#define XMLCALL
|
|
|
-#endif
|
|
|
+# define XMLCALL
|
|
|
+# endif
|
|
|
#endif /* not defined XMLCALL */
|
|
|
|
|
|
/* Build within CMake hard-codes use of a static library. */
|
|
|
#define XML_STATIC
|
|
|
|
|
|
#if !defined(XML_STATIC) && !defined(XMLIMPORT)
|
|
|
-#ifndef XML_BUILDING_EXPAT
|
|
|
+# ifndef XML_BUILDING_EXPAT
|
|
|
/* using Expat from an application */
|
|
|
|
|
|
-#ifdef XML_USE_MSC_EXTENSIONS
|
|
|
-#define XMLIMPORT __declspec(dllimport)
|
|
|
-#endif
|
|
|
+# ifdef XML_USE_MSC_EXTENSIONS
|
|
|
+# define XMLIMPORT __declspec(dllimport)
|
|
|
+# endif
|
|
|
|
|
|
-#endif
|
|
|
+# endif
|
|
|
#endif /* not defined XML_STATIC */
|
|
|
|
|
|
-#if !defined(XMLIMPORT) && defined(__GNUC__) && (__GNUC__ >= 4)
|
|
|
-#define XMLIMPORT __attribute__ ((visibility ("default")))
|
|
|
+#ifndef XML_ENABLE_VISIBILITY
|
|
|
+# define XML_ENABLE_VISIBILITY 0
|
|
|
+#endif
|
|
|
+
|
|
|
+#if !defined(XMLIMPORT) && XML_ENABLE_VISIBILITY
|
|
|
+# define XMLIMPORT __attribute__ ((visibility ("default")))
|
|
|
#endif
|
|
|
|
|
|
/* If we didn't define it above, define it away: */
|
|
|
#ifndef XMLIMPORT
|
|
|
-#define XMLIMPORT
|
|
|
+# define XMLIMPORT
|
|
|
#endif
|
|
|
|
|
|
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
|
|
|
-#define XML_ATTR_MALLOC __attribute__((__malloc__))
|
|
|
+# define XML_ATTR_MALLOC __attribute__((__malloc__))
|
|
|
#else
|
|
|
-#define XML_ATTR_MALLOC
|
|
|
+# define XML_ATTR_MALLOC
|
|
|
#endif
|
|
|
|
|
|
#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
|
|
|
-#define XML_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
|
|
|
+# define XML_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
|
|
|
#else
|
|
|
-#define XML_ATTR_ALLOC_SIZE(x)
|
|
|
+# define XML_ATTR_ALLOC_SIZE(x)
|
|
|
#endif
|
|
|
|
|
|
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
|
|
|
@@ -95,33 +127,35 @@ extern "C" {
|
|
|
#endif
|
|
|
|
|
|
#ifdef XML_UNICODE_WCHAR_T
|
|
|
-# define XML_UNICODE
|
|
|
+# 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
|
|
|
#endif
|
|
|
|
|
|
#ifdef XML_UNICODE /* Information is UTF-16 encoded. */
|
|
|
-#ifdef XML_UNICODE_WCHAR_T
|
|
|
+# ifdef XML_UNICODE_WCHAR_T
|
|
|
typedef wchar_t XML_Char;
|
|
|
typedef wchar_t XML_LChar;
|
|
|
-#else
|
|
|
+# else
|
|
|
typedef unsigned short XML_Char;
|
|
|
typedef char XML_LChar;
|
|
|
-#endif /* XML_UNICODE_WCHAR_T */
|
|
|
+# endif /* XML_UNICODE_WCHAR_T */
|
|
|
#else /* Information is UTF-8 encoded. */
|
|
|
typedef char XML_Char;
|
|
|
typedef char XML_LChar;
|
|
|
#endif /* XML_UNICODE */
|
|
|
|
|
|
#ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */
|
|
|
-#if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400
|
|
|
+# if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400
|
|
|
typedef __int64 XML_Index;
|
|
|
typedef unsigned __int64 XML_Size;
|
|
|
-#else
|
|
|
+# else
|
|
|
typedef long long XML_Index;
|
|
|
typedef unsigned long long XML_Size;
|
|
|
-#endif
|
|
|
+# endif
|
|
|
#else
|
|
|
typedef long XML_Index;
|
|
|
typedef unsigned long XML_Size;
|