diff options
Diffstat (limited to 'firmware/zpu/lib')
-rw-r--r-- | firmware/zpu/lib/hal_io.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/firmware/zpu/lib/hal_io.c b/firmware/zpu/lib/hal_io.c index 1d137943c..4ed694b9d 100644 --- a/firmware/zpu/lib/hal_io.c +++ b/firmware/zpu/lib/hal_io.c @@ -255,12 +255,14 @@ fngets(hal_uart_name_t u, char * const s, int len) int fngets_noblock(hal_uart_name_t u, char * const s, int len) { - char *x = s; - - while(((*x=(char)hal_uart_getc_noblock(u)) != '\n') && (*x != 255) && ((x-s) < len)) x++; - *x = 0; - //printf("Returning from fngets() with string %d of length %d\n", s[0], x-s); - return (x-s); + int i; + for(i=0; i < len; i++) { + s[i] = (char) hal_uart_getc_noblock(u); + if((s[i] == 255) || (s[i] == '\n')) break; + } + s[i] = 0; + + return i; } char * |