summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiles Bathgate <gilesbathgate@gmail.com>2010-12-11 12:41:23 (GMT)
committerGiles Bathgate <gilesbathgate@gmail.com>2010-12-11 12:41:23 (GMT)
commit052f8bc620f579271be69a0d0d699b8b4ac5bb14 (patch)
treeb2e03d298fa5ddfa7f9e70ac67e5e2848bc66769
parent03c02cde89d43d465b9e9a354be8668fe6fca56d (diff)
Fix for when the included file doesn't exist. Needed because we will never get an EOF, and so never pop the stack.
-rw-r--r--src/lexer.l1
-rw-r--r--testdata/scad/include-test.scad3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/lexer.l b/src/lexer.l
index 9e8aaf8..932711b 100644
--- a/src/lexer.l
+++ b/src/lexer.l
@@ -202,6 +202,7 @@ void includefile()
yyin = fopen(finfo.absoluteFilePath().toLocal8Bit(), "r");
if (!yyin) {
PRINTA("WARNING: Can't open input file `%1'.", filename);
+ path_stack.pop();
return;
}
filename.clear();
diff --git a/testdata/scad/include-test.scad b/testdata/scad/include-test.scad
index a9528f5..5db02d7 100644
--- a/testdata/scad/include-test.scad
+++ b/testdata/scad/include-test.scad
@@ -1,6 +1,9 @@
//Test that the entire path is pushed onto the stack upto the last '/'
include <sub1/sub2/sub3/sub4/include-test2.scad>
+//Test that a non existent path/file doesn't screw things up
+include <non/existent/path/non-file>
+
//Test with empty path
include <include-test5.scad>
contact: Jan Huwald // Impressum