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

source code of include/libxml2/libxml/xmlstring.h