Switch to side-by-side view

--- a/src/utils/conftree.h
+++ b/src/utils/conftree.h
@@ -99,7 +99,7 @@
     virtual int set(const string &nm, const string &val, 
 		    const string &sk = string()) = 0;
     virtual bool ok() = 0;
-    virtual list<string> getNames(const string &sk) = 0;
+    virtual list<string> getNames(const string &sk, const char* = 0) = 0;
     virtual int erase(const string &, const string &) = 0;
     virtual int eraseKey(const string &) = 0;
     virtual void listall()  {};
@@ -193,10 +193,8 @@
     /** List all values to stdout */
     virtual void listall();
 
-    /**
-     * Return all names in given submap
-     */
-    virtual list<string> getNames(const string &sk);
+    /** Return all names in given submap. */
+    virtual list<string> getNames(const string &sk, const char *pattern = 0);
 
     /**
      * Return all subkeys 
@@ -272,6 +270,9 @@
  * NOTE: contrary to common behaviour, the global or root space is NOT
  * designated by '/' but by '' (empty subkey). A '/' subkey will not
  * be searched at all.
+ *
+ * Note: getNames() : uses ConfSimple method, this does *not* inherit 
+ *     names from englobing submaps.
  */
 class ConfTree : public ConfSimple {
 
@@ -405,13 +406,13 @@
 	return m_confs.front()->holdWrites(on);
     }
 
-    virtual list<string> getNames(const string &sk) 
+    virtual list<string> getNames(const string &sk, const char *pattern = 0)
     {
 	list<string> nms;
 	typename list<T*>::iterator it;
 	for (it = m_confs.begin();it != m_confs.end(); it++) {
 	    list<string> lst;
-	    lst = (*it)->getNames(sk);
+	    lst = (*it)->getNames(sk, pattern);
 	    nms.insert(nms.end(), lst.begin(), lst.end());
 	}
 	nms.sort();