summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2012-02-02 22:11:54 (GMT)
committerMarius Kintel <marius@kintel.net>2012-02-02 22:11:54 (GMT)
commit1ce1b8824968a55ecd2b9d689b2720594b59d632 (patch)
tree223d257dcf51fcf89690bebe9c227cfc98b2c488
parent456a87efcc191f43abf25abeaed0345d0e07e3ef (diff)
bugfix: Nested use and included of files inside libraries was broken. Fixes #78
-rw-r--r--src/lexer.l4
-rw-r--r--tests/regression/cgalpngtest/include-tests-expected.pngbin10582 -> 11101 bytes
-rw-r--r--tests/regression/cgalpngtest/use-tests-expected.pngbin10586 -> 11511 bytes
-rw-r--r--tests/regression/dumptest/include-tests-expected.txt45
-rw-r--r--tests/regression/dumptest/use-tests-expected.txt62
-rw-r--r--tests/regression/opencsgtest/include-tests-expected.pngbin11304 -> 11732 bytes
-rw-r--r--tests/regression/opencsgtest/use-tests-expected.pngbin11050 -> 12156 bytes
-rw-r--r--tests/regression/throwntogethertest/include-tests-expected.pngbin11420 -> 11896 bytes
-rw-r--r--tests/regression/throwntogethertest/use-tests-expected.pngbin11432 -> 12290 bytes
9 files changed, 109 insertions, 2 deletions
diff --git a/src/lexer.l b/src/lexer.l
index 4e51e14..5644ded 100644
--- a/src/lexer.l
+++ b/src/lexer.l
@@ -114,7 +114,7 @@ use[ \t\r\n>]*"<" { BEGIN(cond_use); }
usepath = filename;
}
else {
- usepath = fs::path(parser_source_path) / filename;
+ usepath = sourcepath() / filename;
if (!fs::exists(usepath)) {
usepath = boosty::absolute(fs::path(get_librarydir()) / filename);
}
@@ -213,7 +213,7 @@ void includefile()
}
filepath.clear();
- path_stack.push_back(dirinfo);
+ path_stack.push_back(finfo.parent_path());
handle_dep(boosty::absolute(finfo).string());
yyin = fopen(boosty::absolute(finfo).string().c_str(), "r");
diff --git a/tests/regression/cgalpngtest/include-tests-expected.png b/tests/regression/cgalpngtest/include-tests-expected.png
index 031dcda..8598bf8 100644
--- a/tests/regression/cgalpngtest/include-tests-expected.png
+++ b/tests/regression/cgalpngtest/include-tests-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/use-tests-expected.png b/tests/regression/cgalpngtest/use-tests-expected.png
index 5afa74e..a188f08 100644
--- a/tests/regression/cgalpngtest/use-tests-expected.png
+++ b/tests/regression/cgalpngtest/use-tests-expected.png
Binary files differ
diff --git a/tests/regression/dumptest/include-tests-expected.txt b/tests/regression/dumptest/include-tests-expected.txt
index 00e7beb..644c7c7 100644
--- a/tests/regression/dumptest/include-tests-expected.txt
+++ b/tests/regression/dumptest/include-tests-expected.txt
@@ -33,5 +33,50 @@
multmatrix([[1, 0, 0, 0], [0, 1, 0, -2], [0, 0, 1, 0], [0, 0, 0, 1]]) {
sphere($fn = 16, $fa = 12, $fs = 2, r = 0.7);
}
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, -4], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ cube(size = [1.5708, 0.5, 0.5], center = true);
+ }
+ multmatrix([[1, 0, 0, -2], [0, 1, 0, -4], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ cube(size = [1.43239, 0.5, 0.5], center = true);
+ }
+ multmatrix([[1, 0, 0, 2], [0, 1, 0, -4], [0, 0, 1, -0.5], [0, 0, 0, 1]]) {
+ multmatrix([[0.05, 0, 0, 0], [0, 0.05, 0, 0], [0, 0, 0.05, 0], [0, 0, 0, 1]]) {
+ group() {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ union() {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 17], [0, 0, 0, 1]]) {
+ cylinder($fn = 30, $fa = 12, $fs = 2, h = 8, r1 = 6, r2 = 6, center = false);
+ cylinder($fn = 20, $fa = 12, $fs = 2, h = 10.5, r1 = 2.5, r2 = 2.5, center = false);
+ }
+ multmatrix([[1, 0, 0, -6], [0, 1, 0, -6], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ cube(size = [12, 22.8, 19.5], center = false);
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, -5], [0, 0, 1, 17], [0, 0, 0, 1]]) {
+ cube(size = [12, 7, 2.5], center = false);
+ }
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 20.8], [0, 0, 1, 17], [0, 0, 0, 1]]) {
+ cube(size = [12, 7, 2.5], center = false);
+ }
+ }
+ group();
+ multmatrix([[1, 0, 0, -6], [0, 1, 0, 0], [0, 0, 1, 19], [0, 0, 0, 1]]) {
+ multmatrix([[2.22045e-16, -2.22045e-16, 1, 0], [1, 0, -2.22045e-16, 0], [0, 1, 2.22045e-16, 0], [0, 0, 0, 1]]) {
+ group() {
+ linear_extrude(height = 12, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 2) {
+ polygon(points = [[0, 0], [18, 0], [0, 4]], paths = [[0, 1, 2]], convexity = 1);
+ }
+ }
+ }
+ }
+ multmatrix([[1, 0, 0, -6], [0, 1, 0, -6], [0, 0, 1, 19], [0, 0, 0, 1]]) {
+ cube(size = [12, 6.5, 4], center = false);
+ }
+ }
+ group();
+ }
+ }
+ }
+ }
+ }
}
diff --git a/tests/regression/dumptest/use-tests-expected.txt b/tests/regression/dumptest/use-tests-expected.txt
index c320af6..ed903b9 100644
--- a/tests/regression/dumptest/use-tests-expected.txt
+++ b/tests/regression/dumptest/use-tests-expected.txt
@@ -35,5 +35,67 @@
multmatrix([[1, 0, 0, 0], [0, 1, 0, -2], [0, 0, 1, 0], [0, 0, 0, 1]]) {
sphere($fn = 16, $fa = 12, $fs = 2, r = 1);
}
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, -4], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ group() {
+ multmatrix([[2.22045e-16, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 2.22045e-16, 0], [0, 0, 0, 1]]) {
+ union() {
+ linear_extrude(height = 1.5, center = true, convexity = 1, twist = 0, slices = 2, $fn = 0, $fa = 12, $fs = 2) {
+ circle($fn = 30, $fa = 12, $fs = 2, r = 0.3);
+ }
+ linear_extrude(height = 1.5, center = true, convexity = 1, twist = 0, slices = 2, $fn = 0, $fa = 12, $fs = 2) {
+ projection(cut = false, convexity = 0) {
+ multmatrix([[2.22045e-16, 0, -1, 0], [0, 1, 0, 0], [1, 0, 2.22045e-16, 0], [0, 0, 0, 1]]) {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.318198], [0, 0, 0, 1]]) {
+ cylinder($fn = 30, $fa = 12, $fs = 2, h = 0.212132, r1 = 0.212132, r2 = 0, center = true);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ multmatrix([[1, 0, 0, -2], [0, 1, 0, -4], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ cube(size = [1.43239, 0.5, 0.5], center = true);
+ }
+ multmatrix([[1, 0, 0, 2], [0, 1, 0, -4], [0, 0, 1, -0.5], [0, 0, 0, 1]]) {
+ multmatrix([[0.05, 0, 0, 0], [0, 0.05, 0, 0], [0, 0, 0.05, 0], [0, 0, 0, 1]]) {
+ group() {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ union() {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 17], [0, 0, 0, 1]]) {
+ cylinder($fn = 30, $fa = 12, $fs = 2, h = 8, r1 = 6, r2 = 6, center = false);
+ cylinder($fn = 20, $fa = 12, $fs = 2, h = 10.5, r1 = 2.5, r2 = 2.5, center = false);
+ }
+ multmatrix([[1, 0, 0, -6], [0, 1, 0, -6], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ cube(size = [12, 22.8, 19.5], center = false);
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, -5], [0, 0, 1, 17], [0, 0, 0, 1]]) {
+ cube(size = [12, 7, 2.5], center = false);
+ }
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 20.8], [0, 0, 1, 17], [0, 0, 0, 1]]) {
+ cube(size = [12, 7, 2.5], center = false);
+ }
+ }
+ group();
+ multmatrix([[1, 0, 0, -6], [0, 1, 0, 0], [0, 0, 1, 19], [0, 0, 0, 1]]) {
+ multmatrix([[2.22045e-16, -2.22045e-16, 1, 0], [1, 0, -2.22045e-16, 0], [0, 1, 2.22045e-16, 0], [0, 0, 0, 1]]) {
+ group() {
+ linear_extrude(height = 12, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 2) {
+ polygon(points = [[0, 0], [18, 0], [0, 4]], paths = [[0, 1, 2]], convexity = 1);
+ }
+ }
+ }
+ }
+ multmatrix([[1, 0, 0, -6], [0, 1, 0, -6], [0, 0, 1, 19], [0, 0, 0, 1]]) {
+ cube(size = [12, 6.5, 4], center = false);
+ }
+ }
+ group();
+ }
+ }
+ }
+ }
+ }
}
diff --git a/tests/regression/opencsgtest/include-tests-expected.png b/tests/regression/opencsgtest/include-tests-expected.png
index c1e780b..566236b 100644
--- a/tests/regression/opencsgtest/include-tests-expected.png
+++ b/tests/regression/opencsgtest/include-tests-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/use-tests-expected.png b/tests/regression/opencsgtest/use-tests-expected.png
index 5141b37..f807581 100644
--- a/tests/regression/opencsgtest/use-tests-expected.png
+++ b/tests/regression/opencsgtest/use-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/include-tests-expected.png b/tests/regression/throwntogethertest/include-tests-expected.png
index b6dc00e..5576e70 100644
--- a/tests/regression/throwntogethertest/include-tests-expected.png
+++ b/tests/regression/throwntogethertest/include-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/use-tests-expected.png b/tests/regression/throwntogethertest/use-tests-expected.png
index 7e2f702..8ab4daa 100644
--- a/tests/regression/throwntogethertest/use-tests-expected.png
+++ b/tests/regression/throwntogethertest/use-tests-expected.png
Binary files differ
contact: Jan Huwald // Impressum