Split up the 'linebreak' module.
[gnulib.git] / lib / unilbrk / ulc-common.h
1 /* Line breaking auxiliary functions.
2    Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
3    Written by Bruno Haible <bruno@clisp.org>, 2001.
4
5    This program is free software: you can redistribute it and/or modify it
6    under the terms of the GNU Lesser General Public License as published
7    by the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18 /* Get size_t.  */
19 #include <stddef.h>
20
21 #include "c-ctype.h"
22
23 #define is_utf8_encoding unilbrk_is_utf8_encoding
24 extern int is_utf8_encoding (const char *encoding);
25
26 #if HAVE_ICONV
27
28 # include <iconv.h>
29
30 /* Luckily, the encoding's name is platform independent.  */
31 # define UTF8_NAME "UTF-8"
32
33 /* Return the length of a string after conversion through an iconv_t.  */
34 # define iconv_string_length unilbrk_iconv_string_length
35 extern size_t iconv_string_length (iconv_t cd, const char *s, size_t n);
36
37 # define iconv_string_keeping_offsets unilbrk_iconv_string_keeping_offsets
38 extern void iconv_string_keeping_offsets (iconv_t cd, const char *s, size_t n, size_t *offtable, char *t, size_t m);
39
40 #endif /* HAVE_ICONV */
41
42 #if C_CTYPE_ASCII
43
44 # define is_all_ascii unilbrk_is_all_ascii
45 extern int is_all_ascii (const char *s, size_t n);
46
47 #endif /* C_CTYPE_ASCII */