From 4f4ddb938a10ba8ab16761c8979cff37a850681b Mon Sep 17 00:00:00 2001 From: Liam Marshall Date: Wed, 13 May 2015 11:16:24 -0500 Subject: [PATCH 1/6] Add --quiet,-q option --- src/openscad.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/openscad.cc b/src/openscad.cc index e0ac9532..493eb8ee 100644 --- a/src/openscad.cc +++ b/src/openscad.cc @@ -800,6 +800,7 @@ int main(int argc, char **argv) ("projection", po::value(), "(o)rtho or (p)erspective when exporting png") ("colorscheme", po::value(), "colorscheme") ("debug", po::value(), "special debug info") + ("quiet,q", "quiet mode (don't print anything *except* errors)") ("o,o", po::value(), "out-file") ("s,s", po::value(), "stl-file") ("x,x", po::value(), "dxf-file") From 02db2e15a4823329fb47f3ae26eee354a2f10e20 Mon Sep 17 00:00:00 2001 From: Liam Marshall Date: Wed, 13 May 2015 11:18:32 -0500 Subject: [PATCH 2/6] Make -q toggle a global variable for quiet mode --- src/openscad.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/openscad.cc b/src/openscad.cc index 493eb8ee..7434a3a4 100644 --- a/src/openscad.cc +++ b/src/openscad.cc @@ -836,6 +836,9 @@ int main(int argc, char **argv) OpenSCAD::debug = vm["debug"].as(); PRINTB("Debug on. --debug=%s",OpenSCAD::debug); } + if (vm.count("quiet")) { + OpenSCAD::quiet = true; + } if (vm.count("help")) help(argv[0]); if (vm.count("version")) version(); if (vm.count("info")) arg_info = true; From 061537e77329281ffc950515d795c16d78379789 Mon Sep 17 00:00:00 2001 From: Liam Marshall Date: Wed, 13 May 2015 11:21:36 -0500 Subject: [PATCH 3/6] Add OpenSCAD::quiet definition --- src/printutils.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/printutils.cc b/src/printutils.cc index 5ee32e80..796f8fe0 100644 --- a/src/printutils.cc +++ b/src/printutils.cc @@ -12,6 +12,7 @@ std::list print_messages_stack; OutputHandlerFunc *outputhandler = NULL; void *outputhandler_data = NULL; std::string OpenSCAD::debug(""); +bool OpenSCAD::quiet = false; boost::circular_buffer lastmessages(5); From 5239121706066cd014d085373613e1a203798f8c Mon Sep 17 00:00:00 2001 From: Liam Marshall Date: Wed, 13 May 2015 11:21:55 -0500 Subject: [PATCH 4/6] Make PRINT_NOCACHE respect OpenSCAD::quiet --- src/printutils.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/printutils.cc b/src/printutils.cc index 796f8fe0..72ce26c9 100644 --- a/src/printutils.cc +++ b/src/printutils.cc @@ -64,10 +64,12 @@ void PRINT_NOCACHE(const std::string &msg) else lastmessages.push_back(msg); } - if (!outputhandler) { - fprintf(stderr, "%s\n", msg.c_str()); - } else { - outputhandler(msg, outputhandler_data); + if (!OpenSCAD::quiet) { + if (!outputhandler) { + fprintf(stderr, "%s\n", msg.c_str()); + } else { + outputhandler(msg, outputhandler_data); + } } } From c31a96454c1b7fca336b8bb69c462131e99abb24 Mon Sep 17 00:00:00 2001 From: Liam Marshall Date: Wed, 13 May 2015 11:23:15 -0500 Subject: [PATCH 5/6] Need to add quiet to OpenSCAD namespace --- src/printutils.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/printutils.h b/src/printutils.h index 971a6211..8fd0caee 100644 --- a/src/printutils.h +++ b/src/printutils.h @@ -12,7 +12,10 @@ inline char * _( const char * msgid ) { return gettext( msgid ); } typedef void (OutputHandlerFunc)(const std::string &msg, void *userdata); extern OutputHandlerFunc *outputhandler; extern void *outputhandler_data; -namespace OpenSCAD { extern std::string debug; } +namespace OpenSCAD { + extern std::string debug; + extern bool quiet; +} void set_output_handler(OutputHandlerFunc *newhandler, void *userdata); From 1ab390d115fbdee6ebb520a0b6a7f306a11ff3db Mon Sep 17 00:00:00 2001 From: Liam Marshall Date: Wed, 13 May 2015 17:38:47 -0500 Subject: [PATCH 6/6] Don't suppress error messages --- src/printutils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/printutils.cc b/src/printutils.cc index 72ce26c9..6440308c 100644 --- a/src/printutils.cc +++ b/src/printutils.cc @@ -64,7 +64,7 @@ void PRINT_NOCACHE(const std::string &msg) else lastmessages.push_back(msg); } - if (!OpenSCAD::quiet) { + if (!OpenSCAD::quiet || boost::starts_with(msg, "ERROR")) { if (!outputhandler) { fprintf(stderr, "%s\n", msg.c_str()); } else {