+ } else {\r
+ //\r
+ // When there is no real console devices in system, \r
+ // update cursor position for the virtual device in consplitter.\r
+ //\r
+ Private->TextOut.QueryMode (\r
+ &Private->TextOut,\r
+ Private->TextOutMode.Mode,\r
+ &MaxColumn,\r
+ &MaxRow\r
+ ); \r
+ for (; *WString != CHAR_NULL; WString++) {\r
+ switch (*WString) {\r
+ case CHAR_BACKSPACE:\r
+ if (Private->TextOutMode.CursorColumn == 0 && Private->TextOutMode.CursorRow > 0) {\r
+ Private->TextOutMode.CursorRow--;\r
+ Private->TextOutMode.CursorColumn = (INT32) (MaxColumn - 1); \r
+ } else if (Private->TextOutMode.CursorColumn > 0) {\r
+ Private->TextOutMode.CursorColumn--;\r
+ }\r
+ break;\r
+ \r
+ case CHAR_LINEFEED:\r
+ if (Private->TextOutMode.CursorRow < (INT32) (MaxRow - 1)) {\r
+ Private->TextOutMode.CursorRow++;\r
+ }\r
+ break;\r
+ \r
+ case CHAR_CARRIAGE_RETURN:\r
+ Private->TextOutMode.CursorColumn = 0;\r
+ break;\r
+ \r
+ default:\r
+ if (Private->TextOutMode.CursorColumn < (INT32) (MaxColumn - 1)) {\r
+ Private->TextOutMode.CursorColumn++;\r
+ } else {\r
+ Private->TextOutMode.CursorColumn = 0;\r
+ if (Private->TextOutMode.CursorRow < (INT32) (MaxRow - 1)) {\r
+ Private->TextOutMode.CursorRow++;\r
+ }\r
+ }\r
+ break;\r
+ }\r
+ }\r