yaz_use_attribute_create based on get_attributeList DRY
[yaz-moved-to-github.git] / include / yaz / yaz-iconv.h
index a1a2dc4..9f08a41 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data.
+ * Copyright (C) Index Data.
  * All rights reserved.
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -51,26 +51,25 @@ typedef struct yaz_iconv_struct *yaz_iconv_t;
 #define YAZ_ICONV_EINVAL 4
 
 /** \brief just like iconv_open(3) */
-YAZ_EXPORT yaz_iconv_t yaz_iconv_open (const char *tocode,
-                                       const char *fromcode);
+YAZ_EXPORT yaz_iconv_t yaz_iconv_open(const char *tocode, const char *fromcode);
 /** \brief just like iconv(3) */
-YAZ_EXPORT size_t yaz_iconv (yaz_iconv_t cd, char **inbuf, size_t *inbytesleft,
-                             char **outbuf, size_t *outbytesleft);
+YAZ_EXPORT size_t yaz_iconv(yaz_iconv_t cd, char **inbuf, size_t *inbytesleft,
+                            char **outbuf, size_t *outbytesleft);
 /** \brief returns last error - like errno for iconv(3) */
-YAZ_EXPORT int yaz_iconv_error (yaz_iconv_t cd);
+YAZ_EXPORT int yaz_iconv_error(yaz_iconv_t cd);
 
 /** \brief just like iconv_close(3) */
-YAZ_EXPORT int yaz_iconv_close (yaz_iconv_t cd);
+YAZ_EXPORT int yaz_iconv_close(yaz_iconv_t cd);
 
 /** \brief tests whether conversion is handled by YAZ' iconv or system iconv */
 YAZ_EXPORT int yaz_iconv_isbuiltin(yaz_iconv_t cd);
 
-YAZ_EXPORT unsigned long yaz_read_UTF8_char(unsigned char *inp,
+YAZ_EXPORT unsigned long yaz_read_UTF8_char(const unsigned char *inp,
                                             size_t inbytesleft,
                                             size_t *no_read,
                                             int *error);
 
-/** \brief encodes UTF-8 sequence 
+/** \brief encodes UTF-8 sequence
     \param x the UNICODE value
     \param outbuf output buffer pointer, updated if conversion is successful
     \param outbytesleft length of buffer, updated if conversino is successful
@@ -91,6 +90,13 @@ YAZ_EXPORT size_t yaz_write_UTF8_char(unsigned long x,
 #define yaz_tolower(x) ((x) + ('a' - 'A'))
 #define yaz_islower(x) ((x) >= 'a' && (x) <= 'z')
 
+/** \brief check whether string apppers to be UTF-8 encoded
+    \param cstr string to check
+    \retval 1 OK (appears to be UTF-8)
+    \retval 0 definitely not UTF-8
+*/
+YAZ_EXPORT int yaz_utf8_check(const char *cstr);
+
 YAZ_END_CDECL
 
 #endif