]> git.ipfire.org Git - thirdparty/glibc.git/blame - libio/iovdprintf.c
Fix assertion in palloc and pvalloc as well.
[thirdparty/glibc.git] / libio / iovdprintf.c
CommitLineData
c6251f03
RM
1/* Copyright (C) 1995, 1997-2000, 2001, 2002, 2003, 2006
2 Free Software Foundation, Inc.
41bdb6e2 3 This file is part of the GNU C Library.
96aa2d94 4
41bdb6e2
AJ
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
96aa2d94 9
41bdb6e2
AJ
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
40a55d20 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2 13 Lesser General Public License for more details.
96aa2d94 14
41bdb6e2
AJ
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA.
96aa2d94 19
41bdb6e2
AJ
20 As a special exception, if you link the code in this file with
21 files compiled with a GNU compiler to produce an executable,
22 that does not cause the resulting executable to be covered by
23 the GNU Lesser General Public License. This exception does not
24 however invalidate any other reasons why the executable file
25 might be covered by the GNU Lesser General Public License.
26 This exception applies to code released by its copyright holders
27 in files containing the exception. */
96aa2d94 28
c6251f03 29#include <libioP.h>
0d875352 30#include <stdio_ext.h>
96aa2d94
RM
31
32int
33_IO_vdprintf (d, format, arg)
34 int d;
35 const char *format;
36 _IO_va_list arg;
37{
bd355af0 38 struct _IO_FILE_plus tmpfil;
d64b6ad0 39 struct _IO_wide_data wd;
96aa2d94
RM
40 int done;
41
499e7464 42#ifdef _IO_MTSAFE_IO
c020d48c 43 tmpfil.file._lock = NULL;
499e7464 44#endif
15a686af
RM
45 _IO_no_init (&tmpfil.file, _IO_USER_LOCK, 0, &wd, &_IO_wfile_jumps);
46 _IO_JUMPS (&tmpfil) = &_IO_file_jumps;
77fe0b9c 47 INTUSE(_IO_file_init) (&tmpfil);
96aa2d94
RM
48#if !_IO_UNIFIED_JUMPTABLES
49 tmpfil.vtable = NULL;
50#endif
77fe0b9c 51 if (INTUSE(_IO_file_attach) (&tmpfil.file, d) == NULL)
96aa2d94 52 {
77fe0b9c 53 INTUSE(_IO_un_link) (&tmpfil);
96aa2d94
RM
54 return EOF;
55 }
bd355af0 56 tmpfil.file._IO_file_flags =
fe848e93
UD
57 (_IO_mask_flags (&tmpfil.file, _IO_NO_READS,
58 _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING)
59 | _IO_DELETE_DONT_CLOSE);
96aa2d94 60
77fe0b9c 61 done = INTUSE(_IO_vfprintf) (&tmpfil.file, format, arg);
96aa2d94 62
c020d48c 63 _IO_FINISH (&tmpfil.file);
96aa2d94
RM
64
65 return done;
66}
c6251f03 67ldbl_weak_alias (_IO_vdprintf, vdprintf)