Home | History | Annotate | Download | only in libxml
      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