summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libstdio/fdglue2.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/libstdio/fdglue2.c')
-rw-r--r--mdk-stage1/dietlibc/libstdio/fdglue2.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/mdk-stage1/dietlibc/libstdio/fdglue2.c b/mdk-stage1/dietlibc/libstdio/fdglue2.c
index a76d4698d..b96e4c5b8 100644
--- a/mdk-stage1/dietlibc/libstdio/fdglue2.c
+++ b/mdk-stage1/dietlibc/libstdio/fdglue2.c
@@ -1,5 +1,6 @@
#include <unistd.h>
#include <fcntl.h>
+#include <sys/stat.h>
#include <errno.h>
#include "dietstdio.h"
#include <stdlib.h>
@@ -23,7 +24,12 @@ err_out:
tmp->bm=0;
tmp->bs=0;
tmp->buflen=BUFSIZE;
- tmp->flags=0;
+ {
+ struct stat st;
+ fstat(fd,&st);
+ tmp->flags=(S_ISFIFO(st.st_mode))?FDPIPE:0;
+ }
+ tmp->popen_kludge=0;
if (__stdio_atexit==0) {
__stdio_atexit=1;
atexit(__stdio_flushall);