Home | History | Annotate | Download | only in curl
      1 #ifndef __CURL_MPRINTF_H
      2 #define __CURL_MPRINTF_H
      3 /***************************************************************************
      4  *                                  _   _ ____  _
      5  *  Project                     ___| | | |  _ \| |
      6  *                             / __| | | | |_) | |
      7  *                            | (__| |_| |  _ <| |___
      8  *                             \___|\___/|_| \_\_____|
      9  *
     10  * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel (at) 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  * $Id: mprintf.h,v 1.16 2008-05-20 10:21:50 patrickm Exp $
     24  ***************************************************************************/
     25 
     26 #include <stdarg.h>
     27 #include <stdio.h> /* needed for FILE */
     28 
     29 #include "curl.h"
     30 
     31 #ifdef  __cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 CURL_EXTERN int curl_mprintf(const char *format, ...);
     36 CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...);
     37 CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...);
     38 CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength,
     39                                const char *format, ...);
     40 CURL_EXTERN int curl_mvprintf(const char *format, va_list args);
     41 CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args);
     42 CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args);
     43 CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength,
     44                                 const char *format, va_list args);
     45 CURL_EXTERN char *curl_maprintf(const char *format, ...);
     46 CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args);
     47 
     48 #ifdef _MPRINTF_REPLACE
     49 # undef printf
     50 # undef fprintf
     51 # undef sprintf
     52 # undef vsprintf
     53 # undef snprintf
     54 # undef vprintf
     55 # undef vfprintf
     56 # undef vsnprintf
     57 # undef aprintf
     58 # undef vaprintf
     59 # define printf curl_mprintf
     60 # define fprintf curl_mfprintf
     61 #ifdef CURLDEBUG
     62 /* When built with CURLDEBUG we define away the sprintf() functions since we
     63    don't want internal code to be using them */
     64 # define sprintf sprintf_was_used
     65 # define vsprintf vsprintf_was_used
     66 #else
     67 # define sprintf curl_msprintf
     68 # define vsprintf curl_mvsprintf
     69 #endif
     70 # define snprintf curl_msnprintf
     71 # define vprintf curl_mvprintf
     72 # define vfprintf curl_mvfprintf
     73 # define vsnprintf curl_mvsnprintf
     74 # define aprintf curl_maprintf
     75 # define vaprintf curl_mvaprintf
     76 #endif
     77 
     78 #ifdef  __cplusplus
     79 }
     80 #endif
     81 
     82 #endif /* __CURL_MPRINTF_H */
     83