From b178ce4da92798d8f94915ac84e9efe7be89bbe4 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Mon, 27 Feb 2023 17:14:22 +0800 Subject: [PATCH] driver/pty: Map CR->LF from terminal input NuttX only treat \n as new line after https://github.com/apache/nuttx/pull/8628, so need this conversion to interact with terminal emulator. Signed-off-by: Huang Qi --- drivers/serial/pty.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/serial/pty.c b/drivers/serial/pty.c index 6fa78a0b66..89c7640969 100644 --- a/drivers/serial/pty.c +++ b/drivers/serial/pty.c @@ -955,11 +955,18 @@ int pty_register2(int minor, bool susv1) nxsem_init(&devpair->pp_slavesem, 0, 0); nxmutex_init(&devpair->pp_lock); + /* Map CR -> NL from terminal input (master) + * For some usage like adb shell: + * adb shell write \r -> nsh read \n + * nsh write \n -> adb shell read \r\n + */ + devpair->pp_susv1 = susv1; devpair->pp_minor = minor; devpair->pp_locked = true; devpair->pp_master.pd_devpair = devpair; devpair->pp_master.pd_master = true; + devpair->pp_master.pd_oflag = OPOST | OCRNL; devpair->pp_slave.pd_devpair = devpair; devpair->pp_slave.pd_oflag = OPOST | ONLCR;