extern void ProcCapture( void ) { cmd_list *cmds; const char *start; size_t len; const char *old; char *p; char *end; if( !ScanItem( false, &start, &len ) ) Error( ERR_NONE, LIT_ENG( ERR_WANT_COMMAND_LIST ) ); ReqEOC(); cmds = AllocCmdList( start, len ); end = FileName + sizeof( FileName ); p = FileName + PREFIX_LEN; p = CnvULongHex( TaskId, p, end - p ); *p++ = RemFile.ext_separator; p = CnvULongDec( FileNum++, p, end - p ); *p = NULLCHAR; old = ReScan( FileName+PREFIX_LEN ); StdOutNew(); ReScan( old ); cmds->use++; CaptureOk = true; PushInpStack( cmds, DoneCapture, false ); TypeInpStack( INP_CAPTURED ); FreeCmdList( cmds ); }
static void DoInvoke( handle hndl, char *name, char_ring *parmlist ) { invokes *inv; _Alloc( inv, sizeof( invokes ) + strlen( name ) ); if( inv != NULL ) { inv->buff_size = CMD_LEN; _Alloc( inv->buff, inv->buff_size+1 ); /* extra for NULLCHAR */ } if( inv == NULL || inv->buff == NULL ) { if( inv != NULL ) _Free( inv ); FileClose( hndl ); FreeRing( parmlist ); Error( ERR_NONE, LIT( ERR_NO_MEMORY ) ); } strcpy( inv->name, name ); inv->in_size = 0; inv->in_off = 0; inv->flags = 0; inv->redirect = NULL; inv->inv_input = hndl; inv->prmlst = parmlist; inv->number = InvCount++; inv->line = 0; PushInpStack( inv, DoneInvLine, TRUE ); TypeInpStack( INP_CMD_FILE ); }
static void PushRefresh( void ) { PushInpStack( NULL, DoneRefresh, false ); TypeInpStack( INP_NO_CMD ); }