diff --git a/utils/mxsh.cpp b/utils/mxsh.cpp index 78a2436d..2c088b2b 100644 --- a/utils/mxsh.cpp +++ b/utils/mxsh.cpp @@ -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++ )