Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 30, 2006, 5:44:37 PM (18 years ago)
Author:
rennerc
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/parser/cmdline_parser/cmdline_parser.cc

    r7259 r7260  
    6868    if ( s.find( "=" ) == std::string::npos )
    6969    {
    70       args.push_back(s);
     70      if ( s.length() > 2 && s[0] == '-' && s[1] != '-' )
     71      {
     72        for ( int j = 1; j < s.length(); j++ )
     73        {
     74          std::string t = "-";
     75          t += s[j];
     76          args.push_back( t );
     77        }
     78      }
     79      else
     80      {
     81        args.push_back(s);
     82      }
    7183    }
    7284    else
     
    98110        found = true;
    99111       
    100         if ( it->numArgs + i >= args.size() )
     112        int posArgs = 1;
     113       
     114        while ( i + posArgs < args.size() )
     115        {
     116          if ( args[ i + posArgs ].length() > 0 && args[ i + posArgs ][0] == '-' )
     117            break;
     118          else
     119            posArgs++;
     120        }
     121       
     122        posArgs--;
     123       
     124        if ( it->numArgs > posArgs )
    101125        {
    102126          PRINTF(1)( "%s needs %d arguments!\n", args[i].c_str(), it->numArgs );
     
    176200    }
    177201  }
     202  else
     203    return false;
    178204}
    179205
Note: See TracChangeset for help on using the changeset viewer.