| 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 |  |