mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 01:00:20 +02:00
* fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
the fdes is valid before doing anything else. check that the file descriptor supports the modes required. (scm_fport_buffer_add): don't throw an error if fstat doesn't work: just use the default buffer size. * throw.c: change an outdated comment about scm_internal_catch BODY: it doesn't take a jumpbuf arg. * init.c (scm_standard_stream_to_port): install a handler in case scm_fdes_to_port throws an error. don't check here whether the file descriptor is valid, since scm_fdes_to_port will do that. set the revealed count depending on whether the port got the standard file descriptor. (stream_body_data): new type. (stream_body, stream_handler): new procs.
This commit is contained in:
parent
f8a72ca4c9
commit
19b27fa236
4 changed files with 85 additions and 37 deletions
|
@ -448,13 +448,11 @@ SCM_DEFINE (scm_fdopen, "fdopen", 2, 0, 0,
|
|||
"by @ref{File Ports, open-file}.")
|
||||
#define FUNC_NAME s_scm_fdopen
|
||||
{
|
||||
SCM port;
|
||||
|
||||
SCM_VALIDATE_INUM (1,fdes);
|
||||
SCM_VALIDATE_ROSTRING (2,modes);
|
||||
SCM_COERCE_SUBSTR (modes);
|
||||
port = scm_fdes_to_port (SCM_INUM (fdes), SCM_ROCHARS (modes), SCM_BOOL_F);
|
||||
return port;
|
||||
|
||||
return scm_fdes_to_port (SCM_INUM (fdes), SCM_ROCHARS (modes), SCM_BOOL_F);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue