First part of commit removing xprintf to make later merging easier
[libfirm] / ir / common / xfprintf.c
1 /* Xfprintf --- extended formatted output to files.
2    Copyright (C) 1995, 1996 Christian von Roques */
3
4 /* $Id$ */
5
6 #ifdef HAVE_CONFIG_H
7 # include <config.h>
8 #endif
9
10 #ifndef USE_PRINTF
11
12 #include <assert.h>
13 #include "xprintf.h"
14
15
16 static int
17 xfprinter (void *f, const char *data, size_t len)
18 {
19   size_t togo = len;
20
21   while (togo > 0) {
22     size_t n = fwrite (data, 1, togo, (FILE*)f);
23
24     if (!n) return -1;
25     togo -= n;
26     data += n;
27   }
28
29   return len;
30 }
31
32 int
33 xfprintf (FILE *F, const char *fmt, ...)
34 {
35   va_list args;
36   int res;
37
38   va_start (args, fmt);
39   res = xvgprintf (xfprinter, F, fmt, args);
40   va_end (args);
41   return res;
42 }
43
44
45 int
46 xvfprintf (FILE *F, const char *fmt, va_list args)
47 {
48   return xvgprintf (xfprinter, F, fmt, args);
49 }
50
51
52 int
53 xprintf (const char *fmt, ...)
54 {
55   va_list args;
56   int res;
57
58   va_start (args, fmt);
59   res = xvgprintf (xfprinter, stdout, fmt, args);
60   va_end (args);
61   return res;
62 }
63
64 int
65 xvprintf (const char *fmt, va_list args)
66 {
67   return xvgprintf (xfprinter, stdout, fmt, args);
68 }
69
70 #endif /* USE_PRINTF */