aboutsummaryrefslogtreecommitdiffhomepage
path: root/builtin_complete.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-12-12 18:18:07 -0800
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-12-12 18:18:07 -0800
commit5cf59de6763a0000fdc87f0101ca78bd137dffcc (patch)
treeb9700e9650a4a06af91ec24dad0c621f8381c3d5 /builtin_complete.cpp
parente25d49b80b0668b55a58e1445aa047a68a1043d3 (diff)
Finish rewriting detect_errors to use new parser. All tests now pass (!)
Diffstat (limited to 'builtin_complete.cpp')
-rw-r--r--builtin_complete.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/builtin_complete.cpp b/builtin_complete.cpp
index 14b3a4b7..0cc3b7e7 100644
--- a/builtin_complete.cpp
+++ b/builtin_complete.cpp
@@ -497,15 +497,19 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
{
if (condition && wcslen(condition))
{
- if (parser.detect_errors(condition))
+ const wcstring condition_string = condition;
+ parse_error_list_t errors;
+ if (parser.detect_errors(condition_string, &errors))
{
append_format(stderr_buffer,
- L"%ls: Condition '%ls' contained a syntax error\n",
+ L"%ls: Condition '%ls' contained a syntax error",
argv[0],
condition);
-
- parser.detect_errors(condition, &stderr_buffer, argv[0]);
-
+ for (size_t i=0; i < errors.size(); i++)
+ {
+ append_format(stderr_buffer, L"\n%s: ", argv[0]);
+ stderr_buffer.append(errors.at(i).describe(condition_string));
+ }
res = true;
}
}