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

*** empty log message ***

This commit is contained in:
Mikael Djurfeldt 1999-07-24 23:10:57 +00:00
parent 0b6881fa6c
commit f15913d08f
4 changed files with 56 additions and 5 deletions

View file

@ -1,3 +1,51 @@
1999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
* ports.c, ports.h (scm_make_port_type): New interface for
creation of port types (replaces scm_newptob). Just as for the
smobs, we need to separate the internal representation of smob
types from the interface, so that we easily can add new fields and
rearrange things without caring about backward compatibility.
This change was forced by the need in GOOPS to create classes
representing port types.
(scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
scm_set_ptob_seek, scm_set_ptob_truncate,
scm_set_ptob_input_waiting_p): New setters.
(scm_newptob): Rewritten to use scm_make_port_type. For backward
compatibility.
(scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
(scm_prinport): Removed.
(scm_port_print): Added.
(scm_print_port_mode): Added.
(void_port_ptob, print_void_port, close_void_port, noop0):
Removed. Removed #include "genio.h" Added #include "objects.h",
#include "smobs.h"
* fports.c (prinfport): Moved code from ports.c.
(local_free): Added.
(scm_fptob): Removed. Instead use new interface.
(scm_make_fptob): Added. (Need to create basic ports in a
specific order in ports.c.)
* strports.c (scm_stptob, prinstpt, noop0): Removed
(scm_make_stptob): Added.
* vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
(scm_make_sfport): Added.
* filesys.c (scm_dir_print): Don't use the port printing code.
Instead provide specific directory printer.
* gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
* ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
scm_ptob_descriptor.
* smob.c (scm_smob_print): Handle non-existing type name nicely.
Removed #include "genio.h"
* objects.c (scm_make_port_classes): New function ptr.
1999-07-24 Gary Houston <ghouston@easynet.co.uk>
* gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
@ -17,6 +65,11 @@
(SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
SCM_INOUT_PCLASS_INDEX): Added.
* Makefile.am: Removed genio.c, genio.x.
* genio.c: Removed.
1999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
* init.c: Make sure that scm_post_boot_init_modules is called only

View file

@ -38,7 +38,7 @@ libguile_la_SOURCES = \
alist.c arbiters.c async.c backtrace.c boolean.c chars.c \
continuations.c debug.c dynl.c dynwind.c eq.c error.c eval.c \
evalext.c feature.c filesys.c fluids.c fports.c gc.c gdbint.c \
genio.c gh_data.c gh_eval.c gh_funcs.c gh_init.c gh_io.c gh_list.c \
gh_data.c gh_eval.c gh_funcs.c gh_init.c gh_io.c gh_list.c \
gh_predicates.c gsubr.c guardians.c hash.c hashtab.c init.c \
ioext.c keywords.c list.c load.c macros.c mallocs.c \
modules.c net_db.c numbers.c objects.c objprop.c options.c pairs.c \
@ -52,7 +52,7 @@ BUILT_SOURCES = \
cpp_err_symbols.c cpp_sig_symbols.c libpath.h alist.x arbiters.x \
async.x backtrace.x boolean.x chars.x continuations.x debug.x \
dynl.x dynwind.x eq.x error.x eval.x evalext.x feature.x filesys.x \
fluids.x fports.x gc.x gdbint.x genio.x gh_data.x gh_eval.x \
fluids.x fports.x gc.x gdbint.x gh_data.x gh_eval.x \
gh_funcs.x gh_init.x gh_io.x gh_list.x gh_predicates.x gsubr.x \
guardians.x hash.x hashtab.x init.x ioext.x iselect.x keywords.x \
list.x load.x macros.x mallocs.x modules.x net_db.x \

View file

@ -66,8 +66,6 @@ struct scm_fport {
/* test whether fdes supports random access. */
#define SCM_FDES_RANDOM_P(fdes) ((lseek (fdes, 0, SEEK_CUR) == -1) ? 0 : 1)
extern scm_ptobfuns scm_fptob;
extern SCM scm_setbuf0 (SCM port);
extern SCM scm_setvbuf (SCM port, SCM mode, SCM size);

View file

@ -1695,7 +1695,7 @@ loop:
scm_port *pt = SCM_PTAB_ENTRY (port_or_fd);
int remaining = (cend - offset) * sz;
char *source = SCM_CHARS (v) + (cstart + offset) * sz;
scm_ptobfuns *ptob = &scm_ptobs[SCM_PTOBNUM (port_or_fd)];
scm_ptob_descriptor *ptob = &scm_ptobs[SCM_PTOBNUM (port_or_fd)];
ans = cend - offset;
if (pt->rw_active == SCM_PORT_READ)