summaryrefslogtreecommitdiff
path: root/apps/examples/usbterm
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-01 19:47:12 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-01 19:47:12 +0000
commit37259910ba73b71e4c32e5913e4d44c245c4502d (patch)
tree9b5b0a7b3d6180141c3f9d959b6c04647e4a6810 /apps/examples/usbterm
parent6d35541209058b86bda7b34e47fa28c8c959d365 (diff)
downloadnuttx-37259910ba73b71e4c32e5913e4d44c245c4502d.tar.gz
nuttx-37259910ba73b71e4c32e5913e4d44c245c4502d.tar.bz2
nuttx-37259910ba73b71e4c32e5913e4d44c245c4502d.zip
Use realine instead of fgets in several other places
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4357 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/examples/usbterm')
-rw-r--r--apps/examples/usbterm/usbterm_main.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/apps/examples/usbterm/usbterm_main.c b/apps/examples/usbterm/usbterm_main.c
index d51101dd7..066c6f548 100644
--- a/apps/examples/usbterm/usbterm_main.c
+++ b/apps/examples/usbterm/usbterm_main.c
@@ -50,6 +50,8 @@
#include <errno.h>
#include <debug.h>
+#include <apps/readline.h>
+
#include <nuttx/usb/usbdev.h>
#include <nuttx/usb/usbdev_trace.h>
@@ -297,9 +299,32 @@ int MAIN_NAME(int argc, char *argv[])
fputs("usbterm> ", stdout);
fflush(stdout);
- /* Get the next line of input from stdin */
+ /* Get the next line of input */
+
+#ifdef CONFIG_EXAMPLES_USBTERM_FGETS
+ /* fgets returns NULL on end-of-file or any I/O error */
+
+ if (fgets(g_usbterm.outbuffer, CONFIG_EXAMPLES_USBTERM_BUFLEN, stdin) == NULL)
+ {
+ printf("ERROR: fgets failed: %d\n", errno);
+ return 1;
+ }
+#else
+ ret = readline(g_usbterm.outbuffer, CONFIG_EXAMPLES_USBTERM_BUFLEN, stdin, stdout);
+
+ /* 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.
+ */
- if (fgets(g_usbterm.outbuffer, CONFIG_EXAMPLES_USBTERM_BUFLEN, stdin))
+ if (ret <= 0)
+ {
+ printf("ERROR: readline failed: %d\n", ret);
+ return 1;
+ }
+#endif
+ else
{
/* Send the line of input via USB */