diff --git a/finsh/cmd.c b/finsh/cmd.c index 15e9a08cefa8b915fa45b6a3e16949f7af33a0d7..5e576b275dc2fe17834d0ca8887257c077779c4a 100644 --- a/finsh/cmd.c +++ b/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 diff --git a/finsh/shell.c b/finsh/shell.c index 70d00339740ac9d1c09c44a6e32eda89beb11427..357378138953c97607122394c87a92cadc1fd421 100644 --- a/finsh/shell.c +++ b/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 @@ -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));