[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] fix minios console end of line



Hi all,
this patch changes the end of line produced by minios' console from \n\r
to \r\n.
It applies after the other minios console fix sent as part of the
pci passthrough with stubdoms series.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

---

diff -r 18840671551b extras/mini-os/console/console.c
--- a/extras/mini-os/console/console.c  Tue Oct 13 13:15:49 2009 +0100
+++ b/extras/mini-os/console/console.c  Tue Oct 13 14:32:59 2009 +0100
@@ -79,7 +79,7 @@
 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 @@
     {
         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(dev, "\r", 1);
 }
 
 void print(int direct, const char *fmt, va_list args)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.