checked in test for ICU uppercase lowercase, title and foldcase char mapping
[pazpar2-moved-to-github.git] / src / icu_I18N.h
1 /* $Id: icu_I18N.h,v 1.1 2007-04-30 13:56:52 marc Exp $
2    Copyright (c) 2006-2007, Index Data.
3
4 This file is part of Pazpar2.
5
6 Pazpar2 is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 2, or (at your option) any later
9 version.
10
11 Pazpar2 is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with Pazpar2; see the file LICENSE.  If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19 02111-1307, USA.
20  */
21
22 #ifndef ICU_I18NL_H
23 #define ICU_I18NL_H
24
25 #ifdef HAVE_ICU
26
27 #include <yaz/nmem.h>
28
29
30 //#include <unicode/utypes.h>   /* Basic ICU data types */
31 #include <unicode/uchar.h>    /* char names           */
32
33 //#include <unicode/ustdio.h>
34 //#include <unicode/ucol.h> 
35 //#include <unicode/ucnv.h>     /* C   Converter API    */
36 //#include <unicode/ustring.h>  /* some more string fcns*/
37 //#include <unicode/uloc.h>
38 //#include <unicode/ubrk.h>
39 //#include <unicode/unistr.h>
40
41
42 int icu_check_status (UErrorCode status);
43
44 UChar* icu_utf16_from_utf8(UChar *utf16,
45                            int32_t utf16_cap,
46                            int32_t *utf16_len,
47                            const char *utf8);
48
49 UChar* icu_utf16_from_utf8n(UChar *utf16,
50                             int32_t utf16_cap,
51                             int32_t *utf16_len,
52                             const char *utf8, 
53                             size_t utf8_len);
54
55
56 char* icu_utf16_to_utf8(char *utf8,           
57                         size_t utf8_cap,
58                         size_t *utf8_len,
59                         const UChar *utf16, 
60                         int32_t utf16_len);
61
62
63 int32_t icu_utf16_casemap(UChar *dest16, int32_t dest16_cap,
64                           const UChar *src16, int32_t src16_len,
65                           const char *locale, char action);
66
67 char * icu_casemap(NMEM nmem, char *buf, size_t buf_cap, 
68                    size_t *dest8_len,  const char *src8,
69                    const char *locale, char action);
70
71
72 #endif // HAVE_ICU
73 #endif // ICU_I18NL_H