Przeglądaj źródła

* lp:~mvo/apt/config-clear:
- support Configuration.Clear() for a clear of the entire
configuration

Michael Vogt 13 lat temu
rodzic
commit
d4273c55e3

+ 12 - 0
apt-pkg/contrib/configuration.cc

@@ -420,6 +420,18 @@ void Configuration::Clear(string const &Name, string const &Value)
       }
    }
      
+}
+									/*}}}*/
+// Configuration::Clear - Clear everything				/*{{{*/
+// ---------------------------------------------------------------------
+void Configuration::Clear()
+{
+   const Configuration::Item *Top = Tree(0);
+   while( Top != 0 )
+   {
+      Clear(Top->FullTag());
+      Top = Top->Next;
+   }
 }
 									/*}}}*/
 // Configuration::Clear - Clear an entire tree				/*{{{*/

+ 1 - 0
apt-pkg/contrib/configuration.h

@@ -94,6 +94,7 @@ class Configuration
 
    // clear a whole tree
    void Clear(const std::string &Name);
+   void Clear();
 
    // remove a certain value from a list (e.g. the list of "APT::Keep-Fds")
    void Clear(std::string const &List, std::string const &Value);

+ 3 - 0
debian/changelog

@@ -11,6 +11,9 @@ apt (0.9.8~exp1) UNRELEASED; urgency=low
   * stop exporting the accidently exported parsenetrc() symbol
   * lp:~mvo/apt/add-glob-function:
     -  add Glob() to fileutl.{cc,h}
+  * lp:~mvo/apt/config-clear:
+    - support Configuration.Clear() for a clear of the entire 
+      configuration
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Mon, 09 Jul 2012 17:36:40 +0200
 

+ 4 - 0
test/libapt/configuration_test.cc

@@ -98,6 +98,10 @@ int main(int argc,const char *argv[]) {
 	equals(Cnf.FindDir("Dir::State"), "/rootdir/dev/null");
 	equals(Cnf.FindDir("Dir::State::lists"), "/rootdir/dev/null");
 
+        Cnf.Set("Moo::Bar", "1");
+        Cnf.Clear();
+        equals(Cnf.Find("Moo::Bar"), "");
+
 	//FIXME: Test for configuration file parsing;
 	// currently only integration/ tests test them implicitly