summaryrefslogtreecommitdiffabout
path: root/lib/file_factory.cc
Unidiff
Diffstat (limited to 'lib/file_factory.cc') (more/less context) (show whitespace changes)
-rw-r--r--lib/file_factory.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/file_factory.cc b/lib/file_factory.cc
index c6b5748..7ca7b86 100644
--- a/lib/file_factory.cc
+++ b/lib/file_factory.cc
@@ -30,24 +30,25 @@ namespace sitecing {
30 return true; 30 return true;
31 } 31 }
32 32
33 void file_factory::make(const string& dst) { 33 void file_factory::make(const string& dst) {
34 try { 34 try {
35 depth++; 35 depth++;
36 if(depth>25) 36 if(depth>25)
37 throw konforka::exception(CODEPOINT,"recursed too deeply."); 37 throw konforka::exception(CODEPOINT,"recursed too deeply.");
38 file_list_t deps; 38 file_list_t deps;
39 if(!is_uptodate(dst,&deps)) { 39 if(!is_uptodate(dst,&deps)) {
40 for(file_list_t::const_iterator i=deps.begin();i!=deps.end();i++) 40 for(file_list_t::const_iterator i=deps.begin();i!=deps.end();i++)
41 make(*i); 41 make(*i);
42 if(!is_uptodate(dst,&deps))
42 build(dst); 43 build(dst);
43 } 44 }
44 depth--; 45 depth--;
45 }catch(konforka::exception& ke) { 46 }catch(konforka::exception& ke) {
46 depth--; 47 depth--;
47 ke.see(CODEPOINT); 48 ke.see(CODEPOINT);
48 throw; 49 throw;
49 }catch(...) { 50 }catch(...) {
50 depth--; 51 depth--;
51 throw; 52 throw;
52 } 53 }
53 } 54 }