diff options
author | Mark H Weaver <mhw@netris.org> | 2012-02-08 03:10:11 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2012-02-08 15:15:14 -0500 |
commit | d6cb0203cb58ea352b4e9de5eea4325e379c175c (patch) | |
tree | 9ec7ddd66e1713671825e97b9c280273d61e11b7 | |
parent | cfd15439b2d2b7a9410e379dc60c21e9010eccfc (diff) | |
download | guile-d6cb0203cb58ea352b4e9de5eea4325e379c175c.tar.gz |
Add and use maybe_annotate_source helper in read.c
* libguile/read.c (maybe_annotate_source): New static helper function.
(scm_read_sexp, scm_read_quote, scm_read_syntax): Use
'maybe_annotate_source'.
-rw-r--r-- | libguile/read.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/libguile/read.c b/libguile/read.c index d026f0565..4cdde4ab2 100644 --- a/libguile/read.c +++ b/libguile/read.c @@ -360,6 +360,14 @@ static SCM scm_read_sharp (int chr, SCM port); static SCM +maybe_annotate_source (SCM x, SCM port, long line, int column) +{ + if (SCM_RECORD_POSITIONS_P) + scm_i_set_source_properties_x (x, line, column, SCM_FILENAME (port)); + return x; +} + +static SCM scm_read_sexp (scm_t_wchar chr, SCM port) #define FUNC_NAME "scm_i_lreadparen" { @@ -423,10 +431,7 @@ scm_read_sexp (scm_t_wchar chr, SCM port) } exit: - if (SCM_RECORD_POSITIONS_P) - scm_i_set_source_properties_x (ans, line, column, SCM_FILENAME (port)); - - return ans; + return maybe_annotate_source (ans, port, line, column); } #undef FUNC_NAME @@ -780,10 +785,7 @@ scm_read_quote (int chr, SCM port) } p = scm_cons2 (p, scm_read_expression (port), SCM_EOL); - if (SCM_RECORD_POSITIONS_P) - scm_i_set_source_properties_x (p, line, column, SCM_FILENAME (port)); - - return p; + return maybe_annotate_source (p, port, line, column); } SCM_SYMBOL (sym_syntax, "syntax"); @@ -830,10 +832,7 @@ scm_read_syntax (int chr, SCM port) } p = scm_cons2 (p, scm_read_expression (port), SCM_EOL); - if (SCM_RECORD_POSITIONS_P) - scm_i_set_source_properties_x (p, line, column, SCM_FILENAME (port)); - - return p; + return maybe_annotate_source (p, port, line, column); } static SCM |