diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-09-26 21:32:04 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-09-26 21:32:04 -0700 |
commit | 25f06fa13e92347e9a4d3e506473642e593aeccc (patch) | |
tree | 8f3aea94d6145c2f4d1a5b0e35c13b93408fefae | |
parent | a2270ae7a5b5d337cf0b92fbf44cd4767ce8965e (diff) | |
download | txr-25f06fa13e92347e9a4d3e506473642e593aeccc.tar.gz txr-25f06fa13e92347e9a4d3e506473642e593aeccc.tar.bz2 txr-25f06fa13e92347e9a4d3e506473642e593aeccc.zip |
Use *load-path* in load/include directive.
* match.c (v_load): Obtain parent load path from *load-path*
variable, rather than from source location info
associated with the directive. This changes the
semantics of when a @(load ...) occurs in code included
via @(include ...). That @(load ...) is processed in the
*load-path* context of the parent, rather than the
include.
* tests/011/txr-case.txr: Load txr-case.txr from the
standard library, rather than include it. Otherwise
txr-case.txr looks for txr-case.tl in tests/011.
-rw-r--r-- | match.c | 2 | ||||
-rw-r--r-- | tests/011/txr-case.txr | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -3865,7 +3865,7 @@ static val v_load(match_files_ctx *c) spec_bind (specline, first_spec, c->spec); val sym = first(first_spec); val args = rest(first_spec); - val parent = or2(cdr(source_loc(specline)), null_string); + val parent = or2(load_path, null_string); val target = tleval(specline, first(args), c->bindings); if (rest(specline)) diff --git a/tests/011/txr-case.txr b/tests/011/txr-case.txr index f427be9e..1aa80478 100644 --- a/tests/011/txr-case.txr +++ b/tests/011/txr-case.txr @@ -1,4 +1,4 @@ -@(include `@stdlib/txr-case`) +@(load `@{stdlib}txr-case`) @(define date (year month day)) @{year /\d\d\d\d/}-@{month /\d\d/}-@{day /\d\d/} @(end) |