diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cc | 8 | ||||
-rw-r--r-- | src/textual.cc | 11 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/main.cc b/src/main.cc index 736893a4..9a1e903e 100644 --- a/src/main.cc +++ b/src/main.cc @@ -133,8 +133,12 @@ int main(int argc, char * argv[], char * envp[]) } catch (const std::exception& err) { std::cout.flush(); // first display anything that was pending - std::cerr << error_context() << std::endl - << "Error: " << err.what() << std::endl; + + string context = error_context(); + if (! context.empty()) + std::cerr << context << std::endl; + + std::cerr << "Error: " << err.what() << std::endl; } catch (int _status) { status = _status; // used for a "quick" exit, and is used only diff --git a/src/textual.cc b/src/textual.cc index 1be5d4d8..ccce02ea 100644 --- a/src/textual.cc +++ b/src/textual.cc @@ -208,9 +208,14 @@ void textual_parser_t::instance_t::parse() add_error_context("While parsing file " << file_context(pathname, linenum - 1)); - std::cerr << error_context() << std::endl - << current_context << std::endl - << "Error: " << err.what() << std::endl; + string context = error_context(); + if (! context.empty()) + std::cerr << context << std::endl; + + if (! current_context.empty()) + std::cerr << current_context << std::endl; + + std::cerr << "Error: " << err.what() << std::endl; errors++; } } |