williamr@4: /* williamr@4: * Summary: set of routines to process strings williamr@4: * Description: type and interfaces needed for the internal string handling williamr@4: * of the library, especially UTF8 processing. williamr@4: * williamr@4: * Copy: See Copyright for the status of this software. williamr@4: * williamr@4: * Author: Daniel Veillard williamr@4: * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. williamr@4: */ williamr@4: williamr@4: /** @file williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@4: williamr@4: #ifndef XML_STRING_H williamr@4: #define XML_STRING_H williamr@4: williamr@4: #include williamr@4: #include williamr@4: williamr@4: #ifdef __cplusplus williamr@4: extern "C" { williamr@4: #endif williamr@4: williamr@4: /** williamr@4: * xmlChar: williamr@4: * williamr@4: * This is a basic byte in an UTF-8 encoded string. williamr@4: * It's unsigned allowing to pinpoint case where char * are assigned williamr@4: * to xmlChar * (possibly making serialization back impossible). williamr@4: */ williamr@4: williamr@4: typedef unsigned char xmlChar; williamr@4: williamr@4: /** williamr@4: * BAD_CAST: williamr@4: * williamr@4: * Macro to cast a string to an xmlChar * when one know its safe. williamr@4: */ williamr@4: #define BAD_CAST (xmlChar *) williamr@4: williamr@4: /* williamr@4: * xmlChar handling williamr@4: */ williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlStrdup (const xmlChar *cur); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlStrndup (const xmlChar *cur, williamr@4: int len); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlCharStrndup (const char *cur, williamr@4: int len); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlCharStrdup (const char *cur); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlStrsub (const xmlChar *str, williamr@4: int start, williamr@4: int len); williamr@4: XMLPUBFUN const xmlChar* XMLCALL williamr@4: xmlStrchr (const xmlChar *str, williamr@4: xmlChar val); williamr@4: XMLPUBFUN const xmlChar* XMLCALL williamr@4: xmlStrstr (const xmlChar *str, williamr@4: const xmlChar *val); williamr@4: XMLPUBFUN const xmlChar* XMLCALL williamr@4: xmlStrcasestr (const xmlChar *str, williamr@4: xmlChar *val); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrcmp (const xmlChar *str1, williamr@4: const xmlChar *str2); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrncmp (const xmlChar *str1, williamr@4: const xmlChar *str2, williamr@4: int len); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrcasecmp (const xmlChar *str1, williamr@4: const xmlChar *str2); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrncasecmp (const xmlChar *str1, williamr@4: const xmlChar *str2, williamr@4: int len); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrEqual (const xmlChar *str1, williamr@4: const xmlChar *str2); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrQEqual (const xmlChar *pref, williamr@4: const xmlChar *name, williamr@4: const xmlChar *str); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrlen (const xmlChar *str); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlStrcat (xmlChar *cur, williamr@4: const xmlChar *add); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlStrncat (xmlChar *cur, williamr@4: const xmlChar *add, williamr@4: int len); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlStrncatNew (const xmlChar *str1, williamr@4: const xmlChar *str2, williamr@4: int len); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrPrintf (xmlChar *buf, williamr@4: int len, williamr@4: const xmlChar *msg, williamr@4: ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlStrVPrintf (xmlChar *buf, williamr@4: int len, williamr@4: const xmlChar *msg, williamr@4: va_list ap); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlGetUTF8Char (const unsigned char *utf, int *len); williamr@4: williamr@4: #ifndef XMLENGINE_EXCLUDE_UNUSED williamr@4: XMLPUBFUN int XMLCALL xmlCheckUTF8 (const unsigned char *utf); williamr@4: #endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */ williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlUTF8Strsize (const xmlChar *utf, williamr@4: int len); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlUTF8Strndup (const xmlChar *utf, williamr@4: int len); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlUTF8Strpos (const xmlChar *utf, williamr@4: int pos); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlUTF8Strloc (const xmlChar *utf, williamr@4: const xmlChar *utfchar); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlUTF8Strsub (const xmlChar *utf, williamr@4: int start, williamr@4: int len); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlUTF8Strlen (const xmlChar *utf); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlUTF8Size (const xmlChar *utf); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlUTF8Charcmp (const xmlChar *utf1, williamr@4: const xmlChar *utf2); williamr@4: williamr@4: #ifdef __cplusplus williamr@4: } williamr@4: #endif williamr@4: #endif /* XML_STRING_H */ williamr@4: