return res;
}
-/* wrap call to fseeko so it matches the calling convention of callback */
-static int fseeko_wrapper(void *stream, curl_off_t offset, int whence)
-{
-#if defined(_WIN32) && defined(USE_WIN32_LARGE_FILES)
- return _fseeki64(stream, (__int64)offset, whence);
-#elif defined(HAVE_FSEEKO) && defined(HAVE_DECL_FSEEKO)
- return fseeko(stream, (off_t)offset, whence);
-#else
- if(offset > LONG_MAX)
- return -1;
- return fseek(stream, (long)offset, whence);
-#endif
-}
-
/*
* Curl_getformdata() converts a linked list of "meta data" into a mime
* structure. The input list is in 'post', while the output is stored in
#endif
result = curl_mime_data_cb(part, (curl_off_t) -1,
(curl_read_callback) fread,
- fseeko_wrapper,
+ Curl_fseeko,
NULL, (void *) stdin);
#if defined(__clang__) && __clang_major__ >= 16
#pragma clang diagnostic pop
#define basename(x) Curl_basename((x))
#endif
+int Curl_fseeko(void *stream, curl_off_t offset, int whence)
+{
+#if defined(_WIN32) && defined(USE_WIN32_LARGE_FILES)
+ return _fseeki64(stream, (__int64)offset, whence);
+#elif defined(HAVE_FSEEKO) && defined(HAVE_DECL_FSEEKO)
+ return fseeko(stream, (off_t)offset, whence);
+#else
+ if(offset > LONG_MAX)
+ return -1;
+ return fseek(stream, (long)offset, whence);
+#endif
+}
+
/* Set readback state. */
static void mimesetstate(struct mime_state *state,
/* Named file callbacks. */
/* Argument is a pointer to the mime part. */
-static int mime_open_file(curl_mimepart *part)
+static bool mime_open_file(curl_mimepart *part)
{
/* Open a MIMEKIND_FILE part. */
if(part->fp)
- return 0;
+ return FALSE;
part->fp = fopen_read(part->data, "rb");
- return part->fp ? 0 : -1;
+ return part->fp ? FALSE : TRUE;
}
static size_t mime_file_read(char *buffer, size_t size, size_t nitems,
if(mime_open_file(part))
return CURL_SEEKFUNC_FAIL;
- return fseek(part->fp, (long) offset, whence) ?
+ return Curl_fseeko(part->fp, offset, whence) ?
CURL_SEEKFUNC_CANTSEEK : CURL_SEEKFUNC_OK;
}
!defined(CURL_DISABLE_IMAP))
/* Prototypes. */
+int Curl_fseeko(void *stream, curl_off_t offset, int whence);
void Curl_mime_initpart(struct curl_mimepart *part);
void Curl_mime_cleanpart(struct curl_mimepart *part);
CURLcode Curl_mime_duppart(struct Curl_easy *data,