From 1180a97cda1dab67169251eb8f50c1b076eeb1f4 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 22 Feb 2017 06:34:43 -0800 Subject: remq/remove-if family: bugfixes in error message. * lib.c (rem_impl): Take a name argument, so as to report correct function name. Also, serious fix here: we passed the address of the in function to the error message format job, rather than seq_in. (remove_if): Report as remove-if rather than remq in the error message. Also, same bug as in remq_impl: in used in place of seq_in. (remq, remql, remqual, keepq, keepql, keepqual): Pass function name as string into remq_impl. --- lib.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'lib.c') diff --git a/lib.c b/lib.c index 22135f89..f7029785 100644 --- a/lib.c +++ b/lib.c @@ -1520,7 +1520,7 @@ val rmember_if(val pred, val list, val key) return found; } -static val rem_impl(val (*eqfun)(val, val), +static val rem_impl(val (*eqfun)(val, val), val name, val obj, val seq_in, val keyfun_in) { val keyfun = default_bool_arg(keyfun_in); @@ -1585,7 +1585,7 @@ static val rem_impl(val (*eqfun)(val, val), return out; } default: - uw_throwf(error_s, lit("remq: ~s isn't a sequence"), in, nao); + uw_throwf(error_s, lit("~a: ~s isn't a sequence"), name, seq_in, nao); } } @@ -1653,39 +1653,39 @@ val remove_if(val pred, val seq_in, val keyfun_in) return out; } default: - uw_throwf(error_s, lit("remq: ~s isn't a sequence"), in, nao); + uw_throwf(error_s, lit("remove-if: ~s isn't a sequence"), seq_in, nao); } } val remq(val obj, val seq, val keyfun) { - return rem_impl(eq, obj, seq, keyfun); + return rem_impl(eq, lit("remq"), obj, seq, keyfun); } val remql(val obj, val seq, val keyfun) { - return rem_impl(eql, obj, seq, keyfun); + return rem_impl(eql, lit("remq"), obj, seq, keyfun); } val remqual(val obj, val seq, val keyfun) { - return rem_impl(equal, obj, seq, keyfun); + return rem_impl(equal, lit("remqual"), obj, seq, keyfun); } val keepq(val obj, val seq, val keyfun) { - return rem_impl(neq, obj, seq, keyfun); + return rem_impl(neq, lit("keepq"), obj, seq, keyfun); } val keepql(val obj, val seq, val keyfun) { - return rem_impl(neql, obj, seq, keyfun); + return rem_impl(neql, lit("keepql"), obj, seq, keyfun); } val keepqual(val obj, val seq, val keyfun) { - return rem_impl(nequal, obj, seq, keyfun); + return rem_impl(nequal, lit("keepqual"), obj, seq, keyfun); } val keep_if(val pred, val seq, val keyfun) -- cgit v1.2.3