/svarcom/cmd/cd.c |
---|
10,7 → 10,7 |
* Type CD without parameters to display the current drive and directory. |
*/ |
static int cmd_cd(const struct cmd_funcparam *p) { |
static int cmd_cd(struct cmd_funcparam *p) { |
/* two arguments max */ |
if (p->argc > 1) { |
outputnl("Too many parameters"); |
/svarcom/cmd/dir.c |
---|
29,7 → 29,7 |
#define cmd_dir_attr_arc 32 |
static int cmd_dir(const struct cmd_funcparam *p) { |
static int cmd_dir(struct cmd_funcparam *p) { |
const char *filespecptr = "*.*"; |
unsigned short errcode; |
_Packed struct DTA { |
/svarcom/cmd/exit.c |
---|
5,7 → 5,7 |
* |
*/ |
static int cmd_exit(const struct cmd_funcparam *p) { |
static int cmd_exit(struct cmd_funcparam *p) { |
if ((p->argc == 1) && (imatch(p->argv[0], "/?"))) { |
output("EXIT\r\n" |
"\r\n" |
/svarcom/cmd/path.c |
---|
0,0 → 1,68 |
/* |
* path |
* |
* Displays or sets a search path for executable files. |
*/ |
static int cmd_path(struct cmd_funcparam *p) { |
char *buff = p->BUFFER; |
/* no parameter - display current path */ |
if (p->argc == 0) { |
char far *curpath = env_lookup(p->env_seg, "PATH"); |
if (curpath != NULL) { |
unsigned short i; |
for (i = 0;; i++) { |
buff[i] = curpath[i]; |
if (buff[i] == 0) break; |
} |
outputnl(buff); |
} |
return(-1); |
} |
/* more than 1 parameter */ |
if (p->argc > 1) { |
outputnl("Too many parameters"); |
return(-1); |
} |
/* IF HERE: THERE IS EXACTLY 1 ARGUMENT (argc == 1) */ |
/* help screen (/?) */ |
if (imatch(p->argv[0], "/?")) { |
output("Displays or sets a search path for executable files.\r\n" |
"\r\n" |
"PATH [[drive:]path[;...]]\r\n" |
"PATH ;\r\n" |
"\r\n" |
"Type PATH ; to clear all search-path settings and direct DOS to search\r\n" |
"only in the current directory.\r\n" |
"\r\n" |
"Type PATH without parameters to display the current path.\r\n"); |
return(-1); |
} |
/* reset the PATH string (PATH ;) */ |
if (imatch(p->argv[0], ";")) { |
env_dropvar(p->env_seg, "PATH"); |
return(-1); |
} |
/* otherwise set PATH to whatever is passed on command-line */ |
{ |
unsigned short i; |
strcpy(buff, "PATH="); |
for (i = 0;; i++) { |
buff[i + 5] = p->argv[0][i]; |
if (buff[i + 5] == '\r') break; |
} |
buff[i + 5] = 0; |
outputnl("---"); |
outputnl(buff); |
outputnl("---"); |
env_setvar(p->env_seg, buff); |
} |
return(-1); |
} |
/svarcom/cmd/prompt.c |
---|
5,7 → 5,7 |
* |
*/ |
static int cmd_prompt(const struct cmd_funcparam *p) { |
static int cmd_prompt(struct cmd_funcparam *p) { |
if ((p->argc == 1) && (imatch(p->argv[0], "/?"))) { |
output("Changes the DOS command prompt.\r\n" |
"\r\n" |
22,8 → 22,9 |
/* otherwise set PROMPT to whatever is passed on command-line */ |
{ |
char buff[256] = "PROMPT="; |
unsigned short i; |
char *buff = p->BUFFER; |
strcpy(buff, "PROMPT="); |
for (i = 0;; i++) { |
buff[i + 7] = p->cmdline[p->argoffset + i]; |
if (buff[i + 7] == '\r') break; |
/svarcom/cmd/set.c |
---|
6,13 → 6,13 |
*/ |
static int cmd_set(const struct cmd_funcparam *p) { |
static int cmd_set(struct cmd_funcparam *p) { |
char far *env = MK_FP(p->env_seg, 0); |
char buff[256]; |
int i; |
char *buff = p->BUFFER; |
/* no arguments - display content */ |
if (p->argc == 0) { |
while (*env != 0) { |
unsigned short i; |
/* copy string to local buff for display */ |
for (i = 0;; i++) { |
buff[i] = *env; |
19,13 → 19,12 |
env++; |
if (buff[i] == 0) break; |
} |
puts(buff); |
outputnl(buff); |
} |
} else if ((p->argc == 1) && (imatch(p->argv[0], "/?"))) { |
outputnl("TODO: help screen"); /* TODO */ |
} else { /* set variable (do not rely on argv, SET has its own rules...) */ |
const char far *ptr; |
char buff[256]; |
unsigned short i; |
/* locate the first space */ |
for (ptr = p->cmdline; *ptr != ' '; ptr++); |