Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
723ad102
Commit
723ad102
authored
Aug 03, 2004
by
Fred Drake
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update to Expat 1.95.8
parent
33a71a95
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
789 additions
and
361 deletions
+789
-361
Modules/expat/expat.h
Modules/expat/expat.h
+99
-96
Modules/expat/expat_external.h
Modules/expat/expat_external.h
+92
-0
Modules/expat/macconfig.h
Modules/expat/macconfig.h
+0
-45
Modules/expat/xmlparse.c
Modules/expat/xmlparse.c
+587
-218
Modules/expat/xmlrole.c
Modules/expat/xmlrole.c
+5
-0
Modules/expat/xmltok.c
Modules/expat/xmltok.c
+4
-1
Modules/expat/xmltok.h
Modules/expat/xmltok.h
+2
-1
No files found.
Modules/expat/expat.h
View file @
723ad102
...
...
@@ -15,97 +15,11 @@
#endif
#include <stdlib.h>
#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)
#define XML_USE_MSC_EXTENSIONS 1
#endif
/* 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
#if defined(XML_USE_MSC_EXTENSIONS)
#define XMLCALL __cdecl
#elif defined(__GNUC__)
#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
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.
*/
#define XMLCALL
#endif
#endif
/* not defined XMLCALL */
#if !defined(XML_STATIC) && !defined(XMLIMPORT)
#ifndef XML_BUILDING_EXPAT
/* using Expat from an application */
#ifdef XML_USE_MSC_EXTENSIONS
#define XMLIMPORT __declspec(dllimport)
#endif
#endif
#endif
/* not defined XML_STATIC */
/* If we didn't define it above, define it away: */
#ifndef XMLIMPORT
#define XMLIMPORT
#endif
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
#ifdef __cplusplus
extern
"C"
{
#endif
#ifdef XML_UNICODE_WCHAR_T
#define XML_UNICODE
#endif
#include "expat_external.h"
struct
XML_ParserStruct
;
typedef
struct
XML_ParserStruct
*
XML_Parser
;
#ifdef XML_UNICODE
/* Information is UTF-16 encoded. */
#ifdef XML_UNICODE_WCHAR_T
typedef
wchar_t
XML_Char
;
typedef
wchar_t
XML_LChar
;
#else
typedef
unsigned
short
XML_Char
;
typedef
char
XML_LChar
;
#endif
/* XML_UNICODE_WCHAR_T */
#else
/* Information is UTF-8 encoded. */
typedef
char
XML_Char
;
typedef
char
XML_LChar
;
#endif
/* XML_UNICODE */
/* Should this be defined using stdbool.h when C99 is available? */
typedef
unsigned
char
XML_Bool
;
#define XML_TRUE ((XML_Bool) 1)
...
...
@@ -127,8 +41,10 @@ typedef unsigned char XML_Bool;
enum
XML_Status
{
XML_STATUS_ERROR
=
0
,
#define XML_STATUS_ERROR XML_STATUS_ERROR
XML_STATUS_OK
=
1
XML_STATUS_OK
=
1
,
#define XML_STATUS_OK XML_STATUS_OK
XML_STATUS_SUSPENDED
=
2
,
#define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED
};
enum
XML_Error
{
...
...
@@ -159,7 +75,19 @@ enum XML_Error {
XML_ERROR_ENTITY_DECLARED_IN_PE
,
XML_ERROR_FEATURE_REQUIRES_XML_DTD
,
XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING
,
XML_ERROR_UNBOUND_PREFIX
/* Added in 1.95.7. */
XML_ERROR_UNBOUND_PREFIX
,
/* Added in 1.95.8. */
XML_ERROR_UNDECLARING_PREFIX
,
XML_ERROR_INCOMPLETE_PE
,
XML_ERROR_XML_DECL
,
XML_ERROR_TEXT_DECL
,
XML_ERROR_PUBLICID
,
XML_ERROR_SUSPENDED
,
XML_ERROR_NOT_SUSPENDED
,
XML_ERROR_ABORTED
,
XML_ERROR_FINISHED
,
XML_ERROR_SUSPEND_PE
};
enum
XML_Content_Type
{
...
...
@@ -258,9 +186,9 @@ XML_SetXmlDeclHandler(XML_Parser parser,
typedef
struct
{
void
*
(
XMLCALL
*
malloc_fcn
)(
size_t
size
);
void
*
(
XMLCALL
*
realloc_fcn
)(
void
*
ptr
,
size_t
size
);
void
(
XMLCALL
*
free_fcn
)(
void
*
ptr
);
void
*
(
*
malloc_fcn
)(
size_t
size
);
void
*
(
*
realloc_fcn
)(
void
*
ptr
,
size_t
size
);
void
(
*
free_fcn
)(
void
*
ptr
);
}
XML_Memory_Handling_Suite
;
/* Constructs a new parser; encoding is the encoding specified by the
...
...
@@ -600,10 +528,12 @@ XML_SetElementHandler(XML_Parser parser,
XML_EndElementHandler
end
);
XMLPARSEAPI
(
void
)
XML_SetStartElementHandler
(
XML_Parser
,
XML_StartElementHandler
);
XML_SetStartElementHandler
(
XML_Parser
parser
,
XML_StartElementHandler
handler
);
XMLPARSEAPI
(
void
)
XML_SetEndElementHandler
(
XML_Parser
,
XML_EndElementHandler
);
XML_SetEndElementHandler
(
XML_Parser
parser
,
XML_EndElementHandler
handler
);
XMLPARSEAPI
(
void
)
XML_SetCharacterDataHandler
(
XML_Parser
parser
,
...
...
@@ -692,7 +622,8 @@ XML_SetExternalEntityRefHandler(XML_Parser parser,
instead of the parser object.
*/
XMLPARSEAPI
(
void
)
XML_SetExternalEntityRefHandlerArg
(
XML_Parser
,
void
*
arg
);
XML_SetExternalEntityRefHandlerArg
(
XML_Parser
parser
,
void
*
arg
);
XMLPARSEAPI
(
void
)
XML_SetSkippedEntityHandler
(
XML_Parser
parser
,
...
...
@@ -755,6 +686,9 @@ XML_UseParserAsHandlerArg(XML_Parser parser);
specified in the document. In such a case the parser will call the
externalEntityRefHandler with a value of NULL for the systemId
argument (the publicId and context arguments will be NULL as well).
Note: For the purpose of checking WFC: Entity Declared, passing
useDTD == XML_TRUE will make the parser behave as if the document
had a DTD with an external subset.
Note: If this function is called, then this must be done before
the first call to XML_Parse or XML_ParseBuffer, since it will
have no effect after that. Returns
...
...
@@ -818,6 +752,75 @@ XML_GetBuffer(XML_Parser parser, int len);
XMLPARSEAPI
(
enum
XML_Status
)
XML_ParseBuffer
(
XML_Parser
parser
,
int
len
,
int
isFinal
);
/* Stops parsing, causing XML_Parse() or XML_ParseBuffer() to return.
Must be called from within a call-back handler, except when aborting
(resumable = 0) an already suspended parser. Some call-backs may
still follow because they would otherwise get lost. Examples:
- endElementHandler() for empty elements when stopped in
startElementHandler(),
- endNameSpaceDeclHandler() when stopped in endElementHandler(),
and possibly others.
Can be called from most handlers, including DTD related call-backs,
except when parsing an external parameter entity and resumable != 0.
Returns XML_STATUS_OK when successful, XML_STATUS_ERROR otherwise.
Possible error codes:
- XML_ERROR_SUSPENDED: when suspending an already suspended parser.
- XML_ERROR_FINISHED: when the parser has already finished.
- XML_ERROR_SUSPEND_PE: when suspending while parsing an external PE.
When resumable != 0 (true) then parsing is suspended, that is,
XML_Parse() and XML_ParseBuffer() return XML_STATUS_SUSPENDED.
Otherwise, parsing is aborted, that is, XML_Parse() and XML_ParseBuffer()
return XML_STATUS_ERROR with error code XML_ERROR_ABORTED.
*Note*:
This will be applied to the current parser instance only, that is, if
there is a parent parser then it will continue parsing when the
externalEntityRefHandler() returns. It is up to the implementation of
the externalEntityRefHandler() to call XML_StopParser() on the parent
parser (recursively), if one wants to stop parsing altogether.
When suspended, parsing can be resumed by calling XML_ResumeParser().
*/
XMLPARSEAPI
(
enum
XML_Status
)
XML_StopParser
(
XML_Parser
parser
,
XML_Bool
resumable
);
/* Resumes parsing after it has been suspended with XML_StopParser().
Must not be called from within a handler call-back. Returns same
status codes as XML_Parse() or XML_ParseBuffer().
Additional error code XML_ERROR_NOT_SUSPENDED possible.
*Note*:
This must be called on the most deeply nested child parser instance
first, and on its parent parser only after the child parser has finished,
to be applied recursively until the document entity's parser is restarted.
That is, the parent parser will not resume by itself and it is up to the
application to call XML_ResumeParser() on it at the appropriate moment.
*/
XMLPARSEAPI
(
enum
XML_Status
)
XML_ResumeParser
(
XML_Parser
parser
);
enum
XML_Parsing
{
XML_INITIALIZED
,
XML_PARSING
,
XML_FINISHED
,
XML_SUSPENDED
};
typedef
struct
{
enum
XML_Parsing
parsing
;
XML_Bool
finalBuffer
;
}
XML_ParsingStatus
;
/* Returns status of parser with respect to being initialized, parsing,
finished, or suspended and processing the final buffer.
XXX XML_Parse() and XML_ParseBuffer() should return XML_ParsingStatus,
XXX with XML_FINISHED_OK or XML_FINISHED_ERROR replacing XML_FINISHED
*/
XMLPARSEAPI
(
void
)
XML_GetParsingStatus
(
XML_Parser
parser
,
XML_ParsingStatus
*
status
);
/* Creates an XML_Parser object that can parse an external general
entity; context is a '\0'-terminated string specifying the parse
context; encoding is a '\0'-terminated string giving the name of
...
...
@@ -992,7 +995,7 @@ XML_GetFeatureList(void);
*/
#define XML_MAJOR_VERSION 1
#define XML_MINOR_VERSION 95
#define XML_MICRO_VERSION
7
#define XML_MICRO_VERSION
8
#ifdef __cplusplus
}
...
...
Modules/expat/expat_external.h
0 → 100644
View file @
723ad102
/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
See the file COPYING for copying permission.
*/
/* External API definitions */
#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)
#define XML_USE_MSC_EXTENSIONS 1
#endif
/* 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
#if defined(XML_USE_MSC_EXTENSIONS)
#define XMLCALL __cdecl
#elif defined(__GNUC__) && defined(__i386)
#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
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.
*/
#define XMLCALL
#endif
#endif
/* not defined XMLCALL */
#if !defined(XML_STATIC) && !defined(XMLIMPORT)
#ifndef XML_BUILDING_EXPAT
/* using Expat from an application */
#ifdef XML_USE_MSC_EXTENSIONS
#define XMLIMPORT __declspec(dllimport)
#endif
#endif
#endif
/* not defined XML_STATIC */
/* If we didn't define it above, define it away: */
#ifndef XMLIMPORT
#define XMLIMPORT
#endif
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
#ifdef __cplusplus
extern
"C"
{
#endif
#ifdef XML_UNICODE_WCHAR_T
#define XML_UNICODE
#endif
#ifdef XML_UNICODE
/* Information is UTF-16 encoded. */
#ifdef XML_UNICODE_WCHAR_T
typedef
wchar_t
XML_Char
;
typedef
wchar_t
XML_LChar
;
#else
typedef
unsigned
short
XML_Char
;
typedef
char
XML_LChar
;
#endif
/* XML_UNICODE_WCHAR_T */
#else
/* Information is UTF-8 encoded. */
typedef
char
XML_Char
;
typedef
char
XML_LChar
;
#endif
/* XML_UNICODE */
Modules/expat/macconfig.h
View file @
723ad102
...
...
@@ -18,60 +18,15 @@
/* Define to 1 if you have the `bcopy' function. */
#undef HAVE_BCOPY
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `memmove' function. */
#define HAVE_MEMMOVE
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS
/* whether byteorder is bigendian */
#define WORDS_BIGENDIAN
...
...
Modules/expat/xmlparse.c
View file @
723ad102
This diff is collapsed.
Click to expand it.
Modules/expat/xmlrole.c
View file @
723ad102
...
...
@@ -2,6 +2,8 @@
See the file COPYING for copying permission.
*/
#include <stddef.h>
#ifdef COMPILED_FROM_DSP
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
...
...
@@ -12,6 +14,7 @@
#endif
#endif
/* ndef COMPILED_FROM_DSP */
#include "expat_external.h"
#include "internal.h"
#include "xmlrole.h"
#include "ascii.h"
...
...
@@ -370,6 +373,8 @@ internalSubset(PROLOG_STATE *state,
case
XML_TOK_CLOSE_BRACKET
:
state
->
handler
=
doctype5
;
return
XML_ROLE_DOCTYPE_NONE
;
case
XML_TOK_NONE
:
return
XML_ROLE_NONE
;
}
return
common
(
state
,
tok
);
}
...
...
Modules/expat/xmltok.c
View file @
723ad102
...
...
@@ -2,6 +2,8 @@
See the file COPYING for copying permission.
*/
#include <stddef.h>
#ifdef COMPILED_FROM_DSP
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
...
...
@@ -12,6 +14,7 @@
#endif
#endif
/* ndef COMPILED_FROM_DSP */
#include "expat_external.h"
#include "internal.h"
#include "xmltok.h"
#include "nametab.h"
...
...
@@ -1233,7 +1236,7 @@ XmlUtf16Encode(int charNum, unsigned short *buf)
struct
unknown_encoding
{
struct
normal_encoding
normal
;
int
(
*
convert
)(
void
*
userData
,
const
char
*
p
)
;
CONVERTER
convert
;
void
*
userData
;
unsigned
short
utf16
[
256
];
char
utf8
[
256
][
4
];
...
...
Modules/expat/xmltok.h
View file @
723ad102
...
...
@@ -281,7 +281,8 @@ int FASTCALL XmlUtf8Encode(int charNumber, char *buf);
int
FASTCALL
XmlUtf16Encode
(
int
charNumber
,
unsigned
short
*
buf
);
int
XmlSizeOfUnknownEncoding
(
void
);
typedef
int
(
*
CONVERTER
)(
void
*
userData
,
const
char
*
p
);
typedef
int
(
XMLCALL
*
CONVERTER
)
(
void
*
userData
,
const
char
*
p
);
ENCODING
*
XmlInitUnknownEncoding
(
void
*
mem
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment