Browse Source

add prompt output when start and remove the empty history

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@562 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong 15 years ago
parent
commit
3052a549ef
2 changed files with 16 additions and 13 deletions
  1. 1 1
      finsh/cmd.c
  2. 15 12
      finsh/shell.c

+ 1 - 1
finsh/cmd.c

@@ -5,7 +5,7 @@
  *
  * The license and distribution terms for this file may be
  * found in the file LICENSE in this distribution or at
- * http://openlab.rt-thread.com/license/LICENSE
+ * http://www.rt-thread.org/license/LICENSE
  *
  * Change Logs:
  * Date           Author       Notes

+ 15 - 12
finsh/shell.c

@@ -5,7 +5,7 @@
  *
  * The license and distribution terms for this file may be
  * found in the file LICENSE in this distribution or at
- * http://openlab.rt-thread.com/license/LICENSE
+ * http://www.rt-thread.org/license/LICENSE
  *
  * Change Logs:
  * Date           Author       Notes
@@ -15,6 +15,7 @@
  * 2006-09-24     Bernard      remove the code related with hardware
  * 2010-01-18     Bernard      fix down then up key bug.
  * 2010-03-19     Bernard      fix backspace issue and fix device read in shell.
+ * 2010-04-01     Bernard      add prompt output when start and remove the empty history
  */
 
 #include <rtthread.h>
@@ -184,10 +185,10 @@ void finsh_auto_complete(char* prefix)
 	rt_kprintf("\n");
 	list_prefix(prefix);
 	rt_kprintf("finsh>>%s", prefix);
-}
+}
 
-void finsh_run_line(struct finsh_parser *parser, const char* line)
-{
+void finsh_run_line(struct finsh_parser *parser, const char* line)
+{
 	rt_kprintf("\n");
 	finsh_parser_run(parser, (unsigned char*)line);
 
@@ -223,9 +224,9 @@ void finsh_run_line(struct finsh_parser *parser, const char* line)
 		}
 	}
 
-    finsh_flush(parser);
-}
-
+    finsh_flush(parser);
+}
+
 void finsh_thread_entry(void* parameter)
 {
 	struct finsh_parser parser;
@@ -236,12 +237,14 @@ void finsh_thread_entry(void* parameter)
 	unsigned short  current_history, use_history;
 #endif
 
+	pos = 0;
 	stat = WAIT_NORMAL;
 	current_history = 0;
 	use_history = 0;
 	memset(line, 0, sizeof(line));
 
     finsh_init(&parser);
+	rt_kprintf("finsh>>");
 
 	while (1)
 	{
@@ -350,7 +353,7 @@ void finsh_thread_entry(void* parameter)
 				line[pos] = ';';
 
 				#ifdef FINSH_USING_HISTORY
-				if (use_history == 0)
+				if ((use_history == 0) && (pos != 0))
 				{
 					/* push history */
 					if (finsh_history_count >= FINSH_HISTORY_LINES)
@@ -378,10 +381,10 @@ void finsh_thread_entry(void* parameter)
 					}
 				}
 				current_history = finsh_history_count;
-				#endif
-
-				if (pos != 0) finsh_run_line(&parser, line);
-				else rt_kprintf("\n");
+				#endif
+
+				if (pos != 0) finsh_run_line(&parser, line);
+				else rt_kprintf("\n");
 
 				rt_kprintf("finsh>>");
 				memset(line, 0, sizeof(line));