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
* 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

View File

@ -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));