summaryrefslogtreecommitdiff
path: root/src/openscad.cc
diff options
context:
space:
mode:
authorDon Bright <hugh.m.bright@gmail.com>2013-09-21 05:12:42 (GMT)
committerDon Bright <hugh.m.bright@gmail.com>2013-09-21 05:12:42 (GMT)
commit47ed2f1b1262c0bda78153c9cebf576b571a7bb4 (patch)
treec52cf024811cad90cbf31dde086eda5f59d3a9e5 /src/openscad.cc
parent5f36117b8ff7e14ae450e770cdaa67e60561672d (diff)
moving towards making tests work on bsd again
Diffstat (limited to 'src/openscad.cc')
-rw-r--r--src/openscad.cc27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/openscad.cc b/src/openscad.cc
index 5a219ac..d8ce112 100644
--- a/src/openscad.cc
+++ b/src/openscad.cc
@@ -83,6 +83,16 @@ using std::vector;
using boost::lexical_cast;
using boost::is_any_of;
+static void echotest_output_handler( const std::string &msg, void *userdata )
+{
+ std::ofstream *outstream = static_cast<std::ofstream *>(userdata);
+ if (!outstream->is_open()) {
+ fprintf(stderr,"Error writing outstream\n" );
+ return;
+ }
+ *outstream << msg;
+}
+
static void help(const char *progname)
{
int tab = int(strlen(progname))+8;
@@ -191,7 +201,7 @@ int cmdline( const char* deps_output_file, const char* filename, Camera &camera,
const char *png_output_file = NULL;
const char *ast_output_file = NULL;
const char *term_output_file = NULL;
- bool null_output = false;
+ const char *echotest_output_file = NULL;
std::string suffix = boosty::extension_str( output_file );
boost::algorithm::to_lower( suffix );
@@ -203,7 +213,7 @@ int cmdline( const char* deps_output_file, const char* filename, Camera &camera,
else if (suffix == ".png") png_output_file = output_file;
else if (suffix == ".ast") ast_output_file = output_file;
else if (suffix == ".term") term_output_file = output_file;
- else if (strcmp(output_file, "null") == 0) null_output = true;
+ else if (suffix == ".echotest") echotest_output_file = output_file;
else {
fprintf(stderr, "Unknown suffix for output file %s\n", output_file);
return 1;
@@ -216,6 +226,15 @@ int cmdline( const char* deps_output_file, const char* filename, Camera &camera,
top_ctx.dump(NULL, NULL);
#endif
+ if (echotest_output_file) {
+ std::ofstream fstream( echotest_output_file );
+ if (!fstream.is_open()) {
+ PRINTB("Can't open file \"%s\" for export", csg_output_file);
+ } else {
+ set_output_handler( echotest_output_handler, fstream );
+ }
+ }
+
FileModule *root_module;
ModuleInstantiation root_inst("group");
AbstractNode *root_node;
@@ -301,8 +320,8 @@ int cmdline( const char* deps_output_file, const char* filename, Camera &camera,
}
else {
#ifdef ENABLE_CGAL
- if ((null_output || png_output_file) && !(renderer==Render::CGAL)) {
- // null output or OpenCSG png -> don't necessarily need CGALMesh evaluation
+ if ((echotest_output_file || png_output_file) && !(renderer==Render::CGAL)) {
+ // echotest or OpenCSG png -> don't necessarily need CGALMesh evaluation
} else {
root_N = cgalevaluator.evaluateCGALMesh(*tree.root());
}
contact: Jan Huwald // Impressum