2010-03-11 Andrei Mozzhuhin <nopscmn@gmail.com>

PR 1496/shell
	* libmisc/shell/shell_makeargs.c: Add support for quoted arguments.
This commit is contained in:
Joel Sherrill
2010-03-11 15:35:24 +00:00
parent 355a836b9d
commit 1fe7324a08
2 changed files with 32 additions and 11 deletions

View File

@@ -1,3 +1,8 @@
2010-03-11 Andrei Mozzhuhin <nopscmn@gmail.com>
PR 1496/shell
* libmisc/shell/shell_makeargs.c: Add support for quoted arguments.
2010-03-10 Joel Sherrill <joel.sherrill@oarcorp.com>
* score/include/rtems/score/interr.h,

View File

@@ -25,22 +25,38 @@ int rtems_shell_make_args(
)
{
int argc;
char *command;
char *ch;
int status = 0;
argc = 0;
command = commandLine;
ch = commandLine;
while ( 1 ) {
command = strtok( command, " \t\r\n" );
if ( command == NULL )
while ( *ch ) {
while ( isspace(*ch) ) ch++;
if ( *ch == '\0' )
break;
argv_p[ argc++ ] = command;
command = '\0';
if ( *ch == '"' ) {
argv_p[ argc++ ] = ++ch;
while ( ( *ch == '\0' ) && ( *ch != '"' ) ) ch++;
} else {
argv_p[ argc++ ] = ch;
while ( ( *ch == '\0' ) && ( !isspace(*ch) ) ) ch++;
}
if ( *ch == '\0' )
break;
*ch++ = '\0';
if ( argc == (max_args-1) ) {
status = -1;
break;
}
}
argv_p[ argc ] = NULL;
*argc_p = argc;