1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-13 15:10:34 +02:00

Include io.h' is possible. Put *fp' into referring

statement block in `scm_fport_buffer_add()'.
Some corrections in `getflags()'.
This commit is contained in:
Marius Vollmer 2001-11-02 00:09:14 +00:00
parent e0c73a1cb6
commit b8b17bfd31

View file

@ -59,6 +59,9 @@
#else #else
size_t fwrite (); size_t fwrite ();
#endif #endif
#ifdef HAVE_IO_H
#include <io.h>
#endif
#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE #ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
#include <sys/stat.h> #include <sys/stat.h>
#endif #endif
@ -86,7 +89,6 @@ static void
scm_fport_buffer_add (SCM port, long read_size, int write_size) scm_fport_buffer_add (SCM port, long read_size, int write_size)
#define FUNC_NAME "scm_fport_buffer_add" #define FUNC_NAME "scm_fport_buffer_add"
{ {
scm_t_fport *fp = SCM_FSTREAM (port);
scm_t_port *pt = SCM_PTAB_ENTRY (port); scm_t_port *pt = SCM_PTAB_ENTRY (port);
if (read_size == -1 || write_size == -1) if (read_size == -1 || write_size == -1)
@ -94,6 +96,7 @@ scm_fport_buffer_add (SCM port, long read_size, int write_size)
size_t default_size; size_t default_size;
#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE #ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
struct stat st; struct stat st;
scm_t_fport *fp = SCM_FSTREAM (port);
default_size = (fstat (fp->fdes, &st) == -1) ? default_buffer_size default_size = (fstat (fp->fdes, &st) == -1) ? default_buffer_size
: st.st_blksize; : st.st_blksize;
@ -376,13 +379,14 @@ static int getflags (int fdes)
else else
{ {
/* Or an anonymous pipe handle ? */ /* Or an anonymous pipe handle ? */
if (buf.st_mode & 0x1000 /* _O_SHORT_LIVED */) if (buf.st_mode & _S_IFIFO)
flags = O_RDWR; flags = O_RDWR;
/* stdin ? */ /* stdin ? */
else if (fdes == 0 && isatty (fdes)) else if (fdes == fileno (stdin) && isatty (fdes))
flags = O_RDONLY; flags = O_RDONLY;
/* stdout / stderr ? */ /* stdout / stderr ? */
else if ((fdes == 1 || fdes == 2) && isatty (fdes)) else if ((fdes == fileno (stdout) || fdes == fileno (stderr)) &&
isatty (fdes))
flags = O_WRONLY; flags = O_WRONLY;
else else
flags = buf.st_mode; flags = buf.st_mode;