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