summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure13
-rw-r--r--stream/stream_file.c8
2 files changed, 16 insertions, 5 deletions
diff --git a/configure b/configure
index 0ecef04b20..cd48fe088d 100755
--- a/configure
+++ b/configure
@@ -4050,6 +4050,17 @@ fi
echores "$_setenv"
+echocheck "setmode()"
+_setmode=no
+def_setmode='#define HAVE_SETMODE 0'
+cat > $TMPC << EOF
+#include <io.h>
+int main(void) { setmode(0, 0); return 0; }
+EOF
+cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
+echores "$_setmode"
+
+
if sunos; then
echocheck "sysi86()"
cat > $TMPC << EOF
@@ -8870,6 +8881,7 @@ $def_nanosleep
$def_posix_select
$def_select
$def_setenv
+$def_setmode
$def_shm
$def_strsep
$def_swab
@@ -9225,7 +9237,6 @@ $def_yasm
#define HAVE_LDBRX 0
#define HAVE_POLL_H 1
#define HAVE_PPC4XX 0
-#define HAVE_SETMODE 0
#define HAVE_SYS_SELECT_H 0
#define HAVE_VFP_ARGS 1
#define HAVE_VIRTUALALLOC 0
diff --git a/stream/stream_file.c b/stream/stream_file.c
index dceea84db0..9fda32b185 100644
--- a/stream/stream_file.c
+++ b/stream/stream_file.c
@@ -145,14 +145,14 @@ static int open_f(stream_t *stream,int mode, void* opts, int* file_format) {
// read from stdin
mp_msg(MSGT_OPEN,MSGL_INFO,MSGTR_ReadSTDIN);
f=0; // 0=stdin
-#if defined(__MINGW32__) || defined(__OS2__)
- setmode(fileno(stdin),O_BINARY);
+#if HAVE_SETMODE
+ setmode(fileno(stdin),O_BINARY);
#endif
} else {
mp_msg(MSGT_OPEN,MSGL_INFO,"Writing to stdout\n");
f=1;
-#if defined(__MINGW32__) || defined(__OS2__)
- setmode(fileno(stdout),O_BINARY);
+#if HAVE_SETMODE
+ setmode(fileno(stdout),O_BINARY);
#endif
}
} else {