For MinGW this is `-DNO_OLDNAMES`, with MSVC it is
`-D_CRT_DECLARE_NONSTDC_NAMES=0`.
There have been some support for this before this patch.
After this patch this is extended to all examples.
(And also the standalone http/client programs, if here.)
Cherry-picked from #15652
Closes #15789
#include <curl/curl.h>
#ifdef _WIN32
-# define FILENO(fp) _fileno(fp)
-#else
-# define FILENO(fp) fileno(fp)
+#undef stat
+#define stat _stat
+#undef fstat
+#define fstat _fstat
+#define fileno _fileno
#endif
#if LIBCURL_VERSION_NUM < 0x070c03
/* get the file size of the local file */
fp = fopen(file, "rb");
- fstat(FILENO(fp), &file_info);
+ fstat(fileno(fp), &file_info);
/* In Windows, this inits the Winsock stuff */
curl_global_init(CURL_GLOBAL_ALL);
#include <sys/stat.h>
#include <fcntl.h>
+#ifdef _WIN32
+#undef stat
+#define stat _stat
+#undef fstat
+#define fstat _fstat
+#define fileno _fileno
+#endif
+
int main(void)
{
CURL *curl;
#include <errno.h>
#ifdef _WIN32
#include <io.h>
+#undef stat
+#define stat _stat
#else
#include <unistd.h>
#endif
#include <unistd.h>
#endif
+#ifdef _WIN32
+#undef stat
+#define stat _stat
+#endif
+
/* curl stuff */
#include <curl/curl.h>
#include <curl/mprintf.h>
#include <sys/stat.h>
#include <curl/curl.h>
+#ifdef _WIN32
+#undef stat
+#define stat _stat
+#endif
+
/*
* This example shows an HTTP PUT operation. PUTs a file given as a command
* line argument to the URL also given on the command line.
#include <unistd.h> /* getopt() */
#endif
+#ifdef _WIN32
+#define strdup _strdup
+#endif
+
#ifndef CURLPIPE_MULTIPLEX
#error "too old libcurl, cannot do HTTP/2 server push!"
#endif