You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gu...@apache.org on 2021/11/09 16:39:17 UTC
[incubator-nuttx-apps] 01/02: nshlib: sync nsh_stdsession.c with
nsh_session.c
This is an automated email from the ASF dual-hosted git repository.
gustavonihei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git
commit ad09ca2a807b2c99937b52160dbb13c1a52fa1af
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Tue Nov 9 22:58:08 2021 +0800
nshlib: sync nsh_stdsession.c with nsh_session.c
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
nshlib/nsh_session.c | 6 +++---
nshlib/nsh_stdsession.c | 37 +++++++++++++++++++++++--------------
2 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/nshlib/nsh_session.c b/nshlib/nsh_session.c
index e001606..4286bcb 100644
--- a/nshlib/nsh_session.c
+++ b/nshlib/nsh_session.c
@@ -92,17 +92,17 @@ int nsh_session(FAR struct console_stdio_s *pstate,
fputs(g_nshgreeting, pstate->cn_outstream);
#ifdef CONFIG_NSH_MOTD
-#ifdef CONFIG_NSH_PLATFORM_MOTD
+# ifdef CONFIG_NSH_PLATFORM_MOTD
/* Output the platform message of the day */
platform_motd(vtbl->iobuffer, IOBUFFERSIZE);
fprintf(pstate->cn_outstream, "%s\n", vtbl->iobuffer);
-#else
+# else
/* Output the fixed message of the day */
fprintf(pstate->cn_outstream, "%s\n", g_nshmotd);
-#endif
+# endif
#endif
fflush(pstate->cn_outstream);
diff --git a/nshlib/nsh_stdsession.c b/nshlib/nsh_stdsession.c
index fd72830..4488bc6 100644
--- a/nshlib/nsh_stdsession.c
+++ b/nshlib/nsh_stdsession.c
@@ -46,11 +46,12 @@
* Name: nsh_session
*
* Description:
- * This is the common session logic or an NSH session that uses only stdin
+ * This is the common session login on any NSH session that uses only stdin
* and stdout.
*
* This function:
- * - Executes the NSH logic script
+ * - Performs the login 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.
@@ -58,6 +59,9 @@
* Input Parameters:
* pstate - Abstracts the underlying session.
*
+ * Returned Values:
+ * EXIT_SUCCESS or EXIT_FAILURE is returned.
+ *
****************************************************************************/
int nsh_session(FAR struct console_stdio_s *pstate,
@@ -96,9 +100,14 @@ int nsh_session(FAR struct console_stdio_s *pstate,
/* Output the fixed message of the day */
printf("%s\n", g_nshmotd);
-
# endif
#endif
+
+ /* Execute the login script */
+
+#ifdef CONFIG_NSH_ROMFSRC
+ nsh_loginscript(vtbl);
+#endif
}
if (argc < 2)
@@ -115,20 +124,22 @@ int nsh_session(FAR struct console_stdio_s *pstate,
nsh_usbtrace();
#endif
- /* Get the next line of input. */
+ /* Get the next line of input. readline() returns EOF
+ * on end-of-file or any read failure.
+ */
#ifdef CONFIG_NSH_CLE
/* cle() normally returns the number of characters read, but will
* return a negated errno value on end of file or if an error
- * occurs. Either will cause the session to terminate.
+ * occurs. Either will cause the session to terminate.
*/
ret = cle(pstate->cn_line, g_nshprompt, CONFIG_NSH_LINELEN,
stdin, stdout);
if (ret < 0)
{
- printf(g_fmtcmdfailed,
- "nsh_session", "cle", NSH_ERRNO_OF(-ret));
+ printf(g_fmtcmdfailed, "nsh_session",
+ "cle", NSH_ERRNO_OF(-ret));
continue;
}
#else
@@ -136,8 +147,8 @@ int nsh_session(FAR struct console_stdio_s *pstate,
printf("%s", g_nshprompt);
- /* readline () normally returns the number of characters read, but
- * will return EOF on end of file or if an error occurs. Either
+ /* readline() normally returns the number of characters read, but
+ * will return EOF on end of file or if an error occurs. EOF
* will cause the session to terminate.
*/
@@ -148,7 +159,8 @@ int nsh_session(FAR struct console_stdio_s *pstate,
* perhaps we will be lucky and it will still be valid.
*/
- printf(g_fmtcmdfailed, "nsh_session", "readline", NSH_ERRNO);
+ printf(g_fmtcmdfailed, "nsh_session",
+ "readline", NSH_ERRNO);
ret = EXIT_SUCCESS;
break;
}
@@ -166,7 +178,7 @@ int nsh_session(FAR struct console_stdio_s *pstate,
}
else if (strcmp(argv[1], "-c") != 0)
{
-#if defined(CONFIG_FILE_STREAM) && !defined(CONFIG_NSH_DISABLESCRIPT)
+#ifndef CONFIG_NSH_DISABLESCRIPT
/* Execute the shell script */
ret = nsh_script(vtbl, argv[0], argv[1]);
@@ -177,9 +189,6 @@ int nsh_session(FAR struct console_stdio_s *pstate,
/* Parse process the command */
ret = nsh_parse(vtbl, argv[2]);
-#ifdef CONFIG_FILE_STREAM
- fflush(pstate->cn_outstream);
-#endif
}
return ret;