1/* Test of u16_vsnprintf() function. 2 Copyright (C) 2007-2010 Free Software Foundation, Inc. 3 4 This program is free software: you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 3 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17/* Written by Bruno Haible <bruno@clisp.org>, 2007. */ 18 19#include <config.h> 20 21#include "unistdio.h" 22 23#include <errno.h> 24#include <stdarg.h> 25#include <stddef.h> 26#include <stdint.h> 27#include <stdlib.h> 28#include <string.h> 29 30#include "unistr.h" 31#include "xalloc.h" 32#include "progname.h" 33#include "macros.h" 34 35#include "test-u16-printf1.h" 36 37static uint16_t * 38my_xasprintf (const char *format, ...) 39{ 40 va_list args; 41 uint16_t buf[1000]; 42 int retval; 43 size_t length; 44 uint16_t *result; 45 46 va_start (args, format); 47 retval = u16_vsnprintf (buf, sizeof (buf), format, args); 48 va_end (args); 49 if (retval < 0 || retval >= (int) sizeof (buf)) 50 return NULL; 51 length = u16_strlen (buf); 52 result = XNMALLOC (length + 1, uint16_t); 53 u16_cpy (result, buf, length + 1); 54 return result; 55} 56 57static void 58test_vsnprintf () 59{ 60 test_xfunction (my_xasprintf); 61} 62 63int 64main (int argc, char *argv[]) 65{ 66 set_program_name (argv[0]); 67 68 test_vsnprintf (); 69 70 return 0; 71} 72