Enhanced version of Simon Ford's RPC demo program allowing command-line editing and providing interactive help. Includes Stream (Serial, etc.) line editing routine in separate files.

Dependencies:   mbed

Revision:
0:ec7de5c0199f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getline.cpp	Wed Feb 10 15:34:58 2010 +0000
@@ -0,0 +1,32 @@
+#include "mbed.h"
+// receive a line from a stream, allowing backspace editing,
+// and checking for buffer overflow. Terminates on either a \n or \r.
+size_t getline(Stream &s, char *buf, size_t bufsize)
+{
+    char c;
+    size_t receivedChars = 0;
+    for(;;)
+    {
+        c = s.getc();
+        if (c == '\r' || c == '\n')
+            break;
+        s.putc(c);
+        if (c == '\b')
+        {
+            if (receivedChars > 0)
+            {
+                buf--;
+                receivedChars--;
+            }
+        }
+        else if (receivedChars < bufsize - 1)
+        {
+            *buf++ = c;
+            receivedChars++;
+        }
+    }
+    *buf++ = 0;
+    s.putc('\n');
+    s.putc('\r');
+    return receivedChars;
+}
\ No newline at end of file