diff -r 5d612ab40605 extras/mini-os/console/console.c --- a/extras/mini-os/console/console.c Thu Oct 22 12:19:44 2009 +0100 +++ b/extras/mini-os/console/console.c Thu Oct 22 12:22:54 2009 +0100 @@ -79,7 +79,7 @@ void console_print(char *data, int length) { char *curr_char, saved_char; - char copied_str[length]; + char copied_str[length+1]; char *copied_ptr; int part_len; int (*ring_send_fn)(const char *data, unsigned length); @@ -95,8 +95,9 @@ { if(*curr_char == '\n') { + *curr_char = '\r'; saved_char = *(curr_char+1); - *(curr_char+1) = '\r'; + *(curr_char+1) = '\n'; part_len = curr_char - copied_ptr + 2; ring_send_fn(dev, copied_ptr, part_len); *(curr_char+1) = saved_char; @@ -104,11 +105,14 @@ length -= part_len - 1; } } + + if (copied_ptr[length-1] == '\n') { + copied_ptr[length-1] = '\r'; + copied_ptr[length] = '\n'; + length++; + } ring_send_fn(dev, copied_ptr, length); - - if(copied_ptr[length-1] == '\n') - ring_send_fn("\r", 1); } void print(int direct, const char *fmt, va_list args)