diff options
| -rw-r--r-- | CHANGES | 6 | ||||
| -rw-r--r-- | RELEASE-NOTES | 1 | ||||
| -rw-r--r-- | include/curl/curl.h | 10 | 
3 files changed, 16 insertions, 1 deletions
| @@ -6,6 +6,12 @@                                    Changelog +Daniel Stenberg (11 Mar 2008) +- Added a macro for curl_easy_setopt() that accepts three arguments and simply +  does nothing with them, just to make sure libcurl users always use three +  arguments to this function. Due to its use of ... for the third argument, it +  is otherwise hard to detect abuse. +  Michal Marek (11 Mar 2008)  - Added a type checking macro for curl_easy_setopt(), needs gcc-4.3 and only    works in C mode atm (http://curl.haxx.se/mail/lib-2008-02/0267.html , diff --git a/RELEASE-NOTES b/RELEASE-NOTES index c491d18b3..0c20a0701 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -20,6 +20,7 @@ This release includes the following changes:   o added a type checking macro for curl_easy_setopt(), watch out for new     warnings in code using libcurl (needs gcc-4.3 and currently only works     in C mode) + o curl_easy_setopt() uses are now checked to use three arguments  This release includes the following bugfixes: diff --git a/include/curl/curl.h b/include/curl/curl.h index 3027ca06d..4af714291 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -1792,8 +1792,16 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);  #include "multi.h"  /* the typechecker doesn't work in C++ (yet) */ -#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && !defined(__cplusplus) +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ +    !defined(__cplusplus)  #include "typecheck-gcc.h" +#else +#if defined(__STDC__) && (__STDC__ >= 1)  +/* This preprocessor magic that replaces a call with the exact same call is +   only done to make sure application authors use exactly three arguments +   to this function. */ +#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) +#endif /* __STDC__ >= 1 */  #endif /* gcc >= 4.3 && !__cplusplus */  #endif /* __CURL_CURL_H */ | 
