opendirat: don’t depend on openat-safer
[gnulib.git] / lib / unistdio / u8-u8-vasnprintf.c
blobc5e8f7489be7c6e409be80ce58d53e727dfa0e92
1 /* Formatted output to UTF-8 strings.
2 Copyright (C) 1999, 2002, 2006-2007, 2009-2024 Free Software Foundation,
3 Inc.
5 This file is free software.
6 It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
7 You can redistribute it and/or modify it under either
8 - the terms of the GNU Lesser General Public License as published
9 by the Free Software Foundation, either version 3, or (at your
10 option) any later version, or
11 - the terms of the GNU General Public License as published by the
12 Free Software Foundation; either version 2, or (at your option)
13 any later version, or
14 - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
16 This file is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 Lesser General Public License and the GNU General Public License
20 for more details.
22 You should have received a copy of the GNU Lesser General Public
23 License and of the GNU General Public License along with this
24 program. If not, see <https://www.gnu.org/licenses/>. */
26 /* Tell glibc's <stdio.h> to provide a prototype for snprintf().
27 This must come before <config.h> because <config.h> may include
28 <features.h>, and once <features.h> has been included, it's too late. */
29 #ifndef _GNU_SOURCE
30 # define _GNU_SOURCE 1
31 #endif
33 #include <config.h>
34 #include <alloca.h>
36 /* Specification. */
37 #include "unistdio.h"
39 #include "uniconv.h"
40 #include "unistr.h"
41 #include "unistdio/u-printf-parse.h"
43 #define VASNPRINTF u8_u8_vasnprintf
44 #define FCHAR_T uint8_t
45 #define DIRECTIVE u8_directive
46 #define DIRECTIVES u8_directives
47 #define PRINTF_PARSE u8_printf_parse
48 #define DCHAR_T uint8_t
49 #define DCHAR_CPY u8_cpy
50 #define DCHAR_SET u8_set
51 #define DCHAR_MBSNLEN u8_mbsnlen
52 #define DCHAR_IS_UINT8_T 1
53 #define U16_TO_DCHAR u16_to_u8
54 #define U32_TO_DCHAR u32_to_u8
55 #define DCHAR_CONV_FROM_ENCODING u8_conv_from_encoding
56 #define TCHAR_T char
57 #include "vasnprintf.c"