about summary refs log tree commit diff
path: root/src/libutil/util.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-03-22T21·42+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-03-22T21·42+0000
commit7823db2137d8079bcf512aba4ce46f1373693517 (patch)
tree52a693b3502fd3382337530e45ff9d36b24c41bf /src/libutil/util.cc
parent777e13b94b2da466c16a5836b52413aa9d246cd5 (diff)
* Some more nesting.
Diffstat (limited to 'src/libutil/util.cc')
-rw-r--r--src/libutil/util.cc36
1 files changed, 26 insertions, 10 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 768acf811c09..bf14e8aadfaa 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -144,11 +144,11 @@ Strings readDirectory(const Path & path)
 }
 
 
-void deletePath(const Path & path)
+static void _deletePath(const Path & path)
 {
     checkInterrupt();
 
-    printMsg(lvlVomit, format("deleting path `%1%'") % path);
+    printMsg(lvlVomit, format("%1%") % path);
 
     struct stat st;
     if (lstat(path.c_str(), &st))
@@ -164,7 +164,7 @@ void deletePath(const Path & path)
 	}
 
 	for (Strings::iterator i = names.begin(); i != names.end(); ++i)
-            deletePath(path + "/" + *i);
+            _deletePath(path + "/" + *i);
     }
 
     if (remove(path.c_str()) == -1)
@@ -172,6 +172,14 @@ void deletePath(const Path & path)
 }
 
 
+void deletePath(const Path & path)
+{
+    startNest(nest, lvlDebug,
+        format("recursively deleting path `%1%'") % path);
+    _deletePath(path);
+}
+
+
 void makePathReadOnly(const Path & path)
 {
     checkInterrupt();
@@ -238,11 +246,7 @@ Nest::Nest()
 
 Nest::~Nest()
 {
-    if (nest) {
-        nestingLevel--;
-        if (logType == ltEscapes)
-            cerr << "\033[q";
-    }
+    close();
 }
 
 
@@ -259,14 +263,26 @@ void Nest::open(Verbosity level, const format & f)
 {
     if (level <= verbosity) {
         if (logType == ltEscapes)
-            cerr << "\033[" << escVerbosity(level) << "p";
-        printMsg_(level, f);
+            cerr << "\033[" << escVerbosity(level) << "p"
+                 << f.str() << "\n";
+        else
+            printMsg_(level, f);
         nest = true;
         nestingLevel++;
     }
 }
 
 
+void Nest::close()
+{
+    if (nest) {
+        nestingLevel--;
+        if (logType == ltEscapes)
+            cerr << "\033[q";
+    }
+}
+
+
 void printMsg_(Verbosity level, const format & f)
 {
     checkInterrupt();