Edward Ho Wee Jin
/
GPS
GPS with altitudes
Fork of GPS by
Diff: getline.cpp
- Revision:
- 1:f24af888e699
diff -r 2c0686a07ab8 -r f24af888e699 getline.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/getline.cpp Fri Mar 11 10:18:09 2016 +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