Line data Source code
1 : /*
2 : Unix SMB/CIFS implementation.
3 : display print functions
4 : Copyright (C) Andrew Tridgell 2001
5 : Copyright (C) Jelmer Vernooij 2007
6 :
7 : This program 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.
11 :
12 : This program 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.
16 :
17 : You should have received a copy of the GNU General Public License
18 : along with this program. If not, see <http://www.gnu.org/licenses/>.
19 : */
20 :
21 :
22 : /*
23 : this module provides functions for printing internal strings in the
24 : "display charset".
25 :
26 : This charset may be quite different from the chosen unix charset.
27 :
28 : Eventually these functions will need to take care of column count constraints
29 :
30 : The d_ prefix on print functions in Samba refers to the display character set
31 : conversion
32 : */
33 :
34 : #include "includes.h"
35 : #include "system/locale.h"
36 :
37 : static int d_vfprintf(FILE *f, const char *format, va_list ap)
38 : PRINTF_ATTRIBUTE(2,0);
39 :
40 317945 : static int d_vfprintf(FILE *f, const char *format, va_list ap)
41 : {
42 320299 : return vfprintf(f, format, ap);
43 : }
44 :
45 :
46 2314 : _PUBLIC_ int d_fprintf(FILE *f, const char *format, ...)
47 : {
48 : int ret;
49 : va_list ap;
50 :
51 2314 : va_start(ap, format);
52 2314 : ret = d_vfprintf(f, format, ap);
53 2314 : va_end(ap);
54 :
55 2314 : return ret;
56 : }
57 :
58 : static FILE *outfile;
59 :
60 317985 : _PUBLIC_ int d_printf(const char *format, ...)
61 : {
62 : int ret;
63 : va_list ap;
64 :
65 317985 : if (!outfile) outfile = stdout;
66 :
67 317985 : va_start(ap, format);
68 320319 : ret = d_vfprintf(outfile, format, ap);
69 317985 : va_end(ap);
70 :
71 317985 : return ret;
72 : }
73 :
74 : /* interactive programs need a way of tell d_*() to write to stderr instead
75 : of stdout */
76 0 : void display_set_stderr(void)
77 : {
78 0 : outfile = stderr;
79 0 : }
|