Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

cmdline.cpp

00001 #include "cmdline.H"
00002 using namespace std;
00003 
00004 
00005 //variables
00006 bool CommandLine::empty= true;
00007 
00008 Tuple<string> CommandLine::parameters;
00009 
00010 map< string, Tuple<string> > CommandLine::tags;
00011 
00012 string CommandLine::exec_file;
00013 
00014 //methods
00015 void CommandLine::init(int argc, char** argv){
00016   long i, k, n;
00017   Tuple<string> temp;
00018 
00019 
00020   exec_file= string(argv[0]);
00021 
00022   if(argc == 1){
00023     parameters.resize(0);
00024     tags.clear();
00025     return;
00026   }
00027 
00028   // else...
00029   empty= false;
00030   
00031   //takes care of the parameters
00032   n= 1;
00033   while(n < argc && argv[n][0] != '-')
00034     n++;
00035   parameters.resize(n-1);
00036   for(i=0; i< n-1; i++)
00037     parameters[i]= string(argv[i+1]);
00038   // takes care of the tags
00039   while(n < argc){
00040     temp.resize(0);
00041     i= n+1;
00042     while( i < argc && argv[i][0] != '-' )
00043       i++;
00044     temp.resize(i-n-1);
00045     for(k=0; k < i-n-1; k++)
00046       temp[k]= string(argv[n+k+1]);
00047     tags[string(argv[n])]= temp;
00048 
00049     n= i;
00050   }
00051   return;
00052 }
00053 
00054 
00055 bool CommandLine::has_tag(string thetag){
00056   
00057   return (tags.count(thetag) > 0);
00058 }
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 

Generated on Wed Jun 18 17:22:41 2008 for Pierre Guillot by  doxygen 1.3.9.1