2 * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc.
3 * This file is part of the GNU LIBICONV Library.
5 * The GNU LIBICONV Library is free software; you can redistribute it
6 * and/or modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either version 2.1
8 * of the License, or (at your option) any later version.
10 * The GNU LIBICONV Library is distributed in the hope that it will be
11 * useful, 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.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
17 * If not, see <https://www.gnu.org/licenses/>.
25 cp1163_mbtowc (conv_t conv
, ucs4_t
*pwc
, const unsigned char *s
, size_t n
)
33 *pwc
= (ucs4_t
) cp1129_2uni
[c
-0xa0];
37 static const unsigned char cp1163_page20
[8] = {
38 0x00, 0x00, 0x00, 0xfe, 0xa4, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
42 cp1163_wctomb (conv_t conv
, unsigned char *r
, ucs4_t wc
, size_t n
)
45 if (wc
< 0x00a0 || (wc
< 0x00a8 && wc
!= 0x00a4) || wc
== 0x00d0) {
49 else if (wc
>= 0x00a8 && wc
< 0x01b8)
50 c
= cp1129_page00
[wc
-0x00a8];
51 else if (wc
>= 0x0300 && wc
< 0x0328)
52 c
= cp1129_page03
[wc
-0x0300];
53 else if (wc
== 0x203e)
55 else if (wc
>= 0x20a8 && wc
< 0x20b0)
56 c
= cp1163_page20
[wc
-0x20a8];