]> git.ipfire.org Git - thirdparty/bash.git/blame - lib/sh/vprint.c
updated translations; remove unneeded files
[thirdparty/bash.git] / lib / sh / vprint.c
CommitLineData
726f6388
JA
1/* vprint.c -- v[fs]printf() for 4.[23] BSD systems. */
2
3/* Copyright (C) 1987,1989 Free Software Foundation, Inc.
4
3185942a 5 This file is part of GNU Bash, the Bourne Again SHell.
726f6388 6
3185942a
JA
7 Bash is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
726f6388 11
3185942a
JA
12 Bash is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
726f6388 16
3185942a
JA
17 You should have received a copy of the GNU General Public License
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.
19*/
726f6388 20
cce855bc 21#include <config.h>
ccc6cda3
JA
22
23#if defined (USE_VFPRINTF_EMULATION)
24
726f6388
JA
25#include <stdio.h>
26
27#if !defined (NULL)
28# if defined (__STDC__)
ccc6cda3 29# define NULL ((void *)0)
726f6388
JA
30# else
31# define NULL 0x0
32# endif /* __STDC__ */
33#endif /* !NULL */
34
35/*
36 * Beware! Don't trust the value returned by either of these functions; it
37 * seems that pre-4.3-tahoe implementations of _doprnt () return the first
38 * argument, i.e. a char *.
39 */
40#include <varargs.h>
41
42int
43vfprintf (iop, fmt, ap)
44 FILE *iop;
45 char *fmt;
46 va_list ap;
47{
48 int len;
49 char localbuf[BUFSIZ];
50
51 if (iop->_flag & _IONBF)
52 {
53 iop->_flag &= ~_IONBF;
54 iop->_ptr = iop->_base = localbuf;
55 len = _doprnt (fmt, ap, iop);
56 (void) fflush (iop);
57 iop->_flag |= _IONBF;
58 iop->_base = NULL;
59 iop->_bufsiz = 0;
60 iop->_cnt = 0;
61 }
62 else
63 len = _doprnt (fmt, ap, iop);
64 return (ferror (iop) ? EOF : len);
65}
66
67/*
68 * Ditto for vsprintf
69 */
70int
71vsprintf (str, fmt, ap)
72 char *str, *fmt;
73 va_list ap;
74{
75 FILE f;
76 int len;
77
78 f._flag = _IOWRT|_IOSTRG;
79 f._ptr = str;
80 f._cnt = 32767;
81 len = _doprnt (fmt, ap, &f);
82 *f._ptr = 0;
83 return (len);
84}
ccc6cda3 85#endif /* USE_VFPRINTF_EMULATION */