summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authoraozima <[email protected]>2018-07-02 15:10:11 +0800
committeraozima <[email protected]>2018-07-02 15:12:17 +0800
commit85e732ddafba1e2fdf0da3589332e161c16514b2 (patch)
tree7790b34e46b90fd79898f294dd4b9aef066df453 /components
parent1d588c7475a5d59839185f1505210e1f2e977207 (diff)
[shell] add finsh_get/set_prompt_mode.
Diffstat (limited to 'components')
-rw-r--r--components/finsh/shell.c35
-rw-r--r--components/finsh/shell.h4
2 files changed, 39 insertions, 0 deletions
diff --git a/components/finsh/shell.c b/components/finsh/shell.c
index 6bdb418120..667e7ac12a 100644
--- a/components/finsh/shell.c
+++ b/components/finsh/shell.c
@@ -67,6 +67,13 @@ const char *finsh_get_prompt()
#define _PROMPT "finsh "
static char finsh_prompt[RT_CONSOLEBUF_SIZE + 1] = {0};
+ /* check prompt mode */
+ if (!shell->prompt_mode)
+ {
+ finsh_prompt[0] = '\0';
+ return finsh_prompt;
+ }
+
#ifdef FINSH_USING_MSH
if (msh_is_used()) strcpy(finsh_prompt, _MSH_PROMPT);
else
@@ -84,6 +91,34 @@ const char *finsh_get_prompt()
}
#endif
+/**
+ * @ingroup finsh
+ *
+ * This function get the prompt mode of finsh shell.
+ *
+ * @return prompt the prompt mode, 0 disable prompt mode, other values enable prompt mode.
+ */
+rt_uint32_t finsh_get_prompt_mode(void)
+{
+ RT_ASSERT(shell != RT_NULL);
+ return shell->prompt_mode;
+}
+
+/**
+ * @ingroup finsh
+ *
+ * This function set the prompt mode of finsh shell.
+ *
+ * The parameter 0 disable prompt mode, other values enable prompt mode.
+ *
+ * @param prompt the prompt mode
+ */
+void finsh_set_prompt_mode(rt_uint32_t prompt_mode)
+{
+ RT_ASSERT(shell != RT_NULL);
+ shell->prompt_mode = prompt_mode;
+}
+
static char finsh_getchar(void)
{
#ifdef RT_USING_POSIX
diff --git a/components/finsh/shell.h b/components/finsh/shell.h
index 06b81de518..e01458adc5 100644
--- a/components/finsh/shell.h
+++ b/components/finsh/shell.h
@@ -86,6 +86,7 @@ struct finsh_shell
enum input_stat stat;
rt_uint8_t echo_mode:1;
+ rt_uint8_t prompt_mode: 1;
#ifdef FINSH_USING_HISTORY
rt_uint16_t current_history;
@@ -118,6 +119,9 @@ int finsh_system_init(void);
void finsh_set_device(const char* device_name);
const char* finsh_get_device(void);
+rt_uint32_t finsh_get_prompt_mode(void);
+void finsh_set_prompt_mode(rt_uint32_t prompt_mode);
+
#ifdef FINSH_USING_AUTH
rt_err_t finsh_set_password(const char *password);
const char *finsh_get_password(void);