1 /* Conversion to UTF-16 from legacy encodings.
2    Copyright (C) 2002, 2006-2007, 2009-2021 Free Software Foundation, Inc.
3 
4    This file is free software.
5    It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
6    You can redistribute it and/or modify it under either
7      - the terms of the GNU Lesser General Public License as published
8        by the Free Software Foundation; either version 3, or (at your
9        option) any later version, or
10      - the terms of the GNU General Public License as published by the
11        Free Software Foundation; either version 2, or (at your option)
12        any later version, or
13      - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
14 
15    This file is distributed in the hope that it will be useful,
16    but WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18    Lesser General Public License and the GNU General Public License
19    for more details.
20 
21    You should have received a copy of the GNU Lesser General Public
22    License and of the GNU General Public License along with this
23    program.  If not, see <https://www.gnu.org/licenses/>.  */
24 
25 /* Written by Bruno Haible <bruno@clisp.org>.  */
26 
27 #include <config.h>
28 
29 /* Specification.  */
30 #include "uniconv.h"
31 
32 #include <errno.h>
33 #include <stdlib.h>
34 
35 #include "striconveha.h"
36 #include "unistr.h"
37 
38 /* Name of UTF-16 encoding with machine dependent endianness and alignment.  */
39 #if defined _LIBICONV_VERSION || (((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__)
40 # ifdef WORDS_BIGENDIAN
41 #  define UTF16_NAME "UTF-16BE"
42 # else
43 #  define UTF16_NAME "UTF-16LE"
44 # endif
45 #endif
46 
47 #define FUNC u16_conv_from_encoding
48 #define UNIT uint16_t
49 #define U8_TO_U u8_to_u16
50 #define U_MBLEN u16_mblen
51 #if defined UTF16_NAME
52 # define UTF_NAME UTF16_NAME
53 # define HAVE_UTF_NAME 1
54 #endif
55 #include "u-conv-from-enc.h"
56