Subversion Repositories SvarDOS

Compare Revisions

Ignore whitespace Rev 516 → Rev 517

/svarcom/trunk/cmd.c
36,6 → 36,7
#include "doserr.h"
#include "env.h"
#include "helpers.h"
#include "redir.h"
#include "rmodinit.h"
#include "sayonara.h"
 
198,9 → 199,10
}
 
 
int cmd_process(struct rmod_props far *rmod, unsigned short env_seg, const char *cmdline, void *BUFFER, unsigned short BUFFERSZ) {
int cmd_process(struct rmod_props far *rmod, unsigned short env_seg, const char *cmdline, void *BUFFER, unsigned short BUFFERSZ, const struct redir_data *redir) {
const struct CMD_ID *cmdptr;
unsigned short argoffset;
int cmdres;
struct cmd_funcparam *p = (void *)BUFFER;
p->BUFFERSZ = BUFFERSZ - sizeof(*p);
 
237,6 → 239,9
 
/* printf("recognized internal command: '%s', tail of command at offset %u\r\n", cmdptr->cmd, argoffset); */
 
/* apply redirections (if any) */
if (redir_apply(redir) != 0) return(-1);
 
/* prepare function parameters and feed it to the cmd handling function */
p->argc = cmd_explode(p->argvbuf, cmdline + argoffset, p->argv);
p->env_seg = env_seg;
244,5 → 249,10
p->argoffset = argoffset;
p->cmdline = cmdline;
 
return((cmdptr->func_ptr)(p));
cmdres = (cmdptr->func_ptr)(p);
 
/* cancel redirections */
redir_revert();
 
return(cmdres);
}