1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00

* print.c (scm_prin1): Remember old state of pstate->writingp.

This commit is contained in:
Mikael Djurfeldt 2003-04-14 14:51:09 +00:00
parent 55ccbd3545
commit da2e146a5b
3 changed files with 23 additions and 1 deletions

15
NEWS
View file

@ -29,6 +29,21 @@ Previously, the readline prompt disappeared when running Guile in
non-echoing terminal mode (for example under GDB in Emacs). This has
been fixed.
** Printing bug fixed.
Previously, the state of writingp in the print state could be altered
by recursive calls to printing functions.
** Append mode in hooks.
Append mode in hooks (adding the hook last in the list) now works
correctly.
** GOOPS/GC bug fixed.
The class layout slot, which informs the GC about which slots to GC
protect, is now initialized correctly.
* Changes to Scheme functions and syntax
* Changes to the C interface

View file

@ -1,3 +1,7 @@
2003-04-14 Mikael Djurfeldt <djurfeldt@nada.kth.se>
* print.c (scm_prin1): Remember old state of pstate->writingp.
2003-04-13 Mikael Djurfeldt <djurfeldt@nada.kth.se>
* goops.c (scm_sys_prep_layout_x): Instance allocation is now

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999,2000,2001 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999,2000,2001, 2003 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -679,6 +679,7 @@ scm_prin1 (SCM exp, SCM port, int writingp)
SCM handle = SCM_BOOL_F; /* Will GC protect the handle whilst unlinked */
SCM pstate_scm;
scm_print_state *pstate;
int old_writingp;
/* If PORT is a print-state/port pair, use that. Else create a new
print-state. */
@ -704,8 +705,10 @@ scm_prin1 (SCM exp, SCM port, int writingp)
}
pstate = SCM_PRINT_STATE (pstate_scm);
old_writingp = pstate->writingp;
pstate->writingp = writingp;
scm_iprin1 (exp, port, pstate);
pstate->writingp = old_writingp;
/* Return print state to pool if it has been created above and
hasn't escaped to Scheme. */