1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

Changes from arch/CVS synchronization

This commit is contained in:
Ludovic Courtès 2007-08-23 21:17:24 +00:00
parent 2baec6a946
commit 492faee1e5
4 changed files with 27 additions and 0 deletions

View file

@ -1,5 +1,8 @@
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>

View file

@ -610,6 +610,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)
{
@ -643,6 +645,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

@ -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)))))