1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 16:18:48 -05:00

Simplify setting binary mode on file-descriptors.

Work around the non-standard _setmode() in Metaware's HighC.
This commit is contained in:
Gisle Vanem 2007-04-03 10:30:36 +00:00
parent c420113795
commit d07a874899

View File

@ -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 <dos.h>
@ -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);