|
32 | 32 | extern "C" {
|
33 | 33 | #endif
|
34 | 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, ...); |
| 35 | +#if (defined(__GNUC__) || defined(__clang__)) && \ |
| 36 | + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ |
| 37 | + !defined(__MINGW32__) && !defined(CURL_NO_FMT_CHECKS) |
| 38 | +#define CURL_TEMP_PRINTF(a,b) __attribute__ ((format(printf, a, b))) |
| 39 | +#else |
| 40 | +#define CURL_TEMP_PRINTF(a,b) |
| 41 | +#endif |
| 42 | + |
| 43 | +CURL_EXTERN int curl_mprintf(const char *format, ...) CURL_TEMP_PRINTF(1, 2); |
| 44 | +CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...) |
| 45 | + CURL_TEMP_PRINTF(2, 3); |
| 46 | +CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...) |
| 47 | + CURL_TEMP_PRINTF(2, 3); |
38 | 48 | 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); |
| 49 | + const char *format, ...) CURL_TEMP_PRINTF(3, 4); |
| 50 | +CURL_EXTERN int curl_mvprintf(const char *format, va_list args) |
| 51 | + CURL_TEMP_PRINTF(1, 0); |
| 52 | +CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args) |
| 53 | + CURL_TEMP_PRINTF(2, 0); |
| 54 | +CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args) |
| 55 | + CURL_TEMP_PRINTF(2, 0); |
43 | 56 | 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); |
| 57 | + const char *format, va_list args) |
| 58 | + CURL_TEMP_PRINTF(3, 0); |
| 59 | +CURL_EXTERN char *curl_maprintf(const char *format, ...) |
| 60 | + CURL_TEMP_PRINTF(1, 2); |
| 61 | +CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args) |
| 62 | + CURL_TEMP_PRINTF(1, 0); |
| 63 | + |
| 64 | +#undef CURL_TEMP_PRINTF |
47 | 65 |
|
48 | 66 | #ifdef __cplusplus
|
49 | 67 | } /* end of extern "C" */
|
|
0 commit comments