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