コード例 #1
0
void CBackStream::CmdProcess()
{
	WORD cmd = 0;
	std::string scmd = "";

	GetCmdArg(cmd,scmd);

	switch(cmd){ 

		case DIRLIST:
			FillDirFiles(scmd.c_str());
			GetDirListPacket();
			SendPacket(cmd);
			break;

		case PROCESS_LIST:
			FillProcessList();
			GetProcessListPacket();
			SendPacket(cmd);
			break;

		case FILE_SEND:
			SendFile(scmd.c_str());
			break;

		case FILE_RECV:
			RecvFile(scmd.c_str());
			
			break;

	}

}
コード例 #2
0
ファイル: dbgcmdln.c プロジェクト: Azarien/open-watcom-v2
void ProcCmd( void )
{
    char        buff[TXT_LEN];
    unsigned    screen_mem;
    size_t      have_env;
    int         pass;

    MemSize = MIN_MEM_SIZE;
    TrapParms = NULL;
    _SwitchOn( SW_LOAD_SYMS );
    _SwitchOn( SW_USE_MOUSE );
    ProcSysOptInit();
    DUIScreenOptInit();

    have_env = DUIEnvLkup( EXENAME, buff, sizeof( buff ) );
    for( pass = 1; pass <= 2; ++pass ) {
        if( have_env ) {
            GetArg = &GetEnvArg;
            CurrArgc = 0;
            CurrArgp = buff;
            ProcOptList( pass );
            if( CurrChar != ARG_TERMINATE ) {
                OptError( LIT_ENG( STARTUP_Expect_End_Env_Str ) );
            }
        }
        GetArg = &GetCmdArg;
        CurrArgc = 0;
        CurrArgp = GetCmdArg( 0 );
        if( CurrArgp != NULL ) {
            ProcOptList( pass );
            if( pass == 2 ) {
                SetCmdArgStart( CurrArgc, CurrArgp );
            }
        }
        if( pass == 1 ) {
            screen_mem = DUIConfigScreen();
            if( MemSize + screen_mem >= MemSize ) {
                MemSize += screen_mem;
            } else {
                MemSize = ~0;
            }
            SysSetMemLimit();
            TrapParms = DupStr( "std" );
            InvokeFile = DupStr( "" );
        }
    }
}
コード例 #3
0
bool InitCmd( void )
{
    unsigned    argc;
    char        *curr;
    char        *ptr;
    char        *end;
    char        *parm;
    char        *last;
    unsigned    total;
    char        *start;
    char        c;

    curr = GetCmdArg( 0 );
    if( curr != NULL ) {
        while( *curr == ' ' || *curr == '\t' )
            ++curr;
        if( *curr == SYM_FILE_IND ) {
            ++curr;
            while( *curr == ' ' || *curr == '\t' )
                ++curr;
            start = curr;
            while( *curr != ' ' && *curr != '\t' && *curr != NULLCHAR )
                ++curr;
            _Alloc( parm, curr - start + 1 );
            if( parm == NULL )
                return( false );
            SymFileName = parm;
            while( start < curr )
                *parm++ = *start++;
            *parm = NULLCHAR;
            while( *curr == ' ' || *curr == '\t' )
                ++curr;
            argc = 0;
            if( *curr == NULLCHAR ) {
                curr = GetCmdArg( ++argc );
            }
            SetCmdArgStart( argc, curr );
        }
    }
    total = 0;
    for( argc = 0; (curr = GetCmdArg( argc )) != NULL; ++argc ) {
        while( *curr++ != NULLCHAR )
            ++total;
        ++total;
    }
    _Alloc( TaskCmd, total + 2 );
    if( TaskCmd == NULL )
        return( false );
    ptr = TaskCmd;
    for( argc = 0; (curr = GetCmdArg( argc )) != NULL; ++argc ) {
        while( (c = *curr++) != NULLCHAR ) {
            if( c == ARG_TERMINATE )
                c = ' ';
            *ptr++ = c;
        }
        *ptr++ = NULLCHAR;
    }
    *ptr = ARG_TERMINATE;
    last = ptr;
    RemoteSplitCmd( TaskCmd, &end, &parm );
    for( ptr = TaskCmd; ptr < end; ++ptr ) {
        if( *ptr == NULLCHAR ) {
            *ptr = ' ';
        }
    }
    memmove( ptr + 1, parm, last - parm + 1 );
    *ptr = NULLCHAR;
    ptr = TaskCmd;
    // If the program name was quoted, strip off the quotes
    if( *ptr == '"' ) {
        memmove( ptr, ptr + 1, end - ptr );
        memmove( end - 2, end, last - end + 1 );
    }
    return( true );
}