Changeset 426 for cpp/frams


Ignore:
Timestamp:
08/27/15 00:06:26 (6 years ago)
Author:
Maciej Komosinski
Message:

Warn about duplicated field values

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/param/param.cpp

    r413 r426  
    401401        int fields_loaded = 0;
    402402        int unexpected_line = 0;
     403        vector<bool> seen;
     404        seen.resize(getPropCount());
    403405        if ((i=findId("beforeLoad"))>=0)
    404406                call(i,NULL,NULL);
     
    434436                if (p_len && ((i = findIdn(p0, p_len)) >= 0))
    435437                {
     438                        if (seen[i])
     439                                {
     440                                SString fileinfo;
     441                                const char* fname=f->VgetPath();
     442                                if (fname!=NULL)
     443                                        {
     444                                        fileinfo=SString::sprintf(" while reading from '%s'",fname);
     445                                        if (linenum)
     446                                                fileinfo+=SString::sprintf(" (line %d)",*linenum);
     447                                        }
     448                                logPrintf("ParamInterface", "load", LOG_WARN, "Multiple '%s.%s' fields found%s",getName(),id(i),fileinfo.c_str());
     449                                }
     450                        else
     451                                seen[i]=true;
    436452                        if (!(flags(i)&PARAM_DONTLOAD))
    437453                        {
Note: See TracChangeset for help on using the changeset viewer.