From d07a8748998ca015a470d9e8ed7154de40311097 Mon Sep 17 00:00:00 2001 From: Gisle Vanem Date: Tue, 3 Apr 2007 10:30:36 +0000 Subject: Simplify setting binary mode on file-descriptors. Work around the non-standard _setmode() in Metaware's HighC. --- src/main.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main.c b/src/main.c index 1c9bde1fc..612e5c26b 100644 --- a/src/main.c +++ b/src/main.c @@ -112,6 +112,16 @@ #define DEFAULT_MAXREDIRS 50L +#if defined(O_BINARY) && defined(HAVE_SETMODE) + #ifdef __HIGHC__ + #define SET_BINMODE(file) _setmode(file,O_BINARY) + #else + #define SET_BINMODE(file) setmode(fileno(file),O_BINARY) + #endif +#else + #define SET_BINMODE(file) ((void)0) +#endif + #ifdef __DJGPP__ #include @@ -2015,10 +2025,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ if(curlx_strequal("-", nextarg)) { file = stdin; -#if defined(O_BINARY) && defined(HAVE_SETMODE) if(subletter == 'b') /* forced binary */ - setmode(fileno(stdin), O_BINARY); -#endif + SET_BINMODE(stdin); } else { file = fopen(nextarg, "rb"); @@ -3967,9 +3975,7 @@ operate(struct Configurable *config, int argc, char *argv[]) } else if(uploadfile && curlx_strequal(uploadfile, "-")) { -#if defined(O_BINARY) && defined(HAVE_SETMODE) - setmode(fileno(stdin), O_BINARY); -#endif + SET_BINMODE(stdin); infd = stdin; } @@ -4030,13 +4036,11 @@ operate(struct Configurable *config, int argc, char *argv[]) if(!config->errors) config->errors = stderr; -#if defined(O_BINARY) && defined(HAVE_SETMODE) if(!outfile && !(config->conf & CONF_GETTEXT)) { /* We get the output to stdout and we have not got the ASCII/text flag, then set stdout to be binary */ - setmode( fileno(stdout), O_BINARY ); + SET_BINMODE(stdout); } -#endif if(1 == config->tcp_nodelay) my_setopt(curl, CURLOPT_TCP_NODELAY, 1); -- cgit v1.2.3