1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 09:40:25 +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> 2007-08-11 Ludovic Courtès <ludo@gnu.org>
* NEWS: Mention SRFI-35 and the new reader. * 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 * Bugs fixed
** Expressions like "(set! 'x #t)" no longer yield a crash ** Expressions like "(set! 'x #t)" no longer yield a crash
** Build problems on Solaris fixed
* Implementation improvements * 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> 2007-08-21 Kevin Ryde <user42@zip.com.au>
* gc-card.c (scm_i_card_statistics): Record scm_tc7_number types as * 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_read_quote (int chr, SCM port)
{ {
SCM p; SCM p;
long line = SCM_LINUM (port);
int column = SCM_COL (port) - 1;
switch (chr) switch (chr)
{ {
@ -669,6 +671,17 @@ scm_read_quote (int chr, SCM port)
} }
p = scm_cons2 (p, scm_read_expression (port), SCM_EOL); 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; return p;
} }

View file

@ -32,7 +32,9 @@
hard coding __hpux. */ hard coding __hpux. */
#define _GNU_SOURCE /* ask glibc for everything, in particular strptime */ #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 #ifdef __hpux
#define _POSIX_C_SOURCE 199506L /* for gmtime_r prototype */ #define _POSIX_C_SOURCE 199506L /* for gmtime_r prototype */
#endif #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> 2007-08-23 Kevin Ryde <user42@zip.com.au>
* tests/ports.test (port-for-each): New test for passing freed cell, * tests/ports.test (port-for-each): New test for passing freed cell,

View file

@ -151,6 +151,12 @@
(let ((sexp (with-read-options '(positions) (let ((sexp (with-read-options '(positions)
(lambda () (lambda ()
(read-string "(+ 1 2 3)"))))) (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) (and (equal? (source-property sexp 'line) 0)
(equal? (source-property sexp 'column) 0))))) (equal? (source-property sexp 'column) 0)))))