Figure 6: AddToArglist member function of CConsoleApp (from conapp.c)

void CConsoleApp::AddToArglist( tstring& cmdarg ) {

   if ( cmdarg[0] == _T('-') || cmdarg[0] == _T('/') ) {

      tstring::size_type pos = 0;
      pos = cmdarg.find_first_of( _T(':'), pos );

      if ( pos != tstring::npos ) {
         tstring opt = cmdarg.substr( 1, pos-1 );
         tstring val = cmdarg.substr( pos+1 );
         CCmdArg carg( CCmdArg::CmdOption, opt, val );
         arglist.push_back( carg );
      }
      else {
         CCmdArg carg( CCmdArg::CmdSwitch, cmdarg.substr(1) );
         arglist.push_back( carg );
      }
   }
   else {
      CCmdArg carg( CCmdArg::CmdString, cmdarg );
      arglist.push_back( carg );
   }
}