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

Changes from arch/CVS synchronization

This commit is contained in:
Ludovic Courtès 2007-08-23 21:30:54 +00:00
parent 300a1f54b7
commit 5da403801c
7 changed files with 39 additions and 1 deletions

View file

@ -1,3 +1,7 @@
2007-08-23 Ludovic Courtès <ludo@gnu.org>
* NEWS: Mention Solaris bug fixes.
2007-08-11 Ludovic Courtès <ludo@gnu.org>
* NEWS: Mention SRFI-35 and the new reader.

1
NEWS
View file

@ -15,6 +15,7 @@ Changes in 1.8.3 (since 1.8.2)
* Bugs fixed
** Expressions like "(set! 'x #t)" no longer yield a crash
** Build problems on Solaris fixed
* Implementation improvements

View file

@ -1,3 +1,10 @@
2007-08-23 Ludovic Courtès <ludo@gnu.org>
* read.c (scm_read_quote): Record position and copy source
expression when asked to. Reported by Kevin Ryde.
* stime.c: Define `_REENTRANT' only if not already defined.
2007-08-21 Kevin Ryde <user42@zip.com.au>
* gc-card.c (scm_i_card_statistics): Record scm_tc7_number types as

View file

@ -636,6 +636,8 @@ static SCM
scm_read_quote (int chr, SCM port)
{
SCM p;
long line = SCM_LINUM (port);
int column = SCM_COL (port) - 1;
switch (chr)
{
@ -669,6 +671,17 @@ scm_read_quote (int chr, SCM port)
}
p = scm_cons2 (p, scm_read_expression (port), SCM_EOL);
if (SCM_RECORD_POSITIONS_P)
scm_whash_insert (scm_source_whash, p,
scm_make_srcprops (line, column,
SCM_FILENAME (port),
SCM_COPY_SOURCE_P
? (scm_cons2 (SCM_CAR (p),
SCM_CAR (SCM_CDR (p)),
SCM_EOL))
: SCM_UNDEFINED,
SCM_EOL));
return p;
}

View file

@ -32,7 +32,9 @@
hard coding __hpux. */
#define _GNU_SOURCE /* ask glibc for everything, in particular strptime */
#define _REENTRANT /* ask solaris for gmtime_r prototype */
#ifndef _REENTRANT
# define _REENTRANT /* ask solaris for gmtime_r prototype */
#endif
#ifdef __hpux
#define _POSIX_C_SOURCE 199506L /* for gmtime_r prototype */
#endif

View file

@ -1,3 +1,8 @@
2007-08-23 Ludovic Courtès <ludo@gnu.org>
* tests/reader.test (read-options)[positions on quote]: New
test, proposed by Kevin Ryde.
2007-08-23 Kevin Ryde <user42@zip.com.au>
* tests/ports.test (port-for-each): New test for passing freed cell,

View file

@ -151,6 +151,12 @@
(let ((sexp (with-read-options '(positions)
(lambda ()
(read-string "(+ 1 2 3)")))))
(and (equal? (source-property sexp 'line) 0)
(equal? (source-property sexp 'column) 0))))
(pass-if "positions on quote"
(let ((sexp (with-read-options '(positions)
(lambda ()
(read-string "'abcde")))))
(and (equal? (source-property sexp 'line) 0)
(equal? (source-property sexp 'column) 0)))))