summaryrefslogtreecommitdiff
path: root/lib/unistdio/u16-vasnprintf.c
blob: b1fd3a4d66f170bf40ead5bd77a4012d92b175e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* Formatted output to UTF-16 strings.
   Copyright (C) 1999, 2002, 2006-2007, 2009-2015 Free Software Foundation,
   Inc.

   This program is free software: you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published
   by the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
   This must come before <config.h> because <config.h> may include
   <features.h>, and once <features.h> has been included, it's too late.  */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE    1
#endif

#include <config.h>
#include <alloca.h>

/* Specification.  */
#include "unistdio.h"

#include "uniconv.h"
#include "unistr.h"
#include "unistdio/u-printf-parse.h"

#define VASNPRINTF u16_vasnprintf
#define FCHAR_T char
#define DIRECTIVE char_directive
#define DIRECTIVES char_directives
#define FCHAR_T_ONLY_ASCII 1
#define PRINTF_PARSE ulc_printf_parse
#define DCHAR_T uint16_t
#define DCHAR_T_IS_UINT16_T 1
#define DCHAR_CPY u16_cpy
#define DCHAR_SET u16_set
#define DCHAR_MBSNLEN u16_mbsnlen
#define DCHAR_IS_UINT16_T 1
#define U8_TO_DCHAR u8_to_u16
#define U32_TO_DCHAR u32_to_u16
#define DCHAR_CONV_FROM_ENCODING u16_conv_from_encoding
#define TCHAR_T char
#include "vasnprintf.c"