Index: lemon/arg_parser.h
===================================================================
--- lemon/arg_parser.h	(revision 204)
+++ lemon/arg_parser.h	(revision 209)
@@ -1,5 +1,5 @@
-/* -*- C++ -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library
+/* -*- mode: C++; indent-tabs-mode: nil; -*-
+ *
+ * This file is a part of LEMON, a generic C++ optimization library.
  *
  * Copyright (C) 2003-2008
@@ -42,25 +42,25 @@
   ///For a complete example see the \ref arg_parser_demo.cc demo file.
   class ArgParser {
-    
+
     static void _showHelp(void *p);
   protected:
-    
+
     int _argc;
     const char **_argv;
-    
+
     enum OptType { UNKNOWN=0, BOOL=1, STRING=2, DOUBLE=3, INTEGER=4, FUNC=5 };
-    
+
     class ParData {
     public:
       union {
-	bool *bool_p;
-	int *int_p;
-	double *double_p;
-	std::string *string_p;
-	struct {
-	  void (*p)(void *);
-	  void *data;
-	} func_p;
-	  
+        bool *bool_p;
+        int *int_p;
+        double *double_p;
+        std::string *string_p;
+        struct {
+          void (*p)(void *);
+          void *data;
+        } func_p;
+
       };
       std::string help;
@@ -73,5 +73,5 @@
       bool self_delete;
       ParData() : mandatory(false), type(UNKNOWN), set(false), ingroup(false),
-		  has_syn(false), syn(false), self_delete(false) {}
+                  has_syn(false), syn(false), self_delete(false) {}
     };
 
@@ -79,5 +79,5 @@
     Opts _opts;
 
-    class GroupData 
+    class GroupData
     {
     public:
@@ -88,5 +88,5 @@
       GroupData() :only_one(false), mandatory(false) {}
     };
-      
+
     typedef std::map<std::string,GroupData> Groups;
     Groups _groups;
@@ -99,10 +99,10 @@
 
     };
-      
+
     std::vector<OtherArg> _others_help;
     std::vector<std::string> _file_args;
     std::string _command_name;
 
-    
+
   private:
     //Bind a function to an option.
@@ -114,7 +114,7 @@
     //\param data Data to be passed to \c func
     ArgParser &funcOption(const std::string &name,
-		    const std::string &help,
-		    void (*func)(void *),void *data);
-    
+                    const std::string &help,
+                    void (*func)(void *),void *data);
+
   public:
 
@@ -137,6 +137,6 @@
     ///\param obl Indicate if the option is mandatory.
     ArgParser &intOption(const std::string &name,
-		    const std::string &help,
-		    int value=0, bool obl=false);
+                    const std::string &help,
+                    int value=0, bool obl=false);
 
     ///Add a new floating point type option
@@ -148,6 +148,6 @@
     ///\param obl Indicate if the option is mandatory.
     ArgParser &doubleOption(const std::string &name,
-		      const std::string &help,
-		      double value=0, bool obl=false);
+                      const std::string &help,
+                      double value=0, bool obl=false);
 
     ///Add a new bool type option
@@ -160,6 +160,6 @@
     ///\note A mandatory bool obtion is of very little use.
     ArgParser &boolOption(const std::string &name,
-		      const std::string &help,
-		      bool value=false, bool obl=false);
+                      const std::string &help,
+                      bool value=false, bool obl=false);
 
     ///Add a new string type option
@@ -171,6 +171,6 @@
     ///\param obl Indicate if the option is mandatory.
     ArgParser &stringOption(const std::string &name,
-		      const std::string &help,
-		      std::string value="", bool obl=false);
+                      const std::string &help,
+                      std::string value="", bool obl=false);
 
     ///Give help string for non-parsed arguments.
@@ -180,6 +180,6 @@
     ///\c help gives a more detailed description.
     ArgParser &other(const std::string &name,
-		     const std::string &help="");
-    
+                     const std::string &help="");
+
     ///@}
 
@@ -198,6 +198,6 @@
     ///\retval ref The value of the argument will be written to this variable.
     ArgParser &refOption(const std::string &name,
-		    const std::string &help,
-		    int &ref, bool obl=false);
+                    const std::string &help,
+                    int &ref, bool obl=false);
 
     ///Add a new floating type option with a storage reference
@@ -209,6 +209,6 @@
     ///\retval ref The value of the argument will be written to this variable.
     ArgParser &refOption(const std::string &name,
-		      const std::string &help,
-		      double &ref, bool obl=false);
+                      const std::string &help,
+                      double &ref, bool obl=false);
 
     ///Add a new bool type option with a storage reference
@@ -221,6 +221,6 @@
     ///\note A mandatory bool obtion is of very little use.
     ArgParser &refOption(const std::string &name,
-		      const std::string &help,
-		      bool &ref, bool obl=false);
+                      const std::string &help,
+                      bool &ref, bool obl=false);
 
     ///Add a new string type option with a storage reference
@@ -232,12 +232,12 @@
     ///\retval ref The value of the argument will be written to this variable.
     ArgParser &refOption(const std::string &name,
-		      const std::string &help,
-		      std::string &ref, bool obl=false);
-    
+                      const std::string &help,
+                      std::string &ref, bool obl=false);
+
     ///@}
 
     ///\name Option Groups and Synonyms
     ///
-    
+
     ///@{
 
@@ -249,5 +249,5 @@
     ///\param opt The option name.
     ArgParser &optionGroup(const std::string &group,
-			   const std::string &opt);
+                           const std::string &opt);
 
     ///Make the members of a group exclusive
@@ -256,5 +256,5 @@
     ///given at the same time.
     ArgParser &onlyOneGroup(const std::string &group);
-  
+
     ///Make a group mandatory
 
@@ -262,5 +262,5 @@
     ///must be given.
     ArgParser &mandatoryGroup(const std::string &group);
-    
+
     ///Create synonym to an option
 
@@ -268,6 +268,6 @@
     ///option \c opt.
     ArgParser &synonym(const std::string &syn,
-			   const std::string &opt);
-    
+                           const std::string &opt);
+
     ///@}
 
@@ -283,19 +283,19 @@
     void requiresValue(std::string arg, OptType t);
     void checkMandatories();
-    
+
     ///Start the parsing process
     ArgParser &parse();
 
     /// Synonym for parse()
-    ArgParser &run() 
+    ArgParser &run()
     {
       return parse();
     }
-    
+
     ///Give back the command name (the 0th argument)
     const std::string &commandName() { return _command_name; }
 
     ///Check if an opion has been given to the command.
-    bool given(std::string op) 
+    bool given(std::string op)
     {
       Opts::iterator i = _opts.find(op);
@@ -305,10 +305,10 @@
 
     ///Magic type for operator[]
-    
+
     ///This is the type of the return value of ArgParser::operator[]().
     ///It automatically converts to \c int, \c double, \c bool or
     ///\c std::string if the type of the option matches, otherwise it
     ///throws an exception (i.e. it performs runtime type checking).
-    class RefType 
+    class RefType
     {
       ArgParser &_parser;
@@ -318,44 +318,44 @@
       RefType(ArgParser &p,const std::string &n) :_parser(p),_name(n) {}
       ///\e
-      operator bool() 
+      operator bool()
       {
-	Opts::iterator i = _parser._opts.find(_name);
-	LEMON_ASSERT(i!=_parser._opts.end(),
-		     std::string()+"Unkown option: '"+_name+"'");
-	LEMON_ASSERT(i->second.type==ArgParser::BOOL,
-		     std::string()+"'"+_name+"' is a bool option");
-	return *(i->second.bool_p);
+        Opts::iterator i = _parser._opts.find(_name);
+        LEMON_ASSERT(i!=_parser._opts.end(),
+                     std::string()+"Unkown option: '"+_name+"'");
+        LEMON_ASSERT(i->second.type==ArgParser::BOOL,
+                     std::string()+"'"+_name+"' is a bool option");
+        return *(i->second.bool_p);
       }
       ///\e
       operator std::string()
       {
-	Opts::iterator i = _parser._opts.find(_name);
-	LEMON_ASSERT(i!=_parser._opts.end(),
-		     std::string()+"Unkown option: '"+_name+"'");
-	LEMON_ASSERT(i->second.type==ArgParser::STRING,
-		     std::string()+"'"+_name+"' is a string option");
-	return *(i->second.string_p);
+        Opts::iterator i = _parser._opts.find(_name);
+        LEMON_ASSERT(i!=_parser._opts.end(),
+                     std::string()+"Unkown option: '"+_name+"'");
+        LEMON_ASSERT(i->second.type==ArgParser::STRING,
+                     std::string()+"'"+_name+"' is a string option");
+        return *(i->second.string_p);
       }
       ///\e
-      operator double() 
+      operator double()
       {
-	Opts::iterator i = _parser._opts.find(_name);
-	LEMON_ASSERT(i!=_parser._opts.end(),
-		     std::string()+"Unkown option: '"+_name+"'");
-	LEMON_ASSERT(i->second.type==ArgParser::DOUBLE ||
-		     i->second.type==ArgParser::INTEGER,
-		     std::string()+"'"+_name+"' is a floating point option");
-	return i->second.type==ArgParser::DOUBLE ?
-	  *(i->second.double_p) : *(i->second.int_p);
+        Opts::iterator i = _parser._opts.find(_name);
+        LEMON_ASSERT(i!=_parser._opts.end(),
+                     std::string()+"Unkown option: '"+_name+"'");
+        LEMON_ASSERT(i->second.type==ArgParser::DOUBLE ||
+                     i->second.type==ArgParser::INTEGER,
+                     std::string()+"'"+_name+"' is a floating point option");
+        return i->second.type==ArgParser::DOUBLE ?
+          *(i->second.double_p) : *(i->second.int_p);
       }
       ///\e
-      operator int() 
+      operator int()
       {
-	Opts::iterator i = _parser._opts.find(_name);
-	LEMON_ASSERT(i!=_parser._opts.end(),
-		     std::string()+"Unkown option: '"+_name+"'");
-	LEMON_ASSERT(i->second.type==ArgParser::INTEGER,
-		     std::string()+"'"+_name+"' is an integer option");
-	return *(i->second.int_p);
+        Opts::iterator i = _parser._opts.find(_name);
+        LEMON_ASSERT(i!=_parser._opts.end(),
+                     std::string()+"Unkown option: '"+_name+"'");
+        LEMON_ASSERT(i->second.type==ArgParser::INTEGER,
+                     std::string()+"'"+_name+"' is an integer option");
+        return *(i->second.int_p);
       }
 
@@ -363,5 +363,5 @@
 
     ///Give back the value of an option
-    
+
     ///Give back the value of an option.
     ///\sa RefType
@@ -369,5 +369,5 @@
     {
       return RefType(*this, n);
-    }    
+    }
 
     ///Give back the non-option type arguments.
@@ -376,5 +376,5 @@
     ///not starting with a '-' character.
     std::vector<std::string> &files() { return _file_args; }
- 
+
   };
 }
