| 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 | 
|---|
| 18 | extern "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 | */ | 
|---|
| 28 | typedef 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 | */ | 
|---|
| 40 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 41 | xmlStrdup                (const xmlChar *cur); | 
|---|
| 42 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 43 | xmlStrndup               (const xmlChar *cur, | 
|---|
| 44 | int len); | 
|---|
| 45 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 46 | xmlCharStrndup           (const char *cur, | 
|---|
| 47 | int len); | 
|---|
| 48 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 49 | xmlCharStrdup            (const char *cur); | 
|---|
| 50 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 51 | xmlStrsub                (const xmlChar *str, | 
|---|
| 52 | int start, | 
|---|
| 53 | int len); | 
|---|
| 54 | XMLPUBFUN const xmlChar * XMLCALL | 
|---|
| 55 | xmlStrchr                (const xmlChar *str, | 
|---|
| 56 | xmlChar val); | 
|---|
| 57 | XMLPUBFUN const xmlChar * XMLCALL | 
|---|
| 58 | xmlStrstr                (const xmlChar *str, | 
|---|
| 59 | const xmlChar *val); | 
|---|
| 60 | XMLPUBFUN const xmlChar * XMLCALL | 
|---|
| 61 | xmlStrcasestr            (const xmlChar *str, | 
|---|
| 62 | const xmlChar *val); | 
|---|
| 63 | XMLPUBFUN int XMLCALL | 
|---|
| 64 | xmlStrcmp                (const xmlChar *str1, | 
|---|
| 65 | const xmlChar *str2); | 
|---|
| 66 | XMLPUBFUN int XMLCALL | 
|---|
| 67 | xmlStrncmp               (const xmlChar *str1, | 
|---|
| 68 | const xmlChar *str2, | 
|---|
| 69 | int len); | 
|---|
| 70 | XMLPUBFUN int XMLCALL | 
|---|
| 71 | xmlStrcasecmp            (const xmlChar *str1, | 
|---|
| 72 | const xmlChar *str2); | 
|---|
| 73 | XMLPUBFUN int XMLCALL | 
|---|
| 74 | xmlStrncasecmp           (const xmlChar *str1, | 
|---|
| 75 | const xmlChar *str2, | 
|---|
| 76 | int len); | 
|---|
| 77 | XMLPUBFUN int XMLCALL | 
|---|
| 78 | xmlStrEqual              (const xmlChar *str1, | 
|---|
| 79 | const xmlChar *str2); | 
|---|
| 80 | XMLPUBFUN int XMLCALL | 
|---|
| 81 | xmlStrQEqual             (const xmlChar *pref, | 
|---|
| 82 | const xmlChar *name, | 
|---|
| 83 | const xmlChar *str); | 
|---|
| 84 | XMLPUBFUN int XMLCALL | 
|---|
| 85 | xmlStrlen                (const xmlChar *str); | 
|---|
| 86 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 87 | xmlStrcat                (xmlChar *cur, | 
|---|
| 88 | const xmlChar *add); | 
|---|
| 89 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 90 | xmlStrncat               (xmlChar *cur, | 
|---|
| 91 | const xmlChar *add, | 
|---|
| 92 | int len); | 
|---|
| 93 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 94 | xmlStrncatNew            (const xmlChar *str1, | 
|---|
| 95 | const xmlChar *str2, | 
|---|
| 96 | int len); | 
|---|
| 97 | XMLPUBFUN int XMLCALL | 
|---|
| 98 | xmlStrPrintf             (xmlChar *buf, | 
|---|
| 99 | int len, | 
|---|
| 100 | const char *msg, | 
|---|
| 101 | ...) LIBXML_ATTR_FORMAT(3,4); | 
|---|
| 102 | XMLPUBFUN int XMLCALL | 
|---|
| 103 | xmlStrVPrintf                (xmlChar *buf, | 
|---|
| 104 | int len, | 
|---|
| 105 | const char *msg, | 
|---|
| 106 | va_list ap) LIBXML_ATTR_FORMAT(3,0); | 
|---|
| 107 |  | 
|---|
| 108 | XMLPUBFUN int XMLCALL | 
|---|
| 109 | xmlGetUTF8Char                   (const unsigned char *utf, | 
|---|
| 110 | int *len); | 
|---|
| 111 | XMLPUBFUN int XMLCALL | 
|---|
| 112 | xmlCheckUTF8                     (const unsigned char *utf); | 
|---|
| 113 | XMLPUBFUN int XMLCALL | 
|---|
| 114 | xmlUTF8Strsize                   (const xmlChar *utf, | 
|---|
| 115 | int len); | 
|---|
| 116 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 117 | xmlUTF8Strndup                   (const xmlChar *utf, | 
|---|
| 118 | int len); | 
|---|
| 119 | XMLPUBFUN const xmlChar * XMLCALL | 
|---|
| 120 | xmlUTF8Strpos                    (const xmlChar *utf, | 
|---|
| 121 | int pos); | 
|---|
| 122 | XMLPUBFUN int XMLCALL | 
|---|
| 123 | xmlUTF8Strloc                    (const xmlChar *utf, | 
|---|
| 124 | const xmlChar *utfchar); | 
|---|
| 125 | XMLPUBFUN xmlChar * XMLCALL | 
|---|
| 126 | xmlUTF8Strsub                    (const xmlChar *utf, | 
|---|
| 127 | int start, | 
|---|
| 128 | int len); | 
|---|
| 129 | XMLPUBFUN int XMLCALL | 
|---|
| 130 | xmlUTF8Strlen                    (const xmlChar *utf); | 
|---|
| 131 | XMLPUBFUN int XMLCALL | 
|---|
| 132 | xmlUTF8Size                      (const xmlChar *utf); | 
|---|
| 133 | XMLPUBFUN int XMLCALL | 
|---|
| 134 | xmlUTF8Charcmp                   (const xmlChar *utf1, | 
|---|
| 135 | const xmlChar *utf2); | 
|---|
| 136 |  | 
|---|
| 137 | #ifdef __cplusplus | 
|---|
| 138 | } | 
|---|
| 139 | #endif | 
|---|
| 140 | #endif /* __XML_STRING_H__ */ | 
|---|
| 141 |  | 
|---|