From 6b0902de6c7fdd9f9f207d5d1675d07e23059639 Mon Sep 17 00:00:00 2001 From: Emil Fresk Date: Tue, 23 Apr 2019 11:14:44 +0200 Subject: [PATCH] Fix for JLink debuggers When sending 1 character it returns -1 from syscall. This fix mitigates the issue, but it not correct. --- src/hio.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hio.rs b/src/hio.rs index 7eac6eb..d202f60 100644 --- a/src/hio.rs +++ b/src/hio.rs @@ -68,12 +68,14 @@ fn write_all(fd: usize, mut buffer: &[u8]) -> Result<(), ()> { // Done 0 => return Ok(()), // `n` bytes were not written - n if n <= buffer.len() => { + n if n <= buffer.len() && n > 0 => { let offset = (buffer.len() - n) as isize; buffer = unsafe { slice::from_raw_parts(buffer.as_ptr().offset(offset), n) } } + // Error (-1) - should be an error but JLink can return -1 + 0xffffffff => return Ok(()), // Error _ => return Err(()), }