summaryrefslogtreecommitdiffstats
path: root/match.c
diff options
context:
space:
mode:
Diffstat (limited to 'match.c')
-rw-r--r--match.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/match.c b/match.c
index 62eeb50d..b4a2fd56 100644
--- a/match.c
+++ b/match.c
@@ -4051,15 +4051,16 @@ val include(val specline)
return v_load(&c);
}
-int extract(val spec, val files, val predefined_bindings)
+val extract(val spec, val files, val predefined_bindings)
{
- cons_bind (bindings, success, match_files(mf_all(spec, files,
- predefined_bindings,
- t, nil)));
+ val result = match_files(mf_all(spec, files, predefined_bindings,
+ t, nil));
+ cons_bind (bindings, success, result);
if (opt_print_bindings) {
if (bindings) {
bindings = nreverse(bindings);
+ rplaca(result, bindings);
dump_bindings(bindings);
}
@@ -4067,7 +4068,7 @@ int extract(val spec, val files, val predefined_bindings)
put_line(lit("false"), std_output);
}
- return success ? 0 : EXIT_FAILURE;
+ return result;
}
static void syms_init(void)