mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Changes from arch/CVS synchronization
This commit is contained in:
parent
7d1fc87217
commit
693758d5a8
4 changed files with 21 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
|||
2007-12-04 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
* NEWS: Mention `accept' bug fix.
|
||||
* NEWS: Mention `accept' and `scm_c_{read,write}' bug fixes.
|
||||
|
||||
2007-12-03 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
|
|
1
NEWS
1
NEWS
|
@ -44,6 +44,7 @@ Changes in 1.8.4 (since 1.8.3)
|
|||
** Fixed a segmentation fault which occurred when displaying the
|
||||
backtrace of a stack with a promise object (made by `delay') in it.
|
||||
** Make `accept' leave guile mode while blocking
|
||||
** `scm_c_read ()' and `scm_c_write ()' now type-check their port argument
|
||||
|
||||
* New modules (see the manual for details)
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
2007-12-04 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
* ports.c (scm_c_read): Validate PORT as an open input port.
|
||||
(scm_c_write): Validate PORT as an open output port.
|
||||
|
||||
* socket.c (scm_accept): Leave guile mode using
|
||||
`scm_std_select ()' before calling `accept(2)'. Reported by
|
||||
dskr <dskr@mac.com>.
|
||||
|
|
|
@ -1069,10 +1069,14 @@ scm_lfwrite (const char *ptr, size_t size, SCM port)
|
|||
|
||||
size_t
|
||||
scm_c_read (SCM port, void *buffer, size_t size)
|
||||
#define FUNC_NAME "scm_c_read"
|
||||
{
|
||||
scm_t_port *pt = SCM_PTAB_ENTRY (port);
|
||||
scm_t_port *pt;
|
||||
size_t n_read = 0, n_available;
|
||||
|
||||
SCM_VALIDATE_OPINPORT (1, port);
|
||||
|
||||
pt = SCM_PTAB_ENTRY (port);
|
||||
if (pt->rw_active == SCM_PORT_WRITE)
|
||||
scm_ptobs[SCM_PTOBNUM (port)].flush (port);
|
||||
|
||||
|
@ -1109,6 +1113,7 @@ scm_c_read (SCM port, void *buffer, size_t size)
|
|||
|
||||
return n_read + size;
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
/* scm_c_write
|
||||
*
|
||||
|
@ -1122,9 +1127,15 @@ scm_c_read (SCM port, void *buffer, size_t size)
|
|||
|
||||
void
|
||||
scm_c_write (SCM port, const void *ptr, size_t size)
|
||||
#define FUNC_NAME "scm_c_write"
|
||||
{
|
||||
scm_t_port *pt = SCM_PTAB_ENTRY (port);
|
||||
scm_t_ptob_descriptor *ptob = &scm_ptobs[SCM_PTOBNUM (port)];
|
||||
scm_t_port *pt;
|
||||
scm_t_ptob_descriptor *ptob;
|
||||
|
||||
SCM_VALIDATE_OPOUTPORT (1, port);
|
||||
|
||||
pt = SCM_PTAB_ENTRY (port);
|
||||
ptob = &scm_ptobs[SCM_PTOBNUM (port)];
|
||||
|
||||
if (pt->rw_active == SCM_PORT_READ)
|
||||
scm_end_input (port);
|
||||
|
@ -1134,6 +1145,7 @@ scm_c_write (SCM port, const void *ptr, size_t size)
|
|||
if (pt->rw_random)
|
||||
pt->rw_active = SCM_PORT_WRITE;
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
void
|
||||
scm_flush (SCM port)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue