libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] gvars3 main.cc gvars3/gv3_implementation.hh gva...


From: Georg Klein
Subject: [libcvd-members] gvars3 main.cc gvars3/gv3_implementation.hh gva...
Date: Sun, 11 Feb 2007 00:09:15 +0000

CVSROOT:        /sources/libcvd
Module name:    gvars3
Changes by:     Georg Klein <georgklein>        07/02/11 00:09:14

Modified files:
        .              : main.cc 
        gvars3         : gv3_implementation.hh gvars3.h 
        src            : GUI.cc gvars2.cc gvars3.cc 

Log message:
        Improvements to the "gvarlist" internal command:
          gvarlist [-a] [pattern]
        
        If pattern is given, output is matched to include only vars matching 
        pattern, which may include wildcards.
        
        If -a is supplied, all registered and unregistered vars (subject to 
        the above) are printed; otherwise, unregistered and `hidden' gvars are
        omitted. A gvar is made hidden during register or get; the interface to 
        this is now no longer
        
        Register(gvar, name, default_val, bool silent_default)
        but
        Register(gvar, name, default_val, int flags).
        
        Two bit-flags are defined: GVars3::HIDDEN and GVars3::SILENT. 
        Since SILENT takes value 1, existing code with "true" should
        still work.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gvars3/main.cc?cvsroot=libcvd&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/gvars3/gvars3/gv3_implementation.hh?cvsroot=libcvd&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gvars3/gvars3/gvars3.h?cvsroot=libcvd&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gvars3/src/GUI.cc?cvsroot=libcvd&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gvars3/src/gvars2.cc?cvsroot=libcvd&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gvars3/src/gvars3.cc?cvsroot=libcvd&r1=1.9&r2=1.10

Patches:
Index: main.cc
===================================================================
RCS file: /sources/libcvd/gvars3/main.cc,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- main.cc     16 May 2006 11:10:11 -0000      1.13
+++ main.cc     11 Feb 2007 00:09:14 -0000      1.14
@@ -31,7 +31,6 @@
 #include <gvars3/GUI.h>
 #include <gvars3/instances.h>
 using namespace GVars3;
-
 #endif
 
 #include <gvars3/GUI_readline.h>
@@ -78,6 +77,8 @@
   GV2.Register(v,"TestVecM1", "[   10 10 10]" );
   GVars3::gvar3<Vector<3> > v3;
   GV2.Register(v3,"TestVec3", "[   10 10 10]" );
+  GV3::get<string>("SilentString", "pssst!" , SILENT);
+  GV3::get("hidden__________hidden", 1, SILENT | HIDDEN);  
 
   gvar2_double a_double;
   gvar2_int an_int;

Index: gvars3/gv3_implementation.hh
===================================================================
RCS file: /sources/libcvd/gvars3/gvars3/gv3_implementation.hh,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- gvars3/gv3_implementation.hh        24 May 2006 14:04:43 -0000      1.8
+++ gvars3/gv3_implementation.hh        11 Feb 2007 00:09:14 -0000      1.9
@@ -16,7 +16,7 @@
 // TODO: Make the specialisation for matrices as well. 
 
 
-template<class T> T* GV3::register_new_gvar(const std::string& name, const T& 
default_val, bool silent)
+template<class T> T* GV3::register_new_gvar(const std::string& name, const T& 
default_val, int flags)
 {
   T* d ;
   std::map<std::string, std::string>::iterator i;
@@ -24,12 +24,12 @@
   i = unmatched_tags.find(name);
   
   d = TypedMap<T>::instance().create(name);
-  typeof_tags[name] = &TypedMap<T>::instance();
+  registered_type_and_trait[name] = std::pair<BaseMap*, 
int>(&TypedMap<T>::instance(), flags);
   
   //Look to see if ``name'' has not already been set   
   if(i == unmatched_tags.end())
     {
-      if(!silent)
+      if(!(flags & SILENT))
        std::cerr << "? GV3::Register: " << type_name<T>() << " " << name << " 
undefined. Defaults to " 
                  << serialize::to_string(default_val) << std::endl;
       
@@ -47,15 +47,15 @@
 }
 
 
-template<class T> T* GV3::get_by_val(const std::string& name, const T& 
default_val, bool silent)
+template<class T> T* GV3::get_by_val(const std::string& name, const T& 
default_val, int flags)
 {
   T* d = attempt_get<T>(name);
   if(!d)
-    d = register_new_gvar(name, default_val, silent);
+    d = register_new_gvar(name, default_val, flags);
   return d;
 }
 
-template<class T> T* GV3::get_by_str(const std::string& name, const 
std::string& default_val, bool silent)
+template<class T> T* GV3::get_by_str(const std::string& name, const 
std::string& default_val, int flags)
 {
   T* d = attempt_get<T>(name);
   if(d!=NULL) return d;
@@ -64,39 +64,39 @@
   int e = serialize::from_string(default_val, def);
   parse_warning(e, type_name<T>(), name, default_val);
   
-  return register_new_gvar(name, def, silent);
+  return register_new_gvar(name, def, flags);
 }
 
-template<>inline std::string& GV3::get<std::string>(const std::string& name, 
std::string default_val, bool silent)
+template<>inline std::string& GV3::get<std::string>(const std::string& name, 
std::string default_val, int flags)
 {
-       return *get_by_val(name, default_val, silent);
+       return *get_by_val(name, default_val, flags);
 }
 
-template<class T> T& GV3::get(const std::string& name, std::string 
default_val, bool silent)
+template<class T> T& GV3::get(const std::string& name, std::string 
default_val, int flags)
 {
-       return *get_by_str<T>(name, default_val, silent);
+       return *get_by_str<T>(name, default_val, flags);
 }
 
-template<class T> T& GV3::get(const std::string& name, const T& default_val, 
bool silent)
+template<class T> T& GV3::get(const std::string& name, const T& default_val, 
int flags)
 {
-       return *get_by_val(name, default_val, silent);
+       return *get_by_val(name, default_val, flags);
 }
 
 
 
-template<class T> void GV3::Register(gvar2<T>& gv, const std::string& name, 
const T& default_val, bool silent)
+template<class T> void GV3::Register(gvar2<T>& gv, const std::string& name, 
const T& default_val, int flags)
 {
-       gv.data = get_by_val(name, default_val, silent);
+       gv.data = get_by_val(name, default_val, flags);
 }
 
-template<class T> void GV3::Register(gvar2<T>& gv, const std::string& name, 
const std::string& default_val, bool silent)
+template<class T> void GV3::Register(gvar2<T>& gv, const std::string& name, 
const std::string& default_val, int flags)
 {
-       gv.data = get_by_str<T>(name, default_val, silent);
+       gv.data = get_by_str<T>(name, default_val, flags);
 }
 
-inline void GV3::Register(gvar2<std::string>& gv, const std::string& name, 
const std::string& default_val, bool silent)
+inline void GV3::Register(gvar2<std::string>& gv, const std::string& name, 
const std::string& default_val, int flags)
 {
-       gv.data = get_by_val(name, default_val, silent);
+       gv.data = get_by_val(name, default_val, flags);
 }
 
 

Index: gvars3/gvars3.h
===================================================================
RCS file: /sources/libcvd/gvars3/gvars3/gvars3.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- gvars3/gvars3.h     18 Jan 2007 16:46:26 -0000      1.16
+++ gvars3/gvars3.h     11 Feb 2007 00:09:14 -0000      1.17
@@ -81,6 +81,12 @@
   T* data;
 };
 
+// Bit-masks for gvar registration:
+// SILENT makes gvars not complain if it has to use the default;
+// HIDDEN makes vars not appear in gvarlist unless used with -a
+
+enum { SILENT = 1<<0, HIDDEN = 1<<1};
+       
 
 typedef gvar2<double> gvar2_double;
 typedef gvar2<int> gvar2_int;
@@ -92,8 +98,8 @@
 {
        friend class GV3;
        public:
-       inline gvar3(const std::string& name, const T& default_val = T(), bool 
silent=false);
-       inline gvar3(const std::string& name, const std::string& default_val, 
bool silent);
+       inline gvar3(const std::string& name, const T& default_val = T(), int 
flags=0);
+       inline gvar3(const std::string& name, const std::string& default_val, 
int flags);
        inline gvar3(){};
 };
 
@@ -101,7 +107,7 @@
 {
        friend class GV3;
        public:
-       inline gvar3(const std::string& name, const std::string& default_val = 
"", bool silent=false);
+       inline gvar3(const std::string& name, const std::string& default_val = 
"", int flags=0);
        inline gvar3(){};
 };
 
@@ -185,10 +191,10 @@
                        if(!d)   //Data not present in map of the correct type
                        {
                                //Does it exist with a different type?
-                               if(typeof_tags.count(name))
+                               if(registered_type_and_trait.count(name))
                                {               //Yes: programmer error.
                                        std::cerr << "GV3:Error: type mismatch 
while getting " << type_name<T>() << " " << name << ": already registered "
-                                                       "as type " << 
typeof_tags[name]->name() << ". Fix your code.\n";
+                                                       "as type " << 
registered_type_and_trait[name].first->name() << ". Fix your code.\n";
 
                                        throw type_mismatch();
                                }
@@ -202,47 +208,47 @@
                static void add_typemap(BaseMap* m);
 
                static std::map<std::string, std::string>               
unmatched_tags;
-               static std::map<std::string, BaseMap*>                  
typeof_tags;
+               static std::map<std::string, std::pair<BaseMap*, int> > 
registered_type_and_trait;
                static std::list<BaseMap*>                                      
        maps;
 
                
-               template<class T> static T* get_by_val(const std::string& name, 
const T& default_val, bool silent);
-               template<class T> static T* get_by_str(const std::string& name, 
const std::string& default_val, bool silent);
-               template<class T> static T* register_new_gvar(const std::string 
&name, const T& default_val, bool silent);
+               template<class T> static T* get_by_val(const std::string& name, 
const T& default_val, int flags);
+               template<class T> static T* get_by_str(const std::string& name, 
const std::string& default_val, int flags);
+               template<class T> static T* register_new_gvar(const std::string 
&name, const T& default_val, int flags);
 
        public:
                //Get references by name
-               template<class T> static T& get(const std::string& name, const 
T& default_val=T(), bool silent=false);
-               template<class T> static T& get(const std::string& name, 
std::string default_val, bool silent=false);
+               template<class T> static T& get(const std::string& name, const 
T& default_val=T(), int flags=0);
+               template<class T> static T& get(const std::string& name, 
std::string default_val, int flags=0);
                
                //Register GVars
-               template<class T> static void Register(gvar2<T>& gv, const 
std::string& name, const T& default_val=T(), bool silent=false);
-               template<class T> static void Register(gvar2<T>& gv, const 
std::string& name, const std::string& default_val, bool silent=false);
-               static inline void Register(gvar2<std::string>& gv, const 
std::string& name, const std::string& default_val="", bool silent=false);
+               template<class T> static void Register(gvar2<T>& gv, const 
std::string& name, const T& default_val=T(), int flags=0);
+               template<class T> static void Register(gvar2<T>& gv, const 
std::string& name, const std::string& default_val, int flags=0);
+               static inline void Register(gvar2<std::string>& gv, const 
std::string& name, const std::string& default_val="", int flags=0);
 
                //Get and set by string only
                static std::string get_var(std::string name);
                static bool set_var(std::string name, std::string val, bool 
silent=false);
 
                //Some helper functions
-               static void print_var_list(std::ostream& o);
+               static void print_var_list(std::ostream& o, std::string 
pattern="", bool show_all=true);
                static std::vector<std::string> tag_list();
 };
 
 
 
-template<class T> gvar3<T>::gvar3(const std::string& name, const T& 
default_val, bool silent)
+template<class T> gvar3<T>::gvar3(const std::string& name, const T& 
default_val, int flags)
 {
-       GV3::Register(*this, name, default_val, silent);
+       GV3::Register(*this, name, default_val, flags);
 }
 
-template<class T> gvar3<T>::gvar3(const std::string& name, const std::string& 
default_val, bool silent)
+template<class T> gvar3<T>::gvar3(const std::string& name, const std::string& 
default_val, int flags)
 {
-       GV3::Register(*this, name, default_val, silent);
+       GV3::Register(*this, name, default_val, flags);
 }
-gvar3<std::string>::gvar3(const std::string& name, const std::string& 
default_val, bool silent)
+gvar3<std::string>::gvar3(const std::string& name, const std::string& 
default_val, int flags)
 {
-       GV3::Register(*this, name, default_val, silent);
+       GV3::Register(*this, name, default_val, flags);
 }
 
 
@@ -252,51 +258,51 @@
 class GVars2
 {
        public:
-               template<class T> void Register(gvar2<T>& gv, const 
std::string& name, const T& default_val=T(), bool silent=false)
+               template<class T> void Register(gvar2<T>& gv, const 
std::string& name, const T& default_val=T(), int flags=false)
                { 
-                       GV3::Register(gv, name, default_val, silent);
+                       GV3::Register(gv, name, default_val, flags);
                }
 
-               template<class T> void Register(gvar2<T>& gv, const 
std::string& name, const std::string& default_val, bool silent=false)
+               template<class T> void Register(gvar2<T>& gv, const 
std::string& name, const std::string& default_val, int flags=false)
                {
-                       GV3::Register(gv, name, default_val, silent);
+                       GV3::Register(gv, name, default_val, flags);
                }
 
-               inline void Register(gvar2<std::string>& gv, const std::string& 
name, const std::string& default_val="", bool silent=false)
+               inline void Register(gvar2<std::string>& gv, const std::string& 
name, const std::string& default_val="", int flags=false)
                {
-                       GV3::Register(gv, name, default_val, silent);
+                       GV3::Register(gv, name, default_val, flags);
                }
 
-               template<class T> T& Get(const std::string& name, const T& 
default_val=T(),  bool silent=false)
+               template<class T> T& Get(const std::string& name, const T& 
default_val=T(),  int flags=false)
                {
-                       return GV3::get<T>(name, default_val, silent);
+                       return GV3::get<T>(name, default_val, flags);
                }
 
-               template<class T> T& Get(const std::string& name, const 
std::string& default_val="", bool silent=false)
+               template<class T> T& Get(const std::string& name, const 
std::string& default_val="", int flags=false)
                {
-                       return GV3::get<T>(name, default_val, silent);
+                       return GV3::get<T>(name, default_val, flags);
                }
 
-               inline std::string& Get(const std::string& name, const 
std::string& default_val="", bool silent=false)
+               inline std::string& Get(const std::string& name, const 
std::string& default_val="", int flags=false)
                {
-                       return GV3::get<std::string>(name, default_val, silent);
+                       return GV3::get<std::string>(name, default_val, flags);
                }
 
                void SetVar(std::string sVar, std::string sValue, bool 
silent=false);
                void SetVar(std::string s);
 
 
-               int& GetInt(const std::string& name, int default_val=0, bool 
silent = false);
-               double& GetDouble(const std::string& name, double 
default_val=0.0, bool silent = false); 
-               std::string& GetString(const std::string& name, const 
std::string& default_val="", bool silent = false); 
-               TooN::Vector<>& GetVector(const std::string& name, const 
TooN::Vector<>& default_val=TooN::Vector<>(), bool silent = false); 
-               TooN::Matrix<>& GetMatrix(const std::string& name, const 
TooN::Matrix<>& default_val=TooN::Matrix<>(), bool silent = false); 
+               int& GetInt(const std::string& name, int default_val=0, int 
flags=0);
+               double& GetDouble(const std::string& name, double 
default_val=0.0, int flags=0); 
+               std::string& GetString(const std::string& name, const 
std::string& default_val="", int flags=0); 
+               TooN::Vector<>& GetVector(const std::string& name, const 
TooN::Vector<>& default_val=TooN::Vector<>(), int flags=0); 
+               TooN::Matrix<>& GetMatrix(const std::string& name, const 
TooN::Matrix<>& default_val=TooN::Matrix<>(), int flags=0); 
 
 
-               int& GetInt(const std::string& name, const std::string& 
default_val, bool silent = false);
-               double& GetDouble(const std::string& name, const std::string& 
default_val, bool silent = false); 
-               TooN::Vector<>& GetVector(const std::string& name, const 
std::string& default_val, bool silent = false); 
-               TooN::Matrix<>& GetMatrix(const std::string& name, const 
std::string& default_val, bool silent = false);  
+               int& GetInt(const std::string& name, const std::string& 
default_val, int flags=0);
+               double& GetDouble(const std::string& name, const std::string& 
default_val, int flags=0); 
+               TooN::Vector<>& GetVector(const std::string& name, const 
std::string& default_val, int flags=0); 
+               TooN::Matrix<>& GetMatrix(const std::string& name, const 
std::string& default_val, int flags=0);  
 
                std::string StringValue(const std::string &name, bool 
no_quotes=false);
                void PrintVarList(std::ostream& os=std::cout);

Index: src/GUI.cc
===================================================================
RCS file: /sources/libcvd/gvars3/src/GUI.cc,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/GUI.cc  21 Jun 2006 15:30:44 -0000      1.11
+++ src/GUI.cc  11 Feb 2007 00:09:14 -0000      1.12
@@ -554,7 +554,37 @@
 
 void builtin_gvarlist(void* ptr, string sCommand, string sParams)
 {
-       GV3::print_var_list(cout);
+  bool error = false;
+  bool print_all = false;
+  string pattern = "";
+  
+  vector<string> v = ChopAndUnquoteString(sParams);
+  if(v.size() > 0  && v[0][0] == '-')
+    if(v[0].size() == 2)
+      {
+       switch(v[0][1])
+         {
+         case 'a':
+           print_all = true;
+           break;
+         default:
+           error = true;
+         }
+       if(!error)
+         v.erase(v.begin());
+      }
+    else
+      error = true;
+  
+  if(v.size()==1)
+    pattern = v[0];
+  else if(v.size() > 1)
+    error = true;
+  
+  if(error)
+    cout << "? GUI internal " << sCommand << ": syntax is " << sCommand << " 
[-a] [pattern] " << endl;
+  else
+    GV3::print_var_list(cout, pattern, print_all);
 }
 
 

Index: src/gvars2.cc
===================================================================
RCS file: /sources/libcvd/gvars3/src/gvars2.cc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/gvars2.cc       22 Nov 2005 18:33:34 -0000      1.4
+++ src/gvars2.cc       11 Feb 2007 00:09:14 -0000      1.5
@@ -51,50 +51,50 @@
          SetVar(s.substr(0,n),s.substr(n+1,s.npos-n));
        }
 
-       int& GVars2::GetInt(const string& name, int default_val, bool silent)
+       int& GVars2::GetInt(const string& name, int default_val, int flags)
        {
-               return Get<int>(name, default_val, silent);
+               return Get<int>(name, default_val, flags);
        }
 
-       double& GVars2::GetDouble(const string& name, double default_val, bool 
silent)
+       double& GVars2::GetDouble(const string& name, double default_val, int 
flags)
        {
-               return Get<double>(name, default_val, silent);
+               return Get<double>(name, default_val, flags);
        }
-       string& GVars2::GetString(const string& name, const string& 
default_val, bool silent)
+       string& GVars2::GetString(const string& name, const string& 
default_val, int flags)
        {
-               return Get<string>(name, default_val, silent);
+               return Get<string>(name, default_val, flags);
        }
 
-       Vector<>& GVars2::GetVector(const string& name, const Vector<>& 
default_val, bool silent) 
+       Vector<>& GVars2::GetVector(const string& name, const Vector<>& 
default_val, int flags) 
        {
-               return Get<Vector<> >(name, default_val, silent);
+               return Get<Vector<> >(name, default_val, flags);
        }
 
-       Matrix<>& GVars2::GetMatrix(const string& name, const Matrix<>& 
default_val, bool silent)
+       Matrix<>& GVars2::GetMatrix(const string& name, const Matrix<>& 
default_val, int flags)
        {
-               return Get<Matrix<> >(name, default_val, silent);
+               return Get<Matrix<> >(name, default_val, flags);
        }
 
 
 
-       int& GVars2::GetInt(const string& name, const string& default_val, bool 
silent)
+       int& GVars2::GetInt(const string& name, const string& default_val, int 
flags)
        {
-               return Get<int>(name, default_val, silent);
+               return Get<int>(name, default_val, flags);
        }
 
-       double& GVars2::GetDouble(const string& name, const string& 
default_val, bool silent)
+       double& GVars2::GetDouble(const string& name, const string& 
default_val, int flags)
        {
-               return Get<double>(name, default_val, silent);
+               return Get<double>(name, default_val, flags);
        }
 
-       Vector<>& GVars2::GetVector(const string& name, const string& 
default_val, bool silent) 
+       Vector<>& GVars2::GetVector(const string& name, const string& 
default_val, int flags) 
        {
-               return Get<Vector<> >(name, default_val, silent);
+               return Get<Vector<> >(name, default_val, flags);
        }
 
-       Matrix<>& GVars2::GetMatrix(const string& name, const string& 
default_val, bool silent)
+       Matrix<>& GVars2::GetMatrix(const string& name, const string& 
default_val, int flags)
        {
-               return Get<Matrix<> >(name, default_val, silent);
+               return Get<Matrix<> >(name, default_val, flags);
        }
 
 

Index: src/gvars3.cc
===================================================================
RCS file: /sources/libcvd/gvars3/src/gvars3.cc,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/gvars3.cc       24 May 2006 14:04:44 -0000      1.9
+++ src/gvars3.cc       11 Feb 2007 00:09:14 -0000      1.10
@@ -22,6 +22,7 @@
 #include "gvars3/gvars3.h"
 #include <vector>
 #include <algorithm>
+#include <fnmatch.h>
 
 using namespace std;
 using namespace TooN;
@@ -30,7 +31,7 @@
 {
 
         std::map<std::string, std::string>             GV3::unmatched_tags;
-        std::map<std::string, BaseMap*>                GV3::typeof_tags;
+         std::map<std::string, std::pair<BaseMap*,int> >       
GV3::registered_type_and_trait;
         std::list<BaseMap*>                                    GV3::maps;
 
 
@@ -42,8 +43,8 @@
 
        string GV3::get_var(string name)
        {
-               if(typeof_tags.count(name))
-                       return typeof_tags[name]->get_as_string(name);
+               if(registered_type_and_trait.count(name))
+                       return 
registered_type_and_trait[name].first->get_as_string(name);
                else if(unmatched_tags.count(name))
                        return unmatched_tags[name];
                else
@@ -52,11 +53,11 @@
 
        bool GV3::set_var(string name, string val, bool silent)
        {
-               if(typeof_tags.count(name))
+               if(registered_type_and_trait.count(name))
                {
-                       int e = typeof_tags[name]->set_from_string(name, val);
+                       int e = 
registered_type_and_trait[name].first->set_from_string(name, val);
                        if(!silent)
-                               parse_warning(e, typeof_tags[name]->name(), 
name, val);
+                               parse_warning(e, 
registered_type_and_trait[name].first->name(), name, val);
                        return e==0;
                }
                else
@@ -66,25 +67,35 @@
                }
        }
 
-       void GV3::print_var_list(ostream& o)
+        void GV3::print_var_list(ostream& o, string pattern, bool show_all)
        {
+               bool no_pattern = (pattern=="");
+
+               if(show_all) 
                o << "//Registered GVars:" << endl;
 
-               for(map<string, BaseMap*>::iterator i=typeof_tags.begin(); i != 
typeof_tags.end(); i++)
-                       cout << i->first << "=" << get_var(i->first) << endl;
+               for(map<string, std::pair<BaseMap*,int> >::iterator 
i=registered_type_and_trait.begin(); i != registered_type_and_trait.end(); i++)
+                 if(show_all || !(i->second.second & HIDDEN))
+                   if(no_pattern || !fnmatch(pattern.c_str(), 
i->first.c_str(), FNM_CASEFOLD))
+                     o << i->first << "=" << get_var(i->first) << endl;
 
+               if(show_all)
+                 {
                o << "//Unmatched tags:" << endl;
 
                for(map<string,string>::iterator i=unmatched_tags.begin(); i != 
unmatched_tags.end(); i++)
+                     if(no_pattern || !fnmatch(pattern.c_str(), 
i->first.c_str(), FNM_CASEFOLD))
                        o << i->first << "=" << i->second << endl;
+                   
                o << "// End of GVar list." << endl;
+                 };
 
        }
 
        vector<string> GV3::tag_list()
        {
                vector<string> v;
-               for(map<string, BaseMap*>::iterator i=typeof_tags.begin(); i != 
typeof_tags.end(); i++)
+               for(map<string, std::pair<BaseMap*, int> >::iterator 
i=registered_type_and_trait.begin(); i != registered_type_and_trait.end(); i++)
                        v.push_back(i->first);
 
                return v;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]