Fix a readline bug. If a NUL is received, it would return end-of-file

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5633 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2013-02-10 00:46:27 +00:00
parent b8c07cfa53
commit 142c478747
8 changed files with 37 additions and 30 deletions

View File

@@ -42,8 +42,6 @@
#include <stdio.h>
#include <assert.h>
#include <apps/readline.h>
#include "nsh.h"
#include "nsh_console.h"

View File

@@ -129,11 +129,13 @@ int nsh_session(FAR struct console_stdio_s *pstate)
fputs(g_nshprompt, pstate->cn_outstream);
fflush(pstate->cn_outstream);
/* Get the next line of input */
/* Get the next line of input. readline() returns EOF on end-of-file
* or any read failure.
*/
ret = readline(pstate->cn_line, CONFIG_NSH_LINELEN,
INSTREAM(pstate), OUTSTREAM(pstate));
if (ret > 0)
if (ret != EOF)
{
/* Parse process the command */
@@ -142,9 +144,8 @@ int nsh_session(FAR struct console_stdio_s *pstate)
}
/* Readline normally returns the number of characters read,
* but will return 0 on end of file or a negative value
* if an error occurs. Either will cause the session to
* terminate.
* but will return EOF on end of file or if an error occurs.
* EOF will cause the session to terminate.
*/
else