curlx: promote `Curl_fseeko()` to `curlx_fseek()`, use it in `src`
No binary (build failed)
—
(log yok)
| @@ -32,9 +32,23 @@ | |
| #include "../curl_setup.h" | |
| + | #include "fopen.h" |
| + | |
| + | int curlx_fseek(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 |
| + | } |
| + | |
| #if defined(_WIN32) && !defined(UNDER_CE) | |
| - | #include "fopen.h" |
| #include "multibyte.h" | |
| /* declare GetFullPathNameW for mingw-w64 UWP builds targeting old windows */ | |
| @@ -32,6 +32,8 @@ | |
| #include <fcntl.h> /* for open() and attributes */ | |
| #endif | |
| + | int curlx_fseek(void *stream, curl_off_t offset, int whence); |
| + | |
| #if defined(_WIN32) && !defined(UNDER_CE) | |
| FILE *curlx_win32_fopen(const char *filename, const char *mode); | |
| int curlx_win32_stat(const char *path, struct_stat *buffer); | |
| @@ -37,6 +37,7 @@ struct Curl_easy; | |
| #include "sendf.h" | |
| #include "strdup.h" | |
| #include "rand.h" | |
| + | #include "curlx/fopen.h" |
| #include "curlx/warnless.h" | |
| /* The last 2 #include files should be in this order */ | |
| @@ -860,7 +861,7 @@ CURLcode Curl_getformdata(CURL *data, | |
| #endif | |
| result = curl_mime_data_cb(part, (curl_off_t) -1, | |
| (curl_read_callback) fread, | |
| - | Curl_fseeko, |
| + | curlx_fseek, |
| NULL, (void *) stdin); | |
| #if defined(__clang__) && __clang_major__ >= 16 | |
| #pragma clang diagnostic pop | |
| @@ -271,19 +271,6 @@ static char *Curl_basename(char *path) | |
| #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, | |
| @@ -750,7 +737,7 @@ static int mime_file_seek(void *instream, curl_off_t offset, int whence) | |
| if(mime_open_file(part)) | |
| return CURL_SEEKFUNC_FAIL; | |
| - | return Curl_fseeko(part->fp, offset, whence) ? |
| + | return curlx_fseek(part->fp, offset, whence) ? |
| CURL_SEEKFUNC_CANTSEEK : CURL_SEEKFUNC_OK; | |
| } | |
| @@ -138,7 +138,6 @@ CURLcode Curl_mime_add_header(struct curl_slist **slp, const char *fmt, ...) | |
| !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, | |
| @@ -248,7 +248,7 @@ int tool_mime_stdin_seek(void *instream, curl_off_t offset, int whence) | |
| if(offset < 0) | |
| return CURL_SEEKFUNC_CANTSEEK; | |
| if(!sip->data) { | |
| - | if(fseek(stdin, (long) (offset + sip->origin), SEEK_SET)) |
| + | if(curlx_fseek(stdin, offset + sip->origin, SEEK_SET)) |
| return CURL_SEEKFUNC_CANTSEEK; | |
| } | |
| sip->curpos = offset; | |
| @@ -584,10 +584,8 @@ static CURLcode retrycheck(struct OperationConfig *config, | |
| rc = fseek(outs->stream, 0, SEEK_END); | |
| #else | |
| /* ftruncate is not available, so just reposition the file | |
| - | to the location we would have truncated it. This will not |
| - | work properly with large files on 32-bit systems, but |
| - | most of those will have ftruncate. */ |
| - | rc = fseek(outs->stream, (long)outs->init, SEEK_SET); |
| + | to the location we would have truncated it. */ |
| + | rc = curlx_fseek(outs->stream, outs->init, SEEK_SET); |
| #endif | |
| if(rc) { | |
| errorf("Failed seeking to end of file"); | |
| @@ -119,19 +119,6 @@ ParameterError file2string(char **bufp, FILE *file) | |
| return PARAM_OK; | |
| } | |
| - | static int myfseek(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 |
| - | } |
| - | |
| ParameterError file2memory_range(char **bufp, size_t *size, FILE *file, | |
| curl_off_t starto, curl_off_t endo) | |
| { | |
| @@ -143,7 +130,7 @@ ParameterError file2memory_range(char **bufp, size_t *size, FILE *file, | |
| if(starto) { | |
| if(file != stdin) { | |
| - | if(myfseek(file, starto, SEEK_SET)) |
| + | if(curlx_fseek(file, starto, SEEK_SET)) |
| return PARAM_READ_ERROR; | |
| offset = starto; | |
| } | |