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. 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. 8 9 /if not defined(XML_STRING_H__) 10 /define XML_STRING_H__ 11 12 /include "libxmlrpg/xmlversion" 13 /include "libxmlrpg/xmlTypesC" 14 /include "libxmlrpg/xmlstdarg" 15 16 * xmlChar: 17 * 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). 21 22 d xmlChar s based(######typedef######) 23 d like(xmlCuchar) 24 25 * xmlChar handling 26 27 d xmlStrdup pr * extproc('xmlStrdup') xmlChar * 28 d cur * value options(*string) const xmlChar * 29 30 d xmlStrndup pr * extproc('xmlStrndup') xmlChar * 31 d cur * value options(*string) const xmlChar * 32 d len 10i 0 value 33 34 d xmlCharStrndup pr * extproc('xmlCharStrndup') xmlChar * 35 d cur * value options(*string) const char * 36 d len 10i 0 value 37 38 d xmlCharStrdup pr * extproc('xmlCharStrdup') xmlChar * 39 d cur * value options(*string) const char * 40 41 d xmlStrsub pr * extproc('xmlStrsub') const xmlChar * 42 d str * value options(*string) const xmlChar * 43 d start 10i 0 value 44 d len 10i 0 value 45 46 d xmlStrchr pr * extproc('xmlStrchr') const xmlChar * 47 d str * value options(*string) const xmlChar * 48 d val value like(xmlChar) 49 50 d xmlStrstr pr * extproc('xmlStrstr') const xmlChar * 51 d str * value options(*string) const xmlChar * 52 d val * value options(*string) const xmlChar * 53 54 d xmlStrcasestr pr * extproc('xmlStrcasestr') const xmlChar * 55 d str * value options(*string) const xmlChar * 56 d val * value options(*string) const xmlChar * 57 58 d xmlStrcmp pr 10i 0 extproc('xmlStrcmp') 59 d str1 * value options(*string) const xmlChar * 60 d str2 * value options(*string) const xmlChar * 61 62 d xmlStrncmp pr 10i 0 extproc('xmlStrncmp') 63 d str1 * value options(*string) const xmlChar * 64 d str2 * value options(*string) const xmlChar * 65 d len 10i 0 value 66 67 d xmlStrcasecmp pr 10i 0 extproc('xmlStrcasecmp') 68 d str1 * value options(*string) const xmlChar * 69 d str2 * value options(*string) const xmlChar * 70 71 d xmlStrncasecmp pr 10i 0 extproc('xmlStrncasecmp') 72 d str1 * value options(*string) const xmlChar * 73 d str2 * value options(*string) const xmlChar * 74 d len 10i 0 value 75 76 d xmlStrEqual pr 10i 0 extproc('xmlStrEqual') 77 d str1 * value options(*string) const xmlChar * 78 d str2 * value options(*string) const xmlChar * 79 80 d xmlStrQEqual pr 10i 0 extproc('xmlStrQEqual') 81 d pref * value options(*string) const xmlChar * 82 d name * value options(*string) const xmlChar * 83 d stre * value options(*string) const xmlChar * 84 85 d xmlStrlen pr 10i 0 extproc('xmlStrlen') 86 d str * value options(*string) const xmlChar * 87 88 d xmlStrcat pr * extproc('xmlStrcat') xmlChar * 89 d cur * value options(*string) xmlChar * 90 d add * value options(*string) const xmlChar * 91 92 d xmlStrncat pr * extproc('xmlStrncat') xmlChar * 93 d cur * value options(*string) xmlChar * 94 d add * value options(*string) const xmlChar * 95 d len 10i 0 value 96 97 d xmlStrncatNew pr * extproc('xmlStrncatNew') xmlChar * 98 d str1 * value options(*string) const xmlChar * 99 d str2 * value options(*string) const xmlChar * 100 d len 10i 0 value 101 102 * xmlStrPrintf() is a vararg function. 103 * The following prototype supports up to 8 pointer arguments. 104 * Other argument signature can be achieved by defining alternate 105 * prototypes redirected to the same function. 106 107 d xmlStrPrintf pr 10i 0 extproc('xmlStrPrintf') 108 d buf * value options(*string) xmlChar * 109 d len 10i 0 value 110 d msg * value options(*string) const xmlChar * 111 d arg1 * value options(*string: *nopass) 112 d arg2 * value options(*string: *nopass) 113 d arg3 * value options(*string: *nopass) 114 d arg4 * value options(*string: *nopass) 115 d arg5 * value options(*string: *nopass) 116 d arg6 * value options(*string: *nopass) 117 d arg7 * value options(*string: *nopass) 118 d arg8 * value options(*string: *nopass) 119 120 d xmlStrVPrintf pr 10i 0 extproc('xmlStrVPrintf') 121 d buf * value options(*string) xmlChar * 122 d len 10i 0 value 123 d msg * value options(*string) const xmlChar * 124 d ap likeds(xmlVaList) 125 126 d xmlGetUTF8Char pr 10i 0 extproc('xmlGetUTF8Char') 127 d utf * value options(*string) const uns. char * 128 d len 10i 0 129 130 d xmlCheckUTF8 pr 10i 0 extproc('xmlCheckUTF8') 131 d utf * value options(*string) const uns. char * 132 133 d xmlUTF8Strsize pr 10i 0 extproc('xmlUTF8Strsize') 134 d utf * value options(*string) const xmlChar * 135 d len 10i 0 value 136 137 d xmlUTF8Strndup pr * extproc('xmlUTF8Strndup') xmlChar * 138 d utf * value options(*string) const xmlChar * 139 d len 10i 0 value 140 141 d xmlUTF8Strpos pr * extproc('xmlUTF8Strpos') const xmlChar * 142 d utf * value options(*string) const xmlChar * 143 d pos 10i 0 value 144 145 d xmlUTF8Strloc pr 10i 0 extproc('xmlUTF8Strloc') 146 d utf * value options(*string) const xmlChar * 147 d utfchar * value options(*string) const xmlChar * 148 149 d xmlUTF8Strsub pr * extproc('xmlUTF8Strsub') xmlChar * 150 d utf * value options(*string) const xmlChar * 151 d start 10i 0 value 152 d len 10i 0 value 153 154 d xmlUTF8Strlen pr 10i 0 extproc('xmlUTF8Strlen') 155 d utf * value options(*string) const xmlChar * 156 157 d xmlUTF8Size pr 10i 0 extproc('xmlUTF8Size') 158 d utf * value options(*string) const xmlChar * 159 160 d xmlUTF8Charcmp pr 10i 0 extproc('xmlUTF8Charcmp') 161 d utf1 * value options(*string) const xmlChar * 162 d utf2 * value options(*string) const xmlChar * 163 164 /endif XML_STRING_H__ 165