Subversion Repositories SvarDOS

Rev

Rev 448 | Rev 479 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 448 Rev 449
Line 43... Line 43...
43
 
43
 
44
struct cmd_funcparam {
44
struct cmd_funcparam {
45
  int argc;                 /* number of arguments */
45
  int argc;                 /* number of arguments */
46
  const char *argv[256];    /* pointers to each argument */
46
  const char *argv[256];    /* pointers to each argument */
47
  unsigned short env_seg;   /* segment of environment block */
47
  unsigned short env_seg;   /* segment of environment block */
48
  unsigned short rmod_seg;  /* segment of the resident module */
48
  struct rmod_props far *rmod; /* rmod settings */
49
  unsigned short argoffset; /* offset of cmdline where first argument starts */
49
  unsigned short argoffset; /* offset of cmdline where first argument starts */
50
  const char far *cmdline;  /* original cmdline (terminated by a NULL) */
50
  const char far *cmdline;  /* original cmdline (terminated by a NULL) */
51
  char BUFFER[BUFFER_SIZE]; /* a buffer for whatever is needed */
51
  char BUFFER[BUFFER_SIZE]; /* a buffer for whatever is needed */
52
};
52
};
53
 
53
 
Line 187... Line 187...
187
  argvlist[argc] = NULL;
187
  argvlist[argc] = NULL;
188
  return(argc);
188
  return(argc);
189
}
189
}
190
 
190
 
191
 
191
 
192
int cmd_process(unsigned short rmod_seg, unsigned short env_seg, const char far *cmdline, char *BUFFER) {
192
int cmd_process(struct rmod_props far *rmod, unsigned short env_seg, const char far *cmdline, char *BUFFER) {
193
  const struct CMD_ID *cmdptr;
193
  const struct CMD_ID *cmdptr;
194
  unsigned short argoffset;
194
  unsigned short argoffset;
195
  struct cmd_funcparam *p = (void *)BUFFER;
195
  struct cmd_funcparam *p = (void *)BUFFER;
196
 
196
 
197
  /* special case: is this a drive change? (like "E:") */
197
  /* special case: is this a drive change? (like "E:") */
Line 228... Line 228...
228
  /* printf("recognized internal command: '%s', tail of command at offset %u\r\n", cmdptr->cmd, argoffset); */
228
  /* printf("recognized internal command: '%s', tail of command at offset %u\r\n", cmdptr->cmd, argoffset); */
229
 
229
 
230
  /* prepare function parameters and feed it to the cmd handling function */
230
  /* prepare function parameters and feed it to the cmd handling function */
231
  p->argc = cmd_explode(BUFFER + sizeof(*p), cmdline + argoffset, p->argv);
231
  p->argc = cmd_explode(BUFFER + sizeof(*p), cmdline + argoffset, p->argv);
232
  p->env_seg = env_seg;
232
  p->env_seg = env_seg;
233
  p->rmod_seg = rmod_seg;
233
  p->rmod = rmod;
234
  p->argoffset = argoffset;
234
  p->argoffset = argoffset;
235
  p->cmdline = cmdline;
235
  p->cmdline = cmdline;
236
 
236
 
237
  return((cmdptr->func_ptr)(p));
237
  return((cmdptr->func_ptr)(p));
238
}
238
}