1 * Summary: set of routines to process strings
2 * Description: type and interfaces needed for the internal string
3 * handling of the library, especially UTF8 processing.
5 * Copy: See Copyright for the status of this software.
7 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
9 /if not defined(XML_STRING_H__)
10 /define XML_STRING_H__
12 /include "libxmlrpg/xmlversion"
13 /include "libxmlrpg/xmlTypesC"
14 /include "libxmlrpg/xmlstdarg"
18 * This is a basic byte in an UTF-8 encoded string.
19 * It's unsigned allowing to pinpoint case where char * are assigned
20 * to xmlChar * (possibly making serialization back impossible).
22 d xmlChar s based(######typedef######)
27 d xmlStrdup pr * extproc('xmlStrdup') xmlChar *
28 d cur * value options(*string) const xmlChar *
30 d xmlStrndup pr * extproc('xmlStrndup') xmlChar *
31 d cur * value options(*string) const xmlChar *
32 d len value like(xmlCint)
34 d xmlCharStrndup pr * extproc('xmlCharStrndup') xmlChar *
35 d cur * value options(*string) const char *
36 d len value like(xmlCint)
38 d xmlCharStrdup pr * extproc('xmlCharStrdup') xmlChar *
39 d cur * value options(*string) const char *
41 d xmlStrsub pr * extproc('xmlStrsub') const xmlChar *
42 d str * value options(*string) const xmlChar *
43 d start value like(xmlCint)
44 d len value like(xmlCint)
46 d xmlStrchr pr * extproc('xmlStrchr') const xmlChar *
47 d str * value options(*string) const xmlChar *
48 d val value like(xmlChar)
50 d xmlStrstr pr * extproc('xmlStrstr') const xmlChar *
51 d str * value options(*string) const xmlChar *
52 d val * value options(*string) const xmlChar *
54 d xmlStrcasestr pr * extproc('xmlStrcasestr') const xmlChar *
55 d str * value options(*string) const xmlChar *
56 d val * value options(*string) const xmlChar *
58 d xmlStrcmp pr extproc('xmlStrcmp')
60 d str1 * value options(*string) const xmlChar *
61 d str2 * value options(*string) const xmlChar *
63 d xmlStrncmp pr extproc('xmlStrncmp')
65 d str1 * value options(*string) const xmlChar *
66 d str2 * value options(*string) const xmlChar *
67 d len value like(xmlCint)
69 d xmlStrcasecmp pr extproc('xmlStrcasecmp')
71 d str1 * value options(*string) const xmlChar *
72 d str2 * value options(*string) const xmlChar *
74 d xmlStrncasecmp pr extproc('xmlStrncasecmp')
76 d str1 * value options(*string) const xmlChar *
77 d str2 * value options(*string) const xmlChar *
78 d len value like(xmlCint)
80 d xmlStrEqual pr extproc('xmlStrEqual')
82 d str1 * value options(*string) const xmlChar *
83 d str2 * value options(*string) const xmlChar *
85 d xmlStrQEqual pr extproc('xmlStrQEqual')
87 d pref * value options(*string) const xmlChar *
88 d name * value options(*string) const xmlChar *
89 d stre * value options(*string) const xmlChar *
91 d xmlStrlen pr extproc('xmlStrlen')
93 d str * value options(*string) const xmlChar *
95 d xmlStrcat pr * extproc('xmlStrcat') xmlChar *
96 d cur * value options(*string) xmlChar *
97 d add * value options(*string) const xmlChar *
99 d xmlStrncat pr * extproc('xmlStrncat') xmlChar *
100 d cur * value options(*string) xmlChar *
101 d add * value options(*string) const xmlChar *
102 d len value like(xmlCint)
104 d xmlStrncatNew pr * extproc('xmlStrncatNew') xmlChar *
105 d str1 * value options(*string) const xmlChar *
106 d str2 * value options(*string) const xmlChar *
107 d len value like(xmlCint)
109 * xmlStrPrintf() is a vararg function.
110 * The following prototype supports up to 8 pointer arguments.
111 * Other argument signature can be achieved by defining alternate
112 * prototypes redirected to the same function.
114 d xmlStrPrintf pr extproc('xmlStrPrintf')
116 d buf * value options(*string) xmlChar *
117 d len value like(xmlCint)
118 d msg * value options(*string) const xmlChar *
119 d arg1 * value options(*string: *nopass)
120 d arg2 * value options(*string: *nopass)
121 d arg3 * value options(*string: *nopass)
122 d arg4 * value options(*string: *nopass)
123 d arg5 * value options(*string: *nopass)
124 d arg6 * value options(*string: *nopass)
125 d arg7 * value options(*string: *nopass)
126 d arg8 * value options(*string: *nopass)
128 d xmlStrVPrintf pr extproc('xmlStrVPrintf')
130 d buf * value options(*string) xmlChar *
131 d len value like(xmlCint)
132 d msg * value options(*string) const xmlChar *
133 d ap likeds(xmlVaList)
135 d xmlGetUTF8Char pr extproc('xmlGetUTF8Char')
137 d utf * value options(*string) const uns. char *
140 d xmlCheckUTF8 pr extproc('xmlCheckUTF8')
142 d utf * value options(*string) const uns. char *
144 d xmlUTF8Strsize pr extproc('xmlUTF8Strsize')
146 d utf * value options(*string) const xmlChar *
147 d len value like(xmlCint)
149 d xmlUTF8Strndup pr * extproc('xmlUTF8Strndup') xmlChar *
150 d utf * value options(*string) const xmlChar *
151 d len value like(xmlCint)
153 d xmlUTF8Strpos pr * extproc('xmlUTF8Strpos') const xmlChar *
154 d utf * value options(*string) const xmlChar *
155 d pos value like(xmlCint)
157 d xmlUTF8Strloc pr extproc('xmlUTF8Strloc')
159 d utf * value options(*string) const xmlChar *
160 d utfchar * value options(*string) const xmlChar *
162 d xmlUTF8Strsub pr * extproc('xmlUTF8Strsub') xmlChar *
163 d utf * value options(*string) const xmlChar *
164 d start value like(xmlCint)
165 d len value like(xmlCint)
167 d xmlUTF8Strlen pr extproc('xmlUTF8Strlen')
169 d utf * value options(*string) const xmlChar *
171 d xmlUTF8Size pr extproc('xmlUTF8Size')
173 d utf * value options(*string) const xmlChar *
175 d xmlUTF8Charcmp pr extproc('xmlUTF8Charcmp')
177 d utf1 * value options(*string) const xmlChar *
178 d utf2 * value options(*string) const xmlChar *
180 /endif XML_STRING_H__