1#ifndef __CURL_MPRINTF_H
2#define __CURL_MPRINTF_H
3/***************************************************************************
4 *                                  _   _ ____  _
5 *  Project                     ___| | | |  _ \| |
6 *                             / __| | | | |_) | |
7 *                            | (__| |_| |  _ <| |___
8 *                             \___|\___/|_| \_\_____|
9 *
10 * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
11 *
12 * This software is licensed as described in the file COPYING, which
13 * you should have received as part of this distribution. The terms
14 * are also available at http://curl.haxx.se/docs/copyright.html.
15 *
16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17 * copies of the Software, and permit persons to whom the Software is
18 * furnished to do so, under the terms of the COPYING file.
19 *
20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21 * KIND, either express or implied.
22 *
23 ***************************************************************************/
24
25#include <stdarg.h>
26#include <stdio.h> /* needed for FILE */
27
28#include "curl.h"
29
30#ifdef  __cplusplus
31extern "C" {
32#endif
33
34CURL_EXTERN int curl_mprintf(const char *format, ...);
35CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...);
36CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...);
37CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength,
38                               const char *format, ...);
39CURL_EXTERN int curl_mvprintf(const char *format, va_list args);
40CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args);
41CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args);
42CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength,
43                                const char *format, va_list args);
44CURL_EXTERN char *curl_maprintf(const char *format, ...);
45CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args);
46
47#ifdef _MPRINTF_REPLACE
48# undef printf
49# undef fprintf
50# undef sprintf
51# undef vsprintf
52# undef snprintf
53# undef vprintf
54# undef vfprintf
55# undef vsnprintf
56# undef aprintf
57# undef vaprintf
58# define printf curl_mprintf
59# define fprintf curl_mfprintf
60#ifdef CURLDEBUG
61/* When built with CURLDEBUG we define away the sprintf functions since we
62   don't want internal code to be using them */
63# define sprintf sprintf_was_used
64# define vsprintf vsprintf_was_used
65#else
66# define sprintf curl_msprintf
67# define vsprintf curl_mvsprintf
68#endif
69# define snprintf curl_msnprintf
70# define vprintf curl_mvprintf
71# define vfprintf curl_mvfprintf
72# define vsnprintf curl_mvsnprintf
73# define aprintf curl_maprintf
74# define vaprintf curl_mvaprintf
75#endif
76
77#ifdef  __cplusplus
78}
79#endif
80
81#endif /* __CURL_MPRINTF_H */
82