diff options
| author | Atish Patra <[email protected]> | 2019-02-27 17:42:17 -0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2019-03-05 14:05:12 +0530 |
| commit | 86cc9b8633bea3bc6fbda145424f871ea553af9e (patch) | |
| tree | dd63e0eee35ed225059db03f36405842715792bb /lib | |
| parent | 05602e2bf4812533adcb7acb1a67e43726c0e7bb (diff) | |
lib:platform: Fix sbi_getc return type.
As per the current SBI specification, sbi_getc should return
an int instead of char.
In case of FIFO is empty, return -1 as per the specification.
Reported-by: Sergi Granell <[email protected]>
Suggested-by:Thadeu Lima de Souza Cascardo <[email protected]>
Signed-off-by: Atish Patra <[email protected]>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sbi_console.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/sbi_console.c b/lib/sbi_console.c index bc8f9526..527748f6 100644 --- a/lib/sbi_console.c +++ b/lib/sbi_console.c @@ -26,7 +26,7 @@ bool sbi_isprintable(char c) return FALSE; } -char sbi_getc(void) +int sbi_getc(void) { return sbi_platform_console_getc(console_plat); } @@ -50,10 +50,11 @@ void sbi_puts(const char *str) void sbi_gets(char *s, int maxwidth, char endchar) { - char ch, *retval = s; + int ch; + char *retval = s; - while ((ch = sbi_getc()) != endchar && maxwidth > 1) { - *retval = ch; + while ((ch = sbi_getc()) != endchar && ch >= 0 && maxwidth > 1) { + *retval = (char) ch; retval++; maxwidth--; } |
