Subversion Repositories SvarDOS

Compare Revisions

Regard whitespace Rev 490 → Rev 491

/svarcom/trunk/command.c
130,9 → 130,8
 
/* parses command line the hard way (directly from PSP) */
static void parse_argv(struct config *cfg) {
unsigned short i;
const unsigned char *cmdlinelen = (unsigned char *)0x80;
char *cmdline = (char *)0x81;
const unsigned char *cmdlinelen = (void *)0x80;
char *cmdline = (void *)0x81;
 
memset(cfg, 0, sizeof(*cfg));
 
139,21 → 138,23
/* set a NULL terminator on cmdline */
cmdline[*cmdlinelen] = 0;
 
for (i = 0;;) {
while (*cmdline != 0) {
 
/* skip over any leading spaces */
for (;; i++) {
if (cmdline[i] == 0) return;
if (cmdline[i] != ' ') break;
if (*cmdline == ' ') {
cmdline++;
continue;
}
 
if (cmdline[i] != '/') {
if (*cmdline != '/') {
output("Invalid parameter: ");
outputnl(cmdline + i);
/* exit(1); */
} else {
i++; /* skip the slash */
switch (cmdline[i]) {
outputnl(cmdline);
goto SKIP_TO_NEXT_ARG;
}
 
/* got a slash */
cmdline++; /* skip the slash */
switch (*cmdline) {
case 'c': /* /C = execute command and quit */
case 'C':
cfg->flags |= FLAG_EXEC_AND_QUIT;
160,14 → 161,14
/* FALLTHRU */
case 'k': /* /K = execute command and keep running */
case 'K':
cfg->execcmd = cmdline + i + 1;
cfg->execcmd = cmdline + 1;
return;
 
case 'e': /* preset the initial size of the environment block */
case 'E':
i++;
if (cmdline[i] == ':') i++; /* could be /E:size */
atous(&(cfg->envsiz), cmdline + i);
cmdline++;
if (*cmdline == ':') cmdline++; /* could be /E:size */
atous(&(cfg->envsiz), cmdline);
if (cfg->envsiz < 64) cfg->envsiz = 0;
break;
 
191,15 → 192,13
default:
output("Invalid switch:");
output(" ");
outputnl(cmdline + i);
exit(1);
outputnl(cmdline);
break;
}
}
 
/* move to next argument or quit processing if end of cmdline */
for (i++; (cmdline[i] != 0) && (cmdline[i] != ' ') && (cmdline[i] != '/'); i++);
 
SKIP_TO_NEXT_ARG:
while ((*cmdline != 0) && (*cmdline != ' ') && (*cmdline != '/')) cmdline++;
}
}