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