Handles quoted arguments a little bit better (needs some overhauling to do it right, though).

This commit is contained in:
Ryan C. Gordon 2002-04-04 17:55:13 +00:00
parent d317ba274f
commit 6e2393d90a
1 changed files with 13 additions and 2 deletions

View File

@ -102,10 +102,18 @@ static int cmd_deinit(char *args)
static int cmd_addarchive(char *args) static int cmd_addarchive(char *args)
{ {
char *ptr = strchr(args, ' '); char *ptr = strrchr(args, ' ');
int appending = atoi(ptr + 1); int appending = atoi(ptr + 1);
*ptr = '\0'; *ptr = '\0';
if (*args == '\"')
{
args++;
*(ptr - 1) = '\0';
}
/*printf("[%s], [%d]\n", args, appending);*/
if (PHYSFS_addToSearchPath(args, appending)) if (PHYSFS_addToSearchPath(args, appending))
printf("Successful.\n"); printf("Successful.\n");
else else
@ -369,12 +377,15 @@ static int cmd_cat(char *args)
static int count_args(const char *str) static int count_args(const char *str)
{ {
int retval = 0; int retval = 0;
int in_quotes = 0;
if (str != NULL) if (str != NULL)
{ {
for (; *str != '\0'; str++) for (; *str != '\0'; str++)
{ {
if (*str == ' ') if (*str == '\"')
in_quotes = !in_quotes;
else if ((*str == ' ') && (!in_quotes))
retval++; retval++;
} /* for */ } /* for */
retval++; retval++;