1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: set of routines to process strings
3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: type and interfaces needed for the internal string handling
4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *              of the library, especially UTF8 processing.
5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software.
7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard
9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_STRING_H__
12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_STRING_H__
13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <stdarg.h>
15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h>
16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" {
19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlChar:
23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * This is a basic byte in an UTF-8 encoded string.
25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * It's unsigned allowing to pinpoint case where char * are assigned
26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * to xmlChar * (possibly making serialization back impossible).
27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef unsigned char xmlChar;
29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * BAD_CAST:
32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to cast a string to an xmlChar * when one know its safe.
34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define BAD_CAST (xmlChar *)
36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlChar handling
39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrdup                (const xmlChar *cur);
42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrndup               (const xmlChar *cur,
44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlCharStrndup           (const char *cur,
47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlCharStrdup            (const char *cur);
50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrsub                (const xmlChar *str,
52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int start,
53ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const xmlChar * XMLCALL
55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrchr                (const xmlChar *str,
56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         xmlChar val);
57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const xmlChar * XMLCALL
58ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrstr                (const xmlChar *str,
59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *val);
60ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const xmlChar * XMLCALL
61ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrcasestr            (const xmlChar *str,
62df143a5041f03a22808b59c76698770b74692815Selim Gurun                                         const xmlChar *val);
63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
64ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrcmp                (const xmlChar *str1,
65ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *str2);
66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
67ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrncmp               (const xmlChar *str1,
68ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *str2,
69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
70ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrcasecmp            (const xmlChar *str1,
72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *str2);
73ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrncasecmp           (const xmlChar *str1,
75ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *str2,
76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
78ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrEqual              (const xmlChar *str1,
79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *str2);
80ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrQEqual             (const xmlChar *pref,
82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *name,
83ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *str);
84ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
85ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrlen                (const xmlChar *str);
86ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrcat                (xmlChar *cur,
88ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *add);
89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrncat               (xmlChar *cur,
91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *add,
92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrncatNew            (const xmlChar *str1,
95ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *str2,
96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
98ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrPrintf             (xmlChar *buf,
99ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len,
100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *msg,
101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         ...);
102ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                xmlStrVPrintf                (xmlChar *buf,
104ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len,
105ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *msg,
106ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         va_list ap);
107ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlGetUTF8Char                   (const unsigned char *utf,
110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int *len);
111ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
112ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlCheckUTF8                     (const unsigned char *utf);
113ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
114ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Strsize                   (const xmlChar *utf,
115ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
11694442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlChar * XMLCALL
117ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Strndup                   (const xmlChar *utf,
118ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
11994442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN const xmlChar * XMLCALL
120ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Strpos                    (const xmlChar *utf,
121ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int pos);
122ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
123ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Strloc                    (const xmlChar *utf,
124ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *utfchar);
12594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlChar * XMLCALL
126ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Strsub                    (const xmlChar *utf,
127ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int start,
128ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         int len);
129ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
130ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Strlen                    (const xmlChar *utf);
131ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
132ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Size                      (const xmlChar *utf);
133ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
134ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlUTF8Charcmp                   (const xmlChar *utf1,
135ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project                                         const xmlChar *utf2);
136ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
137ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
138ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}
139ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
140ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* __XML_STRING_H__ */
141