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
This commit is contained in:
bernard.xiong 2010-03-31 22:50:55 +00:00
parent bd5399d04e
commit 3052a549ef
2 changed files with 16 additions and 13 deletions

View File

@ -5,7 +5,7 @@
* *
* The license and distribution terms for this file may be * The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at * 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: * Change Logs:
* Date Author Notes * Date Author Notes

View File

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