00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "args.h"
00017
00018 namespace mx
00019 {
00020
00021
00022 mxArgs::mxArgs(int &argc, char **argv)
00023 {
00024
00025
00026 try
00027 {
00028
00029 int i;
00030 for(i = 1; i < argc; i++)
00031 {
00032 arglist.push_back(argv[i]);
00033 }
00034
00035 }
00036 catch (std::bad_alloc &bad)
00037 {
00038
00039 std::cerr << "error allocating memory: " << bad.what() << "\n";
00040
00041 }
00042 catch (...)
00043 {
00044 std::cerr << "error unknown exception\n";
00045 }
00046 }
00047
00048
00049 bool mxArgs::testForSwitchAndRemove(string what)
00050 {
00051
00052 std::vector<std::string>::iterator i;
00053 for(i = arglist.begin(); i!=arglist.end(); i++)
00054 {
00055 if(what == *i)
00056 {
00057 arglist.erase(i);
00058 return true;
00059 }
00060
00061 }
00062 return false;
00063 }
00064
00065 bool mxArgs::testForSwitchAndLeave(string what)
00066 {
00067
00068 std::vector<std::string>::iterator i;
00069 for(i = arglist.begin(); i!=arglist.end(); i++)
00070 {
00071 if(what == *i)
00072 return true;
00073 }
00074 return false;
00075 }
00076
00077 string mxArgs::testForItem(string what)
00078 {
00079 std::vector<std::string>::iterator i;
00080
00081 for(i = arglist.begin(); i!=arglist.end(); i++)
00082 {
00083 int position = 0;
00084 std::string temp = *i;
00085 position = i->find("=");
00086
00087 if(position != -1)
00088 temp = i->substr(0, position );
00089
00090
00091 if(what == temp)
00092 {
00093
00094 if(position == -1)
00095 {
00096
00097 if(i+1 != arglist.end())
00098 {
00099 std::vector<std::string>::iterator z = i+1;
00100 if(z->at(0) != '-')
00101 return *z;
00102 }
00103 }
00104 else
00105 {
00106
00107 std::string leftOf = i->substr(position+1, i->length()-position );
00108 return leftOf;
00109 }
00110
00111 }
00112
00113 }
00114
00115 return string("");
00116
00117 }
00118
00119
00120
00121 }
00122
00123
00124
00125