/usr/include/libAfterBase/xml.h is in libafterimage-dev 2.2.12-11.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | #ifndef ASXML_H_HEADER_FILE_INCLUDED
#define ASXML_H_HEADER_FILE_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
struct ASHashTable;
#define xml_tagchar(a) (isalnum(a) || (a) == '-' || (a) == '_')
#define XML_CDATA_STR "CDATA"
#define XML_CONTAINER_STR "CONTAINER"
#define XML_CDATA_ID -2
#define XML_CONTAINER_ID -1
#define XML_UNKNOWN_ID 0
#define IsCDATA(pe) ((pe) && (pe)->tag_id == XML_CDATA_ID)
#define IsCONTAINER(pe) ((pe) && (pe)->tag_id == XML_CONTAINER_ID)
typedef struct xml_elem_t {
struct xml_elem_t* next;
struct xml_elem_t* child;
char* tag;
int tag_id;
char* parm;
} xml_elem_t;
typedef enum
{
ASXML_Start = 0,
ASXML_TagOpen = 1,
ASXML_TagName = 2,
ASXML_TagAttrOrClose = 3,
ASXML_AttrName = 4,
ASXML_AttrEq = 5,
ASXML_AttrValueStart = 6,
ASXML_AttrValue = 7,
ASXML_AttrSlash = 8
} ASXML_ParserState;
typedef enum
{
ASXML_BadStart = -1,
ASXML_BadTagName = -2,
ASXML_UnexpectedSlash = -3,
ASXML_UnmatchedClose = -4,
ASXML_BadAttrName = -5,
ASXML_MissingAttrEq = -6
} ASXML_ParserError;
/* bb change : code moved to asimagexml.c
enum
{
ASXML_Start = 0,
ASXML_TagOpen = 1,
ASXML_TagName = 2,
ASXML_TagAttrOrClose = 3,
ASXML_AttrName = 4,
ASXML_AttrEq = 5,
ASXML_AttrValueStart = 6,
ASXML_AttrValue = 7,
ASXML_AttrSlash = 8
} ASXML_ParserState;
enum
{
ASXML_BadStart = -1,
ASXML_BadTagName = -2,
ASXML_UnexpectedSlash = -3,
ASXML_UnmatchedClose = -4,
ASXML_BadAttrName = -5,
ASXML_MissingAttrEq = -6
} ASXML_ParserError;
*/
typedef struct ASXmlBuffer
{
char *buffer ;
int allocated, used, current ;
int state ;
int level ;
Bool verbatim;
Bool quoted;
enum
{
ASXML_OpeningTag = 0,
ASXML_SimpleTag,
ASXML_ClosingTag
}tag_type ;
int tags_count ;
}ASXmlBuffer;
#define IsTagCDATA(_tag) ((_tag)!= NULL && (_tag)->tag_id == XML_CDATA_ID && (_tag)->parm != NULL)
void asxml_var_insert(const char* name, int value);
int asxml_var_get(const char* name);
int asxml_var_nget(char* name, int n);
void asxml_var_init(void);
void asxml_var_cleanup(void);
xml_elem_t* xml_elem_new(void);
xml_elem_t *create_CDATA_tag();
xml_elem_t *create_CONTAINER_tag();
xml_elem_t* xml_parse_parm(const char* parm, struct ASHashTable *vocabulary);
void xml_print(xml_elem_t* root);
void xml_elem_delete(xml_elem_t** list, xml_elem_t* elem);
xml_elem_t* xml_parse_doc(const char* str, struct ASHashTable *vocabulary);
int xml_parse(const char* str, xml_elem_t* current, struct ASHashTable *vocabulary);
void xml_insert(xml_elem_t* parent, xml_elem_t* child);
xml_elem_t *find_tag_by_id( xml_elem_t *chain, int id );
void reset_xml_buffer( ASXmlBuffer *xb );
void free_xml_buffer_resources (ASXmlBuffer *xb);
void add_xml_buffer_chars( ASXmlBuffer *xb, char *tmp, int len );
int spool_xml_tag( ASXmlBuffer *xb, char *tmp, int len );
/* reverse transformation - xml_elem into text.
If depth < 0 - no fancy formatting with identing will be added.
If tags_count < 0 - all tags in the chain will be converted.
*/
Bool xml_tags2xml_buffer( xml_elem_t *tags, ASXmlBuffer *xb, int tags_count, int depth);
xml_elem_t *format_xml_buffer_state (ASXmlBuffer *xb);
char translate_special_sequence( const char *ptr, int len, int *seq_len );
void append_cdata( xml_elem_t *cdata_tag, const char *line, int len );
void append_CDATA_line( xml_elem_t *tag, const char *line, int len );
char *interpret_ctrl_codes( char *text );
#ifdef __cplusplus
}
#endif
#endif /*#ifndef ASXML_H_HEADER_FILE_INCLUDED*/
|