summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainwin.cc5
-rw-r--r--testdata/modulecache-tests/README.txt4
-rwxr-xr-xtestdata/modulecache-tests/cascade.sh3
-rwxr-xr-xtestdata/modulecache-tests/cascade2.sh1
-rw-r--r--testdata/modulecache-tests/cascadetest.scad10
5 files changed, 11 insertions, 12 deletions
diff --git a/src/mainwin.cc b/src/mainwin.cc
index 788f824..eedd3a5 100644
--- a/src/mainwin.cc
+++ b/src/mainwin.cc
@@ -1106,7 +1106,10 @@ bool MainWindow::fileChangedOnDisk()
if (!this->fileName.isEmpty()) {
struct stat st;
memset(&st, 0, sizeof(struct stat));
- stat(this->fileName.toLocal8Bit(), &st);
+ bool valid = (stat(this->fileName.toLocal8Bit(), &st) == 0);
+ // If file isn't there, just return and use current editor text
+ if (!valid) return false;
+
std::string newid = str(boost::format("%x.%x") % st.st_mtime % st.st_size);
if (newid != this->autoReloadId) {
diff --git a/testdata/modulecache-tests/README.txt b/testdata/modulecache-tests/README.txt
index c38822f..214acc5 100644
--- a/testdata/modulecache-tests/README.txt
+++ b/testdata/modulecache-tests/README.txt
@@ -118,7 +118,9 @@ o ./cascade.sh
o Open cascadetest.scad
o Turn on Automatic Reload and Compile
o Verify that the 4 objects render correctly
-o rm cascade-*.scad
+o rm cascadetest.scad
+o Verify that no rerendering was triggered (the 4 objects are still there)
+o rm cascade*.scad
o Verify that no rerendering was triggered (the 4 objects are still there)
o ./cascade2.sh
o Verify that everything reloads at once without flickering
diff --git a/testdata/modulecache-tests/cascade.sh b/testdata/modulecache-tests/cascade.sh
index 6f15c7f..5dd0ef7 100755
--- a/testdata/modulecache-tests/cascade.sh
+++ b/testdata/modulecache-tests/cascade.sh
@@ -1,6 +1,7 @@
#!/bin/bash
-rm cascade-*.scad
+rm cascade*.scad
+echo "include <cascade-A.scad> include <cascade-B.scad> use <cascade-C.scad> use <cascade-D.scad> A(); translate([11,0,0]) B(); translate([22,0,0]) C(); translate([33,0,0]) D();" > cascadetest.scad
sleep 0.05
echo "module A() { sphere(5); }" > cascade-A.scad
sleep 0.05
diff --git a/testdata/modulecache-tests/cascade2.sh b/testdata/modulecache-tests/cascade2.sh
index aa17c6c..50f98e0 100755
--- a/testdata/modulecache-tests/cascade2.sh
+++ b/testdata/modulecache-tests/cascade2.sh
@@ -1,6 +1,7 @@
#!/bin/bash
rm cascade-*.scad
+echo "include <cascade-A.scad> include <cascade-B.scad> use <cascade-C.scad> use <cascade-D.scad> A(); translate([11,0,0]) B(); translate([22,0,0]) C(); translate([33,0,0]) D();" > cascadetest.scad
sleep 0.1
echo "module A() { sphere(6); }" > cascade-A.scad
sleep 0.1
diff --git a/testdata/modulecache-tests/cascadetest.scad b/testdata/modulecache-tests/cascadetest.scad
index 5cce652..33a089e 100644
--- a/testdata/modulecache-tests/cascadetest.scad
+++ b/testdata/modulecache-tests/cascadetest.scad
@@ -1,9 +1 @@
-include <cascade-A.scad>
-include <cascade-B.scad>
-use <cascade-C.scad>
-use <cascade-D.scad>
-
-A();
-translate([11,0,0]) B();
-translate([22,0,0]) C();
-translate([33,0,0]) D();
+include <cascade-A.scad> include <cascade-B.scad> use <cascade-C.scad> use <cascade-D.scad> A(); translate([11,0,0]) B(); translate([22,0,0]) C(); translate([33,0,0]) D();
contact: Jan Huwald // Impressum