ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/io/Globals.cpp
(Generate patch)

Comparing trunk/OOPSE-2.0/src/io/Globals.cpp (file contents):
Revision 2372 by tim, Mon Oct 17 00:51:16 2005 UTC vs.
Revision 2373 by tim, Mon Oct 17 03:06:29 2005 UTC

# Line 65 | Line 65
65    parameters_.insert(std::make_pair(std::string(KEYWORD),  &NAME));
66  
67   #define CheckParameter(NAME, CONSTRAINT)                              \
68 <  if (!NAME.empty()) { if (!(CONSTRAINT)(NAME.getData())) std::cout <<"Error in parsing " << NAME.getKeyword() << " : "<< (CONSTRAINT).getConstraintDescription() << std::endl; }                
68 >  if (!NAME.empty()) { if (!(CONSTRAINT)(NAME.getData())) { sprintf(painCave.errMsg,"Error in checking %s : should be %s\n",NAME.getKeyword().c_str(),(CONSTRAINT).getConstraintDescription().c_str()); painCave.isFatal = 1; painCave.severity = OOPSE_ERROR; simError();} }                
69  
70
70   Globals::Globals(){
71  
72    DefineParameter(ForceField, "forceField")
# Line 142 | Line 141 | int Globals::globalAssign( event* the_event ){
141   }
142  
143   int Globals::globalAssign( event* the_event ){
144 <  
144 >  char errorMessage[65535];
145    int key;
146    interface_assign_type the_type =  the_event->evt.asmt.asmt_type;
147    char* lhs = the_event->evt.asmt.lhs;
# Line 150 | Line 149 | int Globals::globalAssign( event* the_event ){
149  
150    bool result = false;
151  
152 +  /**@todo fix memory leak */  
153    ParamMap::iterator i =parameters_.find(keyword);
154    if (i != parameters_.end()) {
155      if( the_type == STRING ){
156         result = i->second->setData(std::string(the_event->evt.asmt.rhs.sval));
157         if (!result ) {
158 <            sprintf(the_event->err_msg, "Error in parsing %s: expect %s, but get %s.\n", keyword.c_str(), i->second->getParamType(), the_event->evt.asmt.rhs.sval);
158 >            sprintf(errorMessage, "Error in parsing %s: expect %s, but get a string \"%s\".\n", keyword.c_str(), i->second->getParamType().c_str(), the_event->evt.asmt.rhs.sval);
159 >            the_event->err_msg = strdup(errorMessage);
160         }
161      } else if( the_type == DOUBLE ){
162        result = i->second->setData(the_event->evt.asmt.rhs.dval);
163         if (!result )
164 <         sprintf(the_event->err_msg, "Error in parsing %s: expect %s, but get %f.\n", keyword.c_str(), i->second->getParamType(), the_event->evt.asmt.rhs.dval );
164 >         sprintf(errorMessage, "Error in parsing %s: expect %s, but get a double %f.\n", keyword.c_str(), i->second->getParamType().c_str(), the_event->evt.asmt.rhs.dval );
165 >       the_event->err_msg = strdup(errorMessage);
166      }      
167      else if (the_type == INT ){
168        result = i->second->setData(the_event->evt.asmt.rhs.ival);
169         if (!result )
170 <         sprintf(the_event->err_msg,  "Error in parsing %s: expect %s, but get %d.\n", keyword.c_str(), i->second->getParamType(), the_event->evt.asmt.rhs.ival );
170 >         sprintf(errorMessage,  "Error in parsing %s: expect %s, but get an int %d.\n", keyword.c_str(), i->second->getParamType().c_str(), the_event->evt.asmt.rhs.ival );
171 >       the_event->err_msg = strdup(errorMessage);
172        
173      } else {
174 <        sprintf(the_event->err_msg,  "%s is an unrecognized keyword\n", keyword.c_str() );
174 >        sprintf(errorMessage,  "Internal error of parser\n");
175 >        the_event->err_msg = strdup(errorMessage);
176      }
177 +  } else {
178 +    sprintf(errorMessage,  "%s is an unrecognized keyword\n", keyword.c_str() );
179 +    the_event->err_msg = strdup(errorMessage);
180    }
181  
182    if (keyword == "nComponents" && getNComponents() > 0) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines