From c637aa4f78d48ffcd39b8352a7fd325add0f89f9 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 14 Oct 2009 08:58:47 +0100 Subject: minios: fix console end of line: \n\r -> \r\n Change the end of line produced by minios' console from \n\r to \r\n. Signed-off-by: Stefano Stabellini --- extras/mini-os/console/console.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'extras') diff --git a/extras/mini-os/console/console.c b/extras/mini-os/console/console.c index 94cc9deb73..2b4ed9ff44 100644 --- a/extras/mini-os/console/console.c +++ b/extras/mini-os/console/console.c @@ -79,7 +79,7 @@ void xencons_tx(void) void console_print(struct consfront_dev *dev, 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)(struct consfront_dev *dev, const char *data, unsigned length); @@ -95,8 +95,9 @@ void console_print(struct consfront_dev *dev, char *data, int length) { 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 @@ void console_print(struct consfront_dev *dev, char *data, int length) 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(dev, "\r", 1); } void print(int direct, const char *fmt, va_list args) -- cgit v1.2.3