Revert "This critical behavior was broken by this commit:"
This reverts commit 9b06b508f9
.
Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
parent
e2414cd731
commit
898c1ce4d2
@ -507,48 +507,11 @@ static int nsh_execute(FAR struct nsh_vtbl_s *vtbl,
|
|||||||
* 4. If not, report that the command was not found.
|
* 4. If not, report that the command was not found.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Does this command correspond to an application filename?
|
|
||||||
* nsh_fileapp() returns:
|
|
||||||
*
|
|
||||||
* -1 (ERROR) if the application task corresponding to 'argv[0]' could
|
|
||||||
* not be started (possibly because it does not exist).
|
|
||||||
* 0 (OK) if the application task corresponding to 'argv[0]' was
|
|
||||||
* and successfully started. If CONFIG_SCHED_WAITPID is
|
|
||||||
* defined, this return value also indicates that the
|
|
||||||
* application returned successful status (EXIT_SUCCESS)
|
|
||||||
* 1 If CONFIG_SCHED_WAITPID is defined, then this return value
|
|
||||||
* indicates that the application task was spawned
|
|
||||||
* successfully but returned failure exit status.
|
|
||||||
*
|
|
||||||
* Note the priority is not effected by nice-ness.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef CONFIG_NSH_FILE_APPS
|
|
||||||
ret = nsh_fileapp(vtbl, argv[0], argv, redirfile, oflags);
|
|
||||||
if (ret >= 0)
|
|
||||||
{
|
|
||||||
/* nsh_fileapp() returned 0 or 1. This means that the built-in
|
|
||||||
* command was successfully started (although it may not have ran
|
|
||||||
* successfully). So certainly it is not an NSH command.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Save the result: success if 0; failure if 1 */
|
|
||||||
|
|
||||||
return nsh_saveresult(vtbl, ret != OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* No, not a file name command (or, at least, we were unable to start a
|
|
||||||
* program of that name). Maybe it is a built-in application or an NSH
|
|
||||||
* command.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Does this command correspond to a built-in command?
|
/* Does this command correspond to a built-in command?
|
||||||
* nsh_builtin() returns:
|
* nsh_builtin() returns:
|
||||||
*
|
*
|
||||||
* -1 (ERROR) if the application task corresponding to 'argv[0]' could
|
* -1 (ERROR) if the application task corresponding to 'argv[0]' could
|
||||||
* not be started (possibly because it doesn not exist).
|
* not be started (possibly because it does not exist).
|
||||||
* 0 (OK) if the application task corresponding to 'argv[0]' was
|
* 0 (OK) if the application task corresponding to 'argv[0]' was
|
||||||
* and successfully started. If CONFIG_SCHED_WAITPID is
|
* and successfully started. If CONFIG_SCHED_WAITPID is
|
||||||
* defined, this return value also indicates that the
|
* defined, this return value also indicates that the
|
||||||
@ -579,7 +542,44 @@ static int nsh_execute(FAR struct nsh_vtbl_s *vtbl,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* No, not a built in command (or, at least, we were unable to start a
|
/* No, not a built in command (or, at least, we were unable to start a
|
||||||
* built-in command of that name). Treat it like an NSH command.
|
* built-in command of that name). Maybe it is a built-in application
|
||||||
|
* or an NSH command.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Does this command correspond to an application filename?
|
||||||
|
* nsh_fileapp() returns:
|
||||||
|
*
|
||||||
|
* -1 (ERROR) if the application task corresponding to 'argv[0]' could
|
||||||
|
* not be started (possibly because it doesn not exist).
|
||||||
|
* 0 (OK) if the application task corresponding to 'argv[0]' was
|
||||||
|
* and successfully started. If CONFIG_SCHED_WAITPID is
|
||||||
|
* defined, this return value also indicates that the
|
||||||
|
* application returned successful status (EXIT_SUCCESS)
|
||||||
|
* 1 If CONFIG_SCHED_WAITPID is defined, then this return value
|
||||||
|
* indicates that the application task was spawned
|
||||||
|
* successfully but returned failure exit status.
|
||||||
|
*
|
||||||
|
* Note the priority is not effected by nice-ness.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NSH_FILE_APPS
|
||||||
|
ret = nsh_fileapp(vtbl, argv[0], argv, redirfile, oflags);
|
||||||
|
if (ret >= 0)
|
||||||
|
{
|
||||||
|
/* nsh_fileapp() returned 0 or 1. This means that the built-in
|
||||||
|
* command was successfully started (although it may not have ran
|
||||||
|
* successfully). So certainly it is not an NSH command.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Save the result: success if 0; failure if 1 */
|
||||||
|
|
||||||
|
return nsh_saveresult(vtbl, ret != OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* No, not a file name command (or, at least, we were unable to start a
|
||||||
|
* program of that name). Treat it like an NSH command.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user