From: qianfan Zhao <qianfangui...@163.com>

Add support \\, \r, \n, \t and \b.

eg:
=> lcdputs "hello\nworld"

Signed-off-by: qianfan Zhao <qianfangui...@163.com>
---
 drivers/video/vidconsole-uclass.c | 34 +++++++++++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

diff --git a/drivers/video/vidconsole-uclass.c 
b/drivers/video/vidconsole-uclass.c
index f42db40d4c..d2554fd3f7 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -709,15 +709,45 @@ static int do_video_puts(struct cmd_tbl *cmdtp, int flag, 
int argc,
 {
        struct udevice *dev;
        const char *s;
+       char c;
 
        if (argc != 2)
                return CMD_RET_USAGE;
 
        if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
                return CMD_RET_FAILURE;
-       for (s = argv[1]; *s; s++)
-               vidconsole_put_char(dev, *s);
 
+       for (s = argv[1]; (c = *s); s++) {
+               if (c == '\\') {
+                       s++;
+
+                       switch (*s) {
+                       case '\0':
+                               goto sync;
+                       case '\\':
+                               c = '\\';
+                               break;
+                       case 'r':
+                               c = '\r';
+                               break;
+                       case 'n':
+                               c = '\n';
+                               break;
+                       case 't':
+                               c = '\t';
+                               break;
+                       case 'b':
+                               c = '\b';
+                               break;
+                       default:
+                               continue;
+                       }
+               }
+
+               vidconsole_put_char(dev, c);
+       }
+
+sync:
        return video_sync(dev->parent, false);
 }
 
-- 
2.17.1

Reply via email to