Artifact
79502484629c99554b998df93e178a69d8484a851ca5739616a37423c2de7d60 :
File
generic/tclexpat.h
— part of check-in
[d41caf001d]
at
2019-03-07 22:45:23
on branch trunk
— Made novem compatible.
(user:
rolf
size: 7809)
[more...]
0000: 23 69 6e 63 6c 75 64 65 20 3c 74 63 6c 2e 68 3e #include <tcl.h>
0010: 0a 23 69 6e 63 6c 75 64 65 20 3c 65 78 70 61 74 .#include <expat
0020: 2e 68 3e 0a 0a 73 74 72 75 63 74 20 54 63 6c 47 .h>..struct TclG
0030: 65 6e 45 78 70 61 74 49 6e 66 6f 3b 0a 0a 74 79 enExpatInfo;..ty
0040: 70 65 64 65 66 20 76 6f 69 64 20 28 2a 43 48 61 pedef void (*CHa
0050: 6e 64 6c 65 72 53 65 74 5f 75 73 65 72 44 61 74 ndlerSet_userDat
0060: 61 52 65 73 65 74 29 28 54 63 6c 5f 49 6e 74 65 aReset)(Tcl_Inte
0070: 72 70 20 2a 69 6e 74 65 72 70 2c 20 76 6f 69 64 rp *interp, void
0080: 20 2a 75 73 65 72 44 61 74 61 29 3b 0a 74 79 70 *userData);.typ
0090: 65 64 65 66 20 76 6f 69 64 20 28 2a 43 48 61 6e edef void (*CHan
00a0: 64 6c 65 72 53 65 74 5f 75 73 65 72 44 61 74 61 dlerSet_userData
00b0: 46 72 65 65 29 28 54 63 6c 5f 49 6e 74 65 72 70 Free)(Tcl_Interp
00c0: 20 2a 69 6e 74 65 72 70 2c 20 76 6f 69 64 20 2a *interp, void *
00d0: 75 73 65 72 44 61 74 61 29 3b 0a 74 79 70 65 64 userData);.typed
00e0: 65 66 20 76 6f 69 64 20 28 2a 43 48 61 6e 64 6c ef void (*CHandl
00f0: 65 72 53 65 74 5f 70 61 72 73 65 72 52 65 73 65 erSet_parserRese
0100: 74 29 28 58 4d 4c 5f 50 61 72 73 65 72 20 70 61 t)(XML_Parser pa
0110: 72 73 65 72 2c 20 76 6f 69 64 20 2a 75 73 65 72 rser, void *user
0120: 44 61 74 61 29 3b 0a 74 79 70 65 64 65 66 20 76 Data);.typedef v
0130: 6f 69 64 20 28 2a 43 48 61 6e 64 6c 65 72 53 65 oid (*CHandlerSe
0140: 74 5f 69 6e 69 74 50 61 72 73 65 29 28 54 63 6c t_initParse)(Tcl
0150: 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c _Interp *interp,
0160: 20 76 6f 69 64 20 2a 75 73 65 72 44 61 74 61 29 void *userData)
0170: 3b 0a 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 ;..typedef struc
0180: 74 20 43 48 61 6e 64 6c 65 72 53 65 74 20 7b 0a t CHandlerSet {.
0190: 20 20 20 20 73 74 72 75 63 74 20 43 48 61 6e 64 struct CHand
01a0: 6c 65 72 53 65 74 20 2a 6e 65 78 74 48 61 6e 64 lerSet *nextHand
01b0: 6c 65 72 53 65 74 3b 0a 20 20 20 20 63 68 61 72 lerSet;. char
01c0: 20 2a 6e 61 6d 65 3b 20 20 20 20 20 20 20 20 20 *name;
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 72 /* r
01e0: 65 66 6e 61 6d 65 20 6f 66 20 74 68 65 20 68 61 efname of the ha
01f0: 6e 64 6c 65 72 20 73 65 74 20 2a 2f 0a 20 20 20 ndler set */.
0200: 20 69 6e 74 20 69 67 6e 6f 72 65 57 68 69 74 65 int ignoreWhite
0210: 43 44 41 54 41 73 3b 20 20 20 20 20 20 20 20 20 CDATAs;
0220: 20 2f 2a 20 69 67 6e 6f 72 65 20 27 77 68 69 74 /* ignore 'whit
0230: 65 27 20 43 44 41 54 41 20 73 65 63 74 69 6f 6e e' CDATA section
0240: 73 20 2a 2f 0a 0a 20 20 20 20 76 6f 69 64 20 2a s */.. void *
0250: 75 73 65 72 44 61 74 61 3b 20 20 20 20 20 20 20 userData;
0260: 20 20 20 20 20 20 20 20 20 20 2f 2a 20 48 61 6e /* Han
0270: 64 6c 65 72 20 73 65 74 20 73 70 65 63 69 66 69 dler set specifi
0280: 63 20 44 61 74 61 20 53 74 72 75 63 74 75 72 65 c Data Structure
0290: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ;.
02a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02b0: 20 20 20 20 20 20 20 20 20 74 68 65 20 43 20 68 the C h
02c0: 61 6e 64 6c 65 72 20 73 65 74 20 65 78 74 65 6e andler set exten
02d0: 73 69 6f 6e 20 68 61 73 20 74 6f 0a 20 20 20 20 sion has to.
02e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0300: 20 20 20 6d 61 6c 6c 6f 63 20 74 68 65 20 6e 65 malloc the ne
0310: 65 64 65 64 20 73 74 72 75 63 74 75 72 65 20 69 eded structure i
0320: 6e 20 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 n his.
0330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0340: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 69 ini
0350: 74 20 66 75 6e 63 20 61 6e 64 20 68 61 73 20 74 t func and has t
0360: 6f 20 70 72 6f 76 69 64 65 20 61 0a 20 20 20 20 o provide a.
0370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0390: 20 20 20 63 6c 65 61 6e 75 70 20 66 75 6e 63 20 cleanup func
03a0: 28 74 6f 20 66 72 65 65 20 69 74 29 2e 20 2a 2f (to free it). */
03b0: 0a 0a 20 20 20 20 43 48 61 6e 64 6c 65 72 53 65 .. CHandlerSe
03c0: 74 5f 75 73 65 72 44 61 74 61 52 65 73 65 74 20 t_userDataReset
03d0: 20 20 20 20 20 20 20 72 65 73 65 74 50 72 6f 63 resetProc
03e0: 3b 0a 20 20 20 20 43 48 61 6e 64 6c 65 72 53 65 ;. CHandlerSe
03f0: 74 5f 75 73 65 72 44 61 74 61 46 72 65 65 20 20 t_userDataFree
0400: 20 20 20 20 20 20 20 66 72 65 65 50 72 6f 63 3b freeProc;
0410: 0a 20 20 20 20 43 48 61 6e 64 6c 65 72 53 65 74 . CHandlerSet
0420: 5f 70 61 72 73 65 72 52 65 73 65 74 20 20 20 20 _parserReset
0430: 20 20 20 20 20 20 70 61 72 73 65 72 52 65 73 65 parserRese
0440: 74 50 72 6f 63 3b 0a 20 20 20 20 43 48 61 6e 64 tProc;. CHand
0450: 6c 65 72 53 65 74 5f 69 6e 69 74 50 61 72 73 65 lerSet_initParse
0460: 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 69 74 init
0470: 50 61 72 73 65 50 72 6f 63 3b 0a 0a 20 20 20 20 ParseProc;..
0480: 2f 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 65 6c /* C func for el
0490: 65 6d 65 6e 74 20 73 74 61 72 74 20 2a 2f 0a 20 ement start */.
04a0: 20 20 20 58 4d 4c 5f 53 74 61 72 74 45 6c 65 6d XML_StartElem
04b0: 65 6e 74 48 61 6e 64 6c 65 72 20 20 20 20 20 20 entHandler
04c0: 20 20 20 20 65 6c 65 6d 65 6e 74 73 74 61 72 74 elementstart
04d0: 63 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f 2a 20 command;. /*
04e0: 43 20 66 75 6e 63 20 66 6f 72 20 65 6c 65 6d 65 C func for eleme
04f0: 6e 74 20 65 6e 64 20 2a 2f 0a 20 20 20 20 58 4d nt end */. XM
0500: 4c 5f 45 6e 64 45 6c 65 6d 65 6e 74 48 61 6e 64 L_EndElementHand
0510: 6c 65 72 20 20 20 20 20 20 20 20 20 20 20 20 65 ler e
0520: 6c 65 6d 65 6e 74 65 6e 64 63 6f 6d 6d 61 6e 64 lementendcommand
0530: 3b 0a 20 20 20 20 2f 2a 20 43 20 66 75 6e 63 20 ;. /* C func
0540: 66 6f 72 20 63 68 61 72 61 63 74 65 72 20 64 61 for character da
0550: 74 61 20 2a 2f 0a 20 20 20 20 58 4d 4c 5f 43 68 ta */. XML_Ch
0560: 61 72 61 63 74 65 72 44 61 74 61 48 61 6e 64 6c aracterDataHandl
0570: 65 72 20 20 20 20 20 20 20 20 20 64 61 74 61 63 er datac
0580: 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f 2a 20 43 ommand;. /* C
0590: 20 66 75 6e 63 20 66 6f 72 20 6e 61 6d 65 73 70 func for namesp
05a0: 61 63 65 20 64 65 63 6c 20 73 74 61 72 74 20 2a ace decl start *
05b0: 2f 0a 20 20 20 20 58 4d 4c 5f 53 74 61 72 74 4e /. XML_StartN
05c0: 61 6d 65 73 70 61 63 65 44 65 63 6c 48 61 6e 64 amespaceDeclHand
05d0: 6c 65 72 20 20 20 20 73 74 61 72 74 6e 73 64 65 ler startnsde
05e0: 63 6c 63 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f clcommand;. /
05f0: 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 6e 61 6d * C func for nam
0600: 65 73 70 61 63 65 20 64 65 63 6c 20 65 6e 64 20 espace decl end
0610: 2a 2f 0a 20 20 20 20 58 4d 4c 5f 45 6e 64 4e 61 */. XML_EndNa
0620: 6d 65 73 70 61 63 65 44 65 63 6c 48 61 6e 64 6c mespaceDeclHandl
0630: 65 72 20 20 20 20 20 20 65 6e 64 6e 73 64 65 63 er endnsdec
0640: 6c 63 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f 2a lcommand;. /*
0650: 20 43 20 66 75 6e 63 20 66 6f 72 20 70 72 6f 63 C func for proc
0660: 65 73 73 69 6e 67 20 69 6e 73 74 72 75 63 74 69 essing instructi
0670: 6f 6e 20 2a 2f 0a 20 20 20 20 58 4d 4c 5f 50 72 on */. XML_Pr
0680: 6f 63 65 73 73 69 6e 67 49 6e 73 74 72 75 63 74 ocessingInstruct
0690: 69 6f 6e 48 61 6e 64 6c 65 72 20 70 69 63 6f 6d ionHandler picom
06a0: 6d 61 6e 64 3b 0a 20 20 20 20 2f 2a 20 43 20 66 mand;. /* C f
06b0: 75 6e 63 20 66 6f 72 20 64 65 66 61 75 6c 74 20 unc for default
06c0: 64 61 74 61 20 2a 2f 0a 20 20 20 20 58 4d 4c 5f data */. XML_
06d0: 44 65 66 61 75 6c 74 48 61 6e 64 6c 65 72 20 20 DefaultHandler
06e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 def
06f0: 61 75 6c 74 63 6f 6d 6d 61 6e 64 3b 0a 20 20 20 aultcommand;.
0700: 20 2f 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 75 /* C func for u
0710: 6e 70 61 72 73 65 64 20 65 6e 74 69 74 79 20 64 nparsed entity d
0720: 65 63 6c 61 72 61 74 69 6f 6e 20 2a 2f 0a 20 20 eclaration */.
0730: 20 20 58 4d 4c 5f 4e 6f 74 61 74 69 6f 6e 44 65 XML_NotationDe
0740: 63 6c 48 61 6e 64 6c 65 72 20 20 20 20 20 20 20 clHandler
0750: 20 20 20 6e 6f 74 61 74 69 6f 6e 63 6f 6d 6d 61 notationcomma
0760: 6e 64 3b 0a 20 20 20 20 2f 2a 20 43 20 66 75 6e nd;. /* C fun
0770: 63 20 66 6f 72 20 65 78 74 65 72 6e 61 6c 20 65 c for external e
0780: 6e 74 69 74 79 20 2a 2f 0a 20 20 20 20 58 4d 4c ntity */. XML
0790: 5f 45 78 74 65 72 6e 61 6c 45 6e 74 69 74 79 52 _ExternalEntityR
07a0: 65 66 48 61 6e 64 6c 65 72 20 20 20 20 20 65 78 efHandler ex
07b0: 74 65 72 6e 61 6c 65 6e 74 69 74 79 63 6f 6d 6d ternalentitycomm
07c0: 61 6e 64 3b 0a 20 20 20 20 2f 2a 20 43 20 66 75 and;. /* C fu
07d0: 6e 63 20 66 6f 72 20 75 6e 6b 6e 6f 77 6e 20 65 nc for unknown e
07e0: 6e 63 6f 64 69 6e 67 20 2a 2f 0a 20 20 20 20 58 ncoding */. X
07f0: 4d 4c 5f 55 6e 6b 6e 6f 77 6e 45 6e 63 6f 64 69 ML_UnknownEncodi
0800: 6e 67 48 61 6e 64 6c 65 72 20 20 20 20 20 20 20 ngHandler
0810: 75 6e 6b 6e 6f 77 6e 65 6e 63 6f 64 69 6e 67 63 unknownencodingc
0820: 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f 2a 20 43 ommand;. /* C
0830: 20 66 75 6e 63 20 66 6f 72 20 63 6f 6d 6d 65 6e func for commen
0840: 74 73 20 2a 2f 0a 20 20 20 20 58 4d 4c 5f 43 6f ts */. XML_Co
0850: 6d 6d 65 6e 74 48 61 6e 64 6c 65 72 20 20 20 20 mmentHandler
0860: 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 comme
0870: 6e 74 43 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f ntCommand;. /
0880: 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 22 6e 6f * C func for "no
0890: 74 20 73 74 61 6e 64 61 6c 6f 6e 65 22 20 64 6f t standalone" do
08a0: 63 73 20 2a 2f 0a 20 20 20 20 58 4d 4c 5f 4e 6f cs */. XML_No
08b0: 74 53 74 61 6e 64 61 6c 6f 6e 65 48 61 6e 64 6c tStandaloneHandl
08c0: 65 72 20 20 20 20 20 20 20 20 20 6e 6f 74 53 74 er notSt
08d0: 61 6e 64 61 6c 6f 6e 65 43 6f 6d 6d 61 6e 64 3b andaloneCommand;
08e0: 0a 20 20 20 20 2f 2a 20 43 20 66 75 6e 63 20 66 . /* C func f
08f0: 6f 72 20 43 44 41 54 41 20 73 65 63 74 69 6f 6e or CDATA section
0900: 20 73 74 61 72 74 20 2a 2f 0a 20 20 20 20 58 4d start */. XM
0910: 4c 5f 53 74 61 72 74 43 64 61 74 61 53 65 63 74 L_StartCdataSect
0920: 69 6f 6e 48 61 6e 64 6c 65 72 20 20 20 20 20 73 ionHandler s
0930: 74 61 72 74 43 64 61 74 61 53 65 63 74 69 6f 6e tartCdataSection
0940: 43 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f 2a 20 Command;. /*
0950: 43 20 66 75 6e 63 20 66 6f 72 20 43 44 41 54 41 C func for CDATA
0960: 20 73 65 63 74 69 6f 6e 20 65 6e 64 20 2a 2f 0a section end */.
0970: 20 20 20 20 58 4d 4c 5f 45 6e 64 43 64 61 74 61 XML_EndCdata
0980: 53 65 63 74 69 6f 6e 48 61 6e 64 6c 65 72 20 20 SectionHandler
0990: 20 20 20 20 20 65 6e 64 43 64 61 74 61 53 65 63 endCdataSec
09a0: 74 69 6f 6e 43 6f 6d 6d 61 6e 64 3b 0a 20 20 20 tionCommand;.
09b0: 20 2f 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 3c /* C func for <
09c0: 21 45 4c 45 4d 45 4e 54 20 64 65 63 6c 27 73 20 !ELEMENT decl's
09d0: 2a 2f 0a 20 20 20 20 58 4d 4c 5f 45 6c 65 6d 65 */. XML_Eleme
09e0: 6e 74 44 65 63 6c 48 61 6e 64 6c 65 72 20 20 20 ntDeclHandler
09f0: 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 44 elementD
0a00: 65 63 6c 43 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 eclCommand;.
0a10: 2f 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 3c 21 /* C func for <!
0a20: 41 54 54 4c 49 53 54 20 64 65 63 6c 27 73 20 2a ATTLIST decl's *
0a30: 2f 0a 20 20 20 20 58 4d 4c 5f 41 74 74 6c 69 73 /. XML_Attlis
0a40: 74 44 65 63 6c 48 61 6e 64 6c 65 72 20 20 20 20 tDeclHandler
0a50: 20 20 20 20 20 20 20 61 74 74 6c 69 73 74 44 65 attlistDe
0a60: 63 6c 43 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f clCommand;. /
0a70: 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 3c 21 44 * C func for <!D
0a80: 4f 43 54 59 50 45 20 64 65 63 6c 27 73 20 2a 2f OCTYPE decl's */
0a90: 0a 20 20 20 20 58 4d 4c 5f 53 74 61 72 74 44 6f . XML_StartDo
0aa0: 63 74 79 70 65 44 65 63 6c 48 61 6e 64 6c 65 72 ctypeDeclHandler
0ab0: 20 20 20 20 20 20 73 74 61 72 74 44 6f 63 74 79 startDocty
0ac0: 70 65 44 65 63 6c 43 6f 6d 6d 61 6e 64 3b 0a 20 peDeclCommand;.
0ad0: 20 20 20 2f 2a 20 43 20 66 75 6e 63 20 66 6f 72 /* C func for
0ae0: 20 3c 21 44 4f 43 54 59 50 45 20 64 65 63 6c 20 <!DOCTYPE decl
0af0: 65 6e 64 73 20 2a 2f 0a 20 20 20 20 58 4d 4c 5f ends */. XML_
0b00: 45 6e 64 44 6f 63 74 79 70 65 44 65 63 6c 48 61 EndDoctypeDeclHa
0b10: 6e 64 6c 65 72 20 20 20 20 20 20 20 20 65 6e 64 ndler end
0b20: 44 6f 63 74 79 70 65 44 65 63 6c 43 6f 6d 6d 61 DoctypeDeclComma
0b30: 6e 64 3b 0a 20 20 20 20 2f 2a 20 43 20 66 75 6e nd;. /* C fun
0b40: 63 20 66 6f 72 20 3c 3f 58 4d 4c 20 64 65 63 6c c for <?XML decl
0b50: 27 73 20 2a 2f 0a 20 20 20 20 58 4d 4c 5f 58 6d 's */. XML_Xm
0b60: 6c 44 65 63 6c 48 61 6e 64 6c 65 72 20 20 20 20 lDeclHandler
0b70: 20 20 20 20 20 20 20 20 20 20 20 78 6d 6c 44 65 xmlDe
0b80: 63 6c 43 6f 6d 6d 61 6e 64 3b 0a 20 20 20 20 2f clCommand;. /
0b90: 2a 20 43 20 66 75 6e 63 20 66 6f 72 20 3c 21 45 * C func for <!E
0ba0: 4e 54 49 54 59 20 64 65 63 6c 73 27 73 20 2a 2f NTITY decls's */
0bb0: 0a 20 20 20 20 58 4d 4c 5f 45 6e 74 69 74 79 44 . XML_EntityD
0bc0: 65 63 6c 48 61 6e 64 6c 65 72 20 20 20 20 20 20 eclHandler
0bd0: 20 20 20 20 20 20 65 6e 74 69 74 79 44 65 63 6c entityDecl
0be0: 43 6f 6d 6d 61 6e 64 3b 0a 7d 20 43 48 61 6e 64 Command;.} CHand
0bf0: 6c 65 72 53 65 74 3b 0a 0a 2f 2a 2d 2d 2d 2d 2d lerSet;../*-----
0c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c40: 2d 2d 2d 2d 2d 2d 2d 0a 7c 20 20 20 54 68 65 20 -------.| The
0c50: 73 74 72 75 63 74 75 72 65 20 62 65 6c 6f 77 20 structure below
0c60: 69 73 20 75 73 65 64 20 74 6f 20 72 65 66 65 72 is used to refer
0c70: 20 74 6f 20 61 6e 20 65 76 65 6e 74 20 68 61 6e to an event han
0c80: 64 6c 65 72 20 73 65 74 0a 7c 20 20 20 6f 66 20 dler set.| of
0c90: 74 63 6c 20 73 63 72 69 70 74 73 2e 0a 5c 2d 2d tcl scripts..\--
0ca0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0cb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0cc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0cd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 2f 0a 0a 74 79 70 ---------*/..typ
0cf0: 65 64 65 66 20 73 74 72 75 63 74 20 54 63 6c 48 edef struct TclH
0d00: 61 6e 64 6c 65 72 53 65 74 20 7b 0a 20 20 20 20 andlerSet {.
0d10: 73 74 72 75 63 74 20 54 63 6c 48 61 6e 64 6c 65 struct TclHandle
0d20: 72 53 65 74 20 2a 6e 65 78 74 48 61 6e 64 6c 65 rSet *nextHandle
0d30: 72 53 65 74 3b 0a 20 20 20 20 63 68 61 72 20 2a rSet;. char *
0d40: 6e 61 6d 65 3b 20 20 20 20 20 20 20 20 20 20 20 name;
0d50: 20 20 20 20 20 20 20 20 20 20 2f 2a 20 72 65 66 /* ref
0d60: 6e 61 6d 65 20 6f 66 20 74 68 65 20 68 61 6e 64 name of the hand
0d70: 6c 65 72 20 73 65 74 20 2a 2f 0a 20 20 20 20 69 ler set */. i
0d80: 6e 74 20 73 74 61 74 75 73 3b 20 20 20 20 20 20 nt status;
0d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f /
0da0: 2a 20 68 61 6e 64 6c 65 72 20 73 65 74 20 73 74 * handler set st
0db0: 61 74 75 73 20 2a 2f 0a 20 20 20 20 69 6e 74 20 atus */. int
0dc0: 63 6f 6e 74 69 6e 75 65 43 6f 75 6e 74 3b 09 09 continueCount;..
0dd0: 20 20 20 20 2f 2a 20 72 65 66 65 72 65 6e 63 65 /* reference
0de0: 20 63 6f 75 6e 74 20 66 6f 72 20 63 6f 6e 74 69 count for conti
0df0: 6e 75 65 20 2a 2f 0a 20 20 20 20 69 6e 74 20 69 nue */. int i
0e00: 67 6e 6f 72 65 57 68 69 74 65 43 44 41 54 41 73 gnoreWhiteCDATAs
0e10: 3b 20 20 20 20 20 20 20 20 20 20 2f 2a 20 69 67 ; /* ig
0e20: 6e 6f 72 65 20 27 77 68 69 74 65 27 20 43 44 41 nore 'white' CDA
0e30: 54 41 20 73 65 63 74 69 6f 6e 73 20 2a 2f 0a 0a TA sections */..
0e40: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 6c 65 Tcl_Obj *ele
0e50: 6d 65 6e 74 73 74 61 72 74 63 6f 6d 6d 61 6e 64 mentstartcommand
0e60: 3b 20 20 20 20 20 20 2f 2a 20 53 63 72 69 70 74 ; /* Script
0e70: 20 66 6f 72 20 65 6c 65 6d 65 6e 74 20 73 74 61 for element sta
0e80: 72 74 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 rt */. Tcl_Ob
0e90: 6a 43 6d 64 50 72 6f 63 20 2a 65 6c 65 6d 65 6e jCmdProc *elemen
0ea0: 74 73 74 61 72 74 4f 62 6a 50 72 6f 63 3b 0a 20 tstartObjProc;.
0eb0: 20 20 20 43 6c 69 65 6e 74 44 61 74 61 20 20 20 ClientData
0ec0: 20 20 20 65 6c 65 6d 65 6e 74 73 74 61 72 74 63 elementstartc
0ed0: 6c 69 65 6e 74 44 61 74 61 3b 0a 20 20 20 20 54 lientData;. T
0ee0: 63 6c 5f 4f 62 6a 20 2a 65 6c 65 6d 65 6e 74 65 cl_Obj *elemente
0ef0: 6e 64 63 6f 6d 6d 61 6e 64 3b 20 20 20 20 20 20 ndcommand;
0f00: 20 20 2f 2a 20 53 63 72 69 70 74 20 66 6f 72 20 /* Script for
0f10: 65 6c 65 6d 65 6e 74 20 65 6e 64 20 2a 2f 0a 20 element end */.
0f20: 20 20 20 54 63 6c 5f 4f 62 6a 43 6d 64 50 72 6f Tcl_ObjCmdPro
0f30: 63 20 2a 65 6c 65 6d 65 6e 74 65 6e 64 4f 62 6a c *elementendObj
0f40: 50 72 6f 63 3b 0a 20 20 20 20 43 6c 69 65 6e 74 Proc;. Client
0f50: 44 61 74 61 20 20 20 20 20 20 65 6c 65 6d 65 6e Data elemen
0f60: 74 65 6e 64 63 6c 69 65 6e 74 44 61 74 61 3b 0a tendclientData;.
0f70: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 64 61 74 Tcl_Obj *dat
0f80: 61 63 6f 6d 6d 61 6e 64 3b 09 20 20 20 20 20 20 acommand;.
0f90: 20 2f 2a 20 53 63 72 69 70 74 20 66 6f 72 20 63 /* Script for c
0fa0: 68 61 72 61 63 74 65 72 20 64 61 74 61 20 2a 2f haracter data */
0fb0: 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 43 6d 64 50 . Tcl_ObjCmdP
0fc0: 72 6f 63 20 2a 64 61 74 61 63 6f 6d 6d 61 6e 64 roc *datacommand
0fd0: 4f 62 6a 50 72 6f 63 3b 0a 20 20 20 20 43 6c 69 ObjProc;. Cli
0fe0: 65 6e 74 44 61 74 61 20 20 20 20 20 20 64 61 74 entData dat
0ff0: 61 63 6f 6d 6d 61 6e 64 63 6c 69 65 6e 74 44 61 acommandclientDa
1000: 74 61 3b 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 ta;. Tcl_Obj
1010: 2a 73 74 61 72 74 6e 73 64 65 63 6c 63 6f 6d 6d *startnsdeclcomm
1020: 61 6e 64 3b 20 20 20 20 20 20 20 2f 2a 20 53 63 and; /* Sc
1030: 72 69 70 74 20 66 6f 72 20 6e 61 6d 65 73 70 61 ript for namespa
1040: 63 65 20 64 65 63 6c 20 73 74 61 72 74 20 2a 2f ce decl start */
1050: 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 6e . Tcl_Obj *en
1060: 64 6e 73 64 65 63 6c 63 6f 6d 6d 61 6e 64 3b 20 dnsdeclcommand;
1070: 20 20 20 20 20 20 20 20 2f 2a 20 53 63 72 69 70 /* Scrip
1080: 74 20 66 6f 72 20 6e 61 6d 65 73 70 61 63 65 20 t for namespace
1090: 64 65 63 6c 20 65 6e 64 20 2a 2f 0a 20 20 20 20 decl end */.
10a0: 54 63 6c 5f 4f 62 6a 20 2a 70 69 63 6f 6d 6d 61 Tcl_Obj *picomma
10b0: 6e 64 3b 09 09 20 20 20 20 20 20 20 2f 2a 20 53 nd;.. /* S
10c0: 63 72 69 70 74 20 66 6f 72 20 70 72 6f 63 65 73 cript for proces
10d0: 73 69 6e 67 20 69 6e 73 74 72 75 63 74 69 6f 6e sing instruction
10e0: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 */. Tcl_Obj
10f0: 2a 64 65 66 61 75 6c 74 63 6f 6d 6d 61 6e 64 3b *defaultcommand;
1100: 09 20 20 20 20 20 20 20 2f 2a 20 53 63 72 69 70 . /* Scrip
1110: 74 20 66 6f 72 20 64 65 66 61 75 6c 74 20 64 61 t for default da
1120: 74 61 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 ta */. Tcl_Ob
1130: 6a 20 2a 6e 6f 74 61 74 69 6f 6e 63 6f 6d 6d 61 j *notationcomma
1140: 6e 64 3b 09 20 20 20 20 20 20 20 2f 2a 20 53 63 nd;. /* Sc
1150: 72 69 70 74 20 66 6f 72 20 6e 6f 74 61 74 69 6f ript for notatio
1160: 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 2a 2f n declaration */
1170: 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 78 . Tcl_Obj *ex
1180: 74 65 72 6e 61 6c 65 6e 74 69 74 79 63 6f 6d 6d ternalentitycomm
1190: 61 6e 64 3b 20 20 20 20 2f 2a 20 53 63 72 69 70 and; /* Scrip
11a0: 74 20 66 6f 72 20 65 78 74 65 72 6e 61 6c 20 65 t for external e
11b0: 6e 74 69 74 79 20 2a 2f 0a 20 20 20 20 54 63 6c ntity */. Tcl
11c0: 5f 4f 62 6a 20 2a 75 6e 6b 6e 6f 77 6e 65 6e 63 _Obj *unknownenc
11d0: 6f 64 69 6e 67 63 6f 6d 6d 61 6e 64 3b 20 20 20 odingcommand;
11e0: 2f 2a 20 53 63 72 69 70 74 20 66 6f 72 20 75 6e /* Script for un
11f0: 6b 6e 6f 77 6e 20 65 6e 63 6f 64 69 6e 67 20 2a known encoding *
1200: 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 63 /. Tcl_Obj *c
1210: 6f 6d 6d 65 6e 74 43 6f 6d 6d 61 6e 64 3b 20 20 ommentCommand;
1220: 20 20 20 20 20 20 20 20 20 2f 2a 20 53 63 72 69 /* Scri
1230: 70 74 20 66 6f 72 20 63 6f 6d 6d 65 6e 74 73 20 pt for comments
1240: 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a */. Tcl_Obj *
1250: 6e 6f 74 53 74 61 6e 64 61 6c 6f 6e 65 43 6f 6d notStandaloneCom
1260: 6d 61 6e 64 3b 20 20 20 20 20 2f 2a 20 53 63 72 mand; /* Scr
1270: 69 70 74 20 66 6f 72 20 22 6e 6f 74 20 73 74 61 ipt for "not sta
1280: 6e 64 61 6c 6f 6e 65 22 20 64 6f 63 73 20 2a 2f ndalone" docs */
1290: 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 73 74 . Tcl_Obj *st
12a0: 61 72 74 43 64 61 74 61 53 65 63 74 69 6f 6e 43 artCdataSectionC
12b0: 6f 6d 6d 61 6e 64 3b 20 2f 2a 20 53 63 72 69 70 ommand; /* Scrip
12c0: 74 20 66 6f 72 20 43 44 41 54 41 20 73 65 63 74 t for CDATA sect
12d0: 69 6f 6e 20 73 74 61 72 74 20 2a 2f 0a 20 20 20 ion start */.
12e0: 20 54 63 6c 5f 4f 62 6a 20 2a 65 6e 64 43 64 61 Tcl_Obj *endCda
12f0: 74 61 53 65 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 taSectionCommand
1300: 3b 20 20 20 2f 2a 20 53 63 72 69 70 74 20 66 6f ; /* Script fo
1310: 72 20 43 44 41 54 41 20 73 65 63 74 69 6f 6e 20 r CDATA section
1320: 65 6e 64 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f end */. Tcl_O
1330: 62 6a 20 2a 65 6c 65 6d 65 6e 74 44 65 63 6c 43 bj *elementDeclC
1340: 6f 6d 6d 61 6e 64 3b 20 20 20 20 20 20 20 2f 2a ommand; /*
1350: 20 53 63 72 69 70 74 20 66 6f 72 20 3c 21 45 4c Script for <!EL
1360: 45 4d 45 4e 54 20 64 65 63 6c 27 73 20 2a 2f 0a EMENT decl's */.
1370: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 61 74 74 Tcl_Obj *att
1380: 6c 69 73 74 44 65 63 6c 43 6f 6d 6d 61 6e 64 3b listDeclCommand;
1390: 20 20 20 20 20 20 20 2f 2a 20 53 63 72 69 70 74 /* Script
13a0: 20 66 6f 72 20 3c 21 41 54 54 4c 49 53 54 20 64 for <!ATTLIST d
13b0: 65 63 6c 27 73 20 2a 2f 0a 20 20 20 20 54 63 6c ecl's */. Tcl
13c0: 5f 4f 62 6a 20 2a 73 74 61 72 74 44 6f 63 74 79 _Obj *startDocty
13d0: 70 65 44 65 63 6c 43 6f 6d 6d 61 6e 64 3b 20 20 peDeclCommand;
13e0: 2f 2a 20 53 63 72 69 70 74 20 66 6f 72 20 3c 21 /* Script for <!
13f0: 44 4f 43 54 59 50 45 20 64 65 63 6c 27 73 20 2a DOCTYPE decl's *
1400: 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 /. Tcl_Obj *e
1410: 6e 64 44 6f 63 74 79 70 65 44 65 63 6c 43 6f 6d ndDoctypeDeclCom
1420: 6d 61 6e 64 3b 20 20 20 20 2f 2a 20 53 63 72 69 mand; /* Scri
1430: 70 74 20 66 6f 72 20 3c 21 44 4f 43 54 59 50 45 pt for <!DOCTYPE
1440: 20 64 65 63 6c 20 65 6e 64 73 20 2a 2f 0a 20 20 decl ends */.
1450: 20 20 54 63 6c 5f 4f 62 6a 20 2a 78 6d 6c 44 65 Tcl_Obj *xmlDe
1460: 63 6c 43 6f 6d 6d 61 6e 64 3b 20 20 20 20 20 20 clCommand;
1470: 20 20 20 20 20 2f 2a 20 53 63 72 69 70 74 20 66 /* Script f
1480: 6f 72 20 3c 3f 58 4d 4c 20 64 65 63 6c 27 73 20 or <?XML decl's
1490: 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a */. Tcl_Obj *
14a0: 65 6e 74 69 74 79 44 65 63 6c 43 6f 6d 6d 61 6e entityDeclComman
14b0: 64 3b 20 20 20 20 20 20 20 20 2f 2a 20 53 63 72 d; /* Scr
14c0: 69 70 74 20 66 6f 72 20 3c 21 45 4e 54 49 54 59 ipt for <!ENTITY
14d0: 20 64 65 63 6c 27 73 20 2a 2f 0a 7d 20 54 63 6c decl's */.} Tcl
14e0: 48 61 6e 64 6c 65 72 53 65 74 3b 0a 0a 74 79 70 HandlerSet;..typ
14f0: 65 64 65 66 20 73 74 72 75 63 74 20 65 78 70 61 edef struct expa
1500: 74 45 6c 65 6d 43 6f 6e 74 65 6e 74 20 7b 0a 0a tElemContent {..
1510: 20 20 20 20 58 4d 4c 5f 43 6f 6e 74 65 6e 74 20 XML_Content
1520: 20 20 20 20 20 20 20 20 20 20 20 20 2a 63 6f 6e *con
1530: 74 65 6e 74 3b 0a 20 20 20 20 73 74 72 75 63 74 tent;. struct
1540: 20 65 78 70 61 74 45 6c 65 6d 43 6f 6e 74 65 6e expatElemConten
1550: 74 20 2a 6e 65 78 74 3b 0a 0a 7d 20 45 78 70 61 t *next;..} Expa
1560: 74 45 6c 65 6d 43 6f 6e 74 65 6e 74 3b 0a 0a 74 tElemContent;..t
1570: 79 70 65 64 65 66 20 73 74 72 75 63 74 20 54 63 ypedef struct Tc
1580: 6c 47 65 6e 45 78 70 61 74 49 6e 66 6f 20 7b 0a lGenExpatInfo {.
1590: 20 20 20 20 58 4d 4c 5f 50 61 72 73 65 72 20 20 XML_Parser
15a0: 70 61 72 73 65 72 3b 09 09 2f 2a 20 54 68 65 20 parser;../* The
15b0: 65 78 70 61 74 20 70 61 72 73 65 72 20 73 74 72 expat parser str
15c0: 75 63 74 75 72 65 20 2a 2f 0a 20 20 20 20 54 63 ucture */. Tc
15d0: 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 l_Interp *interp
15e0: 3b 09 09 2f 2a 20 49 6e 74 65 72 70 72 65 74 65 ;../* Interprete
15f0: 72 20 66 6f 72 20 74 68 69 73 20 69 6e 73 74 61 r for this insta
1600: 6e 63 65 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f nce */. Tcl_O
1610: 62 6a 20 20 20 20 2a 6e 61 6d 65 3b 09 09 2f 2a bj *name;../*
1620: 20 6e 61 6d 65 20 6f 66 20 74 68 69 73 20 69 6e name of this in
1630: 73 74 61 6e 63 65 20 2a 2f 0a 20 20 20 20 69 6e stance */. in
1640: 74 20 66 69 6e 61 6c 3b 09 09 09 2f 2a 20 69 6e t final;.../* in
1650: 70 75 74 20 64 61 74 61 20 63 6f 6d 70 6c 65 74 put data complet
1660: 65 3f 20 2a 2f 0a 20 20 20 20 69 6e 74 20 6e 65 e? */. int ne
1670: 65 64 57 53 43 68 65 63 6b 3b 20 20 20 20 20 20 edWSCheck;
1680: 20 20 20 20 20 20 2f 2a 20 41 6e 79 20 68 61 6e /* Any han
1690: 64 6c 65 72 20 73 65 74 20 68 61 73 20 69 67 6e dler set has ign
16a0: 6f 72 65 57 68 69 74 65 43 44 41 54 41 73 3d 3d oreWhiteCDATAs==
16b0: 31 3f 20 2a 2f 0a 20 20 20 20 69 6e 74 20 73 74 1? */. int st
16c0: 61 74 75 73 3b 09 09 09 2f 2a 20 61 70 70 6c 69 atus;.../* appli
16d0: 63 61 74 69 6f 6e 20 73 74 61 74 75 73 20 2a 2f cation status */
16e0: 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 72 65 . Tcl_Obj *re
16f0: 73 75 6c 74 3b 09 09 2f 2a 20 61 70 70 6c 69 63 sult;../* applic
1700: 61 74 69 6f 6e 20 72 65 74 75 72 6e 20 72 65 73 ation return res
1710: 75 6c 74 20 2a 2f 0a 20 20 20 20 63 6f 6e 73 74 ult */. const
1720: 20 63 68 61 72 20 2a 63 6f 6e 74 65 78 74 3b 20 char *context;
1730: 20 20 20 20 20 20 20 2f 2a 20 72 65 66 65 72 65 /* refere
1740: 6e 63 65 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 nce to the conte
1750: 78 74 20 70 6f 69 6e 74 65 72 20 2a 2f 20 20 0a xt pointer */ .
1760: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 63 64 61 Tcl_Obj *cda
1770: 74 61 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 ta;
1780: 2f 2a 20 41 63 63 75 6d 75 6c 61 74 65 73 20 63 /* Accumulates c
1790: 68 61 72 61 63 74 65 72 20 64 61 74 61 20 2a 2f haracter data */
17a0: 20 0a 20 20 20 20 45 78 70 61 74 45 6c 65 6d 43 . ExpatElemC
17b0: 6f 6e 74 65 6e 74 20 2a 65 43 6f 6e 74 65 6e 74 ontent *eContent
17c0: 73 3b 2f 2a 20 54 68 65 20 72 65 70 6f 72 74 65 s;/* The reporte
17d0: 64 20 58 4d 4c 5f 43 6f 6e 74 65 6e 74 73 20 61 d XML_Contents a
17e0: 73 20 6c 69 6e 6b 65 64 20 6c 69 73 74 20 2a 2f s linked list */
17f0: 0a 20 20 20 20 69 6e 74 20 6e 73 5f 6d 6f 64 65 . int ns_mode
1800: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ;
1810: 20 2f 2a 20 6e 61 6d 65 73 70 61 63 65 20 6d 6f /* namespace mo
1820: 64 65 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 de */. Tcl_Ob
1830: 6a 20 2a 62 61 73 65 55 52 49 3b 0a 20 20 20 20 j *baseURI;.
1840: 69 6e 74 20 66 69 6e 69 73 68 65 64 3b 0a 20 20 int finished;.
1850: 20 20 69 6e 74 20 70 61 72 73 69 6e 67 53 74 61 int parsingSta
1860: 74 65 3b 20 20 20 20 20 20 20 20 20 20 20 2f 2a te; /*
1870: 20 30 20 3d 3d 20 66 72 65 73 68 6c 79 20 28 72 0 == freshly (r
1880: 65 2d 29 69 6e 69 74 69 61 6c 69 7a 65 64 0a 20 e-)initialized.
1890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18b0: 20 20 31 20 3d 3d 20 69 6e 69 74 50 61 72 73 65 1 == initParse
18c0: 72 50 72 6f 63 73 20 63 61 6c 6c 65 64 0a 20 20 rProcs called.
18d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18f0: 20 32 20 3d 3d 20 70 61 72 73 69 6e 67 20 61 6e 2 == parsing an
1900: 20 69 6e 70 75 74 20 63 68 75 6e 6b 20 2a 2f 0a input chunk */.
1910: 20 20 20 20 58 4d 4c 5f 43 68 61 72 20 6e 73 53 XML_Char nsS
1920: 65 70 61 72 61 74 6f 72 3b 20 20 20 20 20 20 20 eparator;
1930: 0a 20 20 20 20 69 6e 74 20 70 61 72 61 6d 65 6e . int paramen
1940: 74 69 74 79 70 61 72 73 69 6e 67 3b 20 20 20 20 tityparsing;
1950: 20 0a 20 20 20 20 69 6e 74 20 6e 6f 65 78 70 61 . int noexpa
1960: 6e 64 3b 0a 20 20 20 20 69 6e 74 20 75 73 65 46 nd;. int useF
1970: 6f 72 65 69 67 6e 44 54 44 3b 0a 20 20 20 20 63 oreignDTD;. c
1980: 6f 6e 73 74 20 63 68 61 72 20 2a 63 75 72 72 65 onst char *curre
1990: 6e 74 6d 61 72 6b 75 70 3b 20 20 2f 2a 20 55 73 ntmarkup; /* Us
19a0: 65 64 20 74 6f 20 74 72 61 6e 73 66 65 72 20 64 ed to transfer d
19b0: 61 74 61 20 66 6f 72 20 6d 65 74 68 6f 64 20 2a ata for method *
19c0: 2f 0a 20 20 20 20 69 6e 74 20 63 75 72 72 65 6e /. int curren
19d0: 74 6d 61 72 6b 75 70 6c 65 6e 3b 20 20 20 20 20 tmarkuplen;
19e0: 20 20 2f 2a 20 63 75 72 72 65 6e 74 6d 61 72 6b /* currentmark
19f0: 75 70 20 2a 2f 0a 20 0a 20 20 20 20 54 63 6c 48 up */. . TclH
1a00: 61 6e 64 6c 65 72 53 65 74 20 2a 66 69 72 73 74 andlerSet *first
1a10: 54 63 6c 48 61 6e 64 6c 65 72 53 65 74 3b 0a 20 TclHandlerSet;.
1a20: 20 20 20 43 48 61 6e 64 6c 65 72 53 65 74 20 2a CHandlerSet *
1a30: 66 69 72 73 74 43 48 61 6e 64 6c 65 72 53 65 74 firstCHandlerSet
1a40: 3b 0a 7d 20 54 63 6c 47 65 6e 45 78 70 61 74 49 ;.} TclGenExpatI
1a50: 6e 66 6f 3b 0a 0a 2f 2a 2d 2d 2d 2d 2d 2d 2d 2d nfo;../*--------
1a60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1a80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1a90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1aa0: 2d 2d 0a 7c 20 20 20 46 75 6e 63 74 69 6f 6e 20 --.| Function
1ab0: 70 72 6f 74 6f 74 79 70 65 73 0a 7c 0a 5c 2d 2d prototypes.|.\--
1ac0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ad0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ae0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1af0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1b00: 2d 2d 2d 2d 2d 2d 2d 2a 2f 0a 0a 23 69 66 20 64 -------*/..#if d
1b10: 65 66 69 6e 65 64 28 5f 4d 53 43 5f 56 45 52 29 efined(_MSC_VER)
1b20: 20 7c 7c 20 64 65 66 69 6e 65 64 28 42 55 49 4c || defined(BUIL
1b30: 44 5f 74 64 6f 6d 29 20 7c 7c 20 64 65 66 69 6e D_tdom) || defin
1b40: 65 64 28 5f 5f 4d 49 4e 47 57 33 32 5f 5f 29 20 ed(__MINGW32__)
1b50: 0a 23 20 20 75 6e 64 65 66 20 54 43 4c 5f 53 54 .# undef TCL_ST
1b60: 4f 52 41 47 45 5f 43 4c 41 53 53 0a 23 20 20 64 ORAGE_CLASS.# d
1b70: 65 66 69 6e 65 20 54 43 4c 5f 53 54 4f 52 41 47 efine TCL_STORAG
1b80: 45 5f 43 4c 41 53 53 20 44 4c 4c 45 58 50 4f 52 E_CLASS DLLEXPOR
1b90: 54 0a 23 65 6e 64 69 66 0a 0a 54 63 6c 5f 4f 62 T.#endif..Tcl_Ob
1ba0: 6a 43 6d 64 50 72 6f 63 20 54 63 6c 45 78 70 61 jCmdProc TclExpa
1bb0: 74 4f 62 6a 43 6d 64 3b 0a 0a 69 6e 74 20 43 68 tObjCmd;..int Ch
1bc0: 65 63 6b 45 78 70 61 74 50 61 72 73 65 72 4f 62 eckExpatParserOb
1bd0: 6a 20 28 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 j (Tcl_Interp *i
1be0: 6e 74 65 72 70 2c 0a 20 09 09 09 54 63 6c 5f 4f nterp,. ...Tcl_O
1bf0: 62 6a 20 2a 63 6f 6e 73 74 20 6e 61 6d 65 4f 62 bj *const nameOb
1c00: 6a 29 3b 0a 69 6e 74 20 43 48 61 6e 64 6c 65 72 j);.int CHandler
1c10: 53 65 74 49 6e 73 74 61 6c 6c 20 28 54 63 6c 5f SetInstall (Tcl_
1c20: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a Interp *interp,.
1c30: 20 09 09 20 20 20 20 20 20 20 54 63 6c 5f 4f 62 .. Tcl_Ob
1c40: 6a 20 2a 63 6f 6e 73 74 20 65 78 70 61 74 4f 62 j *const expatOb
1c50: 6a 2c 0a 20 09 09 20 20 20 20 20 20 20 43 48 61 j,. .. CHa
1c60: 6e 64 6c 65 72 53 65 74 20 2a 68 61 6e 64 6c 65 ndlerSet *handle
1c70: 72 53 65 74 29 3b 0a 69 6e 74 20 43 48 61 6e 64 rSet);.int CHand
1c80: 6c 65 72 53 65 74 52 65 6d 6f 76 65 20 28 54 63 lerSetRemove (Tc
1c90: 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 l_Interp *interp
1ca0: 2c 0a 20 09 09 20 20 20 20 20 20 54 63 6c 5f 4f ,. .. Tcl_O
1cb0: 62 6a 20 2a 63 6f 6e 73 74 20 65 78 70 61 74 4f bj *const expatO
1cc0: 62 6a 2c 0a 20 09 09 20 20 20 20 20 20 63 68 61 bj,. .. cha
1cd0: 72 20 2a 68 61 6e 64 6c 65 72 53 65 74 4e 61 6d r *handlerSetNam
1ce0: 65 29 3b 0a 43 48 61 6e 64 6c 65 72 53 65 74 20 e);.CHandlerSet
1cf0: 2a 20 43 48 61 6e 64 6c 65 72 53 65 74 43 72 65 * CHandlerSetCre
1d00: 61 74 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 ate (char *name)
1d10: 3b 0a 43 48 61 6e 64 6c 65 72 53 65 74 20 2a 20 ;.CHandlerSet *
1d20: 43 48 61 6e 64 6c 65 72 53 65 74 47 65 74 20 28 CHandlerSetGet (
1d30: 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 Tcl_Interp *inte
1d40: 72 70 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 rp,.
1d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1d60: 20 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 74 Tcl_Obj *const
1d70: 20 65 78 70 61 74 4f 62 6a 2c 0a 20 09 09 09 20 expatObj,. ...
1d80: 20 20 20 20 63 68 61 72 20 2a 68 61 6e 64 6c 65 char *handle
1d90: 72 53 65 74 4e 61 6d 65 29 3b 0a 76 6f 69 64 20 rSetName);.void
1da0: 2a 20 43 48 61 6e 64 6c 65 72 53 65 74 47 65 74 * CHandlerSetGet
1db0: 55 73 65 72 44 61 74 61 20 28 54 63 6c 5f 49 6e UserData (Tcl_In
1dc0: 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a 20 20 terp *interp,.
1dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 54 63 6c Tcl
1df0: 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 65 78 70 61 _Obj *const expa
1e00: 74 4f 62 6a 2c 0a 20 09 09 09 20 20 20 20 20 20 tObj,. ...
1e10: 63 68 61 72 20 2a 68 61 6e 64 6c 65 72 53 65 74 char *handlerSet
1e20: 4e 61 6d 65 29 3b 0a 0a 54 63 6c 47 65 6e 45 78 Name);..TclGenEx
1e30: 70 61 74 49 6e 66 6f 20 2a 20 47 65 74 45 78 70 patInfo * GetExp
1e40: 61 74 49 6e 66 6f 20 28 54 63 6c 5f 49 6e 74 65 atInfo (Tcl_Inte
1e50: 72 70 20 2a 69 6e 74 65 72 70 2c 0a 09 09 09 09 rp *interp,.....
1e60: 20 20 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a Tcl_Obj *
1e70: 63 6f 6e 73 74 20 65 78 70 61 74 4f 62 6a 29 3b const expatObj);
1e80: 0a .