mirror of
https://github.com/apache/nuttx-apps.git
synced 2025-10-18 08:52:01 +08:00
This commit adds nsh_consolechild(). I noticed that there are several examples that call nsh_consolemain.c to create to create a new NSH session. That will not always work because nsh_consolemain() performs the one-time initialization needed by the NSH library: Mounting, reading, and running the start-up script, configuring USB tracing. Some of those actions will cause failures if attempted twice.
Here are some offenders: examples/cc3000/shell.c, examples/nsh/nsh_main.c, examples/nxterm/nxterm_main.c, and examples/pty_test/pty_test.c. It is possible that for some of those, that represents the first call to nsh_consolemain(). But probably not. To give other initialization options, I added nsh_consolechild() which is identical to nsh_consolemain() other than it omits all of the one-time initialization. Of course, you would not get the result that you wanted if nsh_consolechild() were called without nsh_consolemain().
This commit is contained in:
@@ -59,12 +59,13 @@
|
||||
* Name: nsh_session
|
||||
*
|
||||
* Description:
|
||||
* This is the common session logic or any NSH session. This function
|
||||
* return when an error reading from the input stream occurs, presumably
|
||||
* This is the common session login or each NSH session. This function
|
||||
* returns when an error reading from the input stream occurs, presumably
|
||||
* signaling the end of the session.
|
||||
*
|
||||
* This function:
|
||||
* - Executes the NSH logic script
|
||||
* - Performs the logic sequence if so configured.
|
||||
* - Executes the NSH login script
|
||||
* - Presents a greeting
|
||||
* - Then provides a prompt then gets and processes the command line.
|
||||
* - This continues until an error occurs, then the session returns.
|
||||
|
Reference in New Issue
Block a user