mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Expand variables before running shell builtins.
This commit is contained in:
parent
3785beb7f5
commit
dd5a59e5f6
1 changed files with 16 additions and 14 deletions
|
@ -132,6 +132,22 @@ readcmd:
|
|||
cmdnext = cmdend + 1;
|
||||
argv = (char**) (tokens + cmdstart);
|
||||
|
||||
updateenv();
|
||||
char statusstr[32];
|
||||
sprintf(statusstr, "%i", status);
|
||||
setenv("?", statusstr, 1);
|
||||
|
||||
for ( char** argp = argv; *argp; argp++ )
|
||||
{
|
||||
char* arg = *argp;
|
||||
if ( arg[0] != '$' )
|
||||
continue;
|
||||
arg = getenv(arg+1);
|
||||
if ( !arg )
|
||||
arg = (char*) "";
|
||||
*argp = arg;
|
||||
}
|
||||
|
||||
internal = false;
|
||||
internalresult = 0;
|
||||
if ( strcmp(argv[0], "cd") == 0 )
|
||||
|
@ -247,20 +263,6 @@ readcmd:
|
|||
}
|
||||
}
|
||||
|
||||
updateenv();
|
||||
char statusstr[32];
|
||||
sprintf(statusstr, "%i", status);
|
||||
setenv("?", statusstr, 1);
|
||||
|
||||
for ( char** argp = argv; *argp; argp++ )
|
||||
{
|
||||
char* arg = *argp;
|
||||
if ( arg[0] != '$' ) { continue; }
|
||||
arg = getenv(arg+1);
|
||||
if ( !arg ) { arg = (char*) ""; }
|
||||
*argp = arg;
|
||||
}
|
||||
|
||||
if ( !strcmp(argv[0], "env") )
|
||||
{
|
||||
for ( size_t i = 0; i < envlength(); i++ )
|
||||
|
|
Loading…
Add table
Reference in a new issue