Change of vterm handling logic on backend chardev input event (#40)
authorLunaixsky <lunaixsky@qq.com>
Sun, 28 Jul 2024 21:50:17 +0000 (22:50 +0100)
committerGitHub <noreply@github.com>
Sun, 28 Jul 2024 21:50:17 +0000 (22:50 +0100)
commitbdc143a7aa3f51a46eceec62b0b364599533fa21
treeffcafabd6cee084cc2ba6b4a7120f21bf48a4654
parent383318a4381375add624530005a803bd934ceec7
Change of vterm handling logic on backend chardev input event (#40)

* fix: term should not ignore underlying input event

* term should always respond the input event from underlying
  termport awared character device, by process the raw input
  buffer according one's lflags.ICANNO setting when the data
  is avaliable

* fix: race when parent get destroyed before children

* fix: orphan a process's children when it is about to destroy
* fix: devzero: mis-used offset cause segfault

* add support of setting serial io speed

* fix: truncate the overflowed input instead of running over.

* rewrite the line control

* rewrite the line control implementation to make it
  clean and less hacky.
* correct some POSIX compliance issue related to some
  control characters.
* fix issue where ANSI line control failed to echo the
  transformed special character
* add a sanity filter to sh to filter out any unprintable
  character.

* fix: make lxconsole work with vterm refactor

* fix: tdev_do_read do not check the linebuffer::sflag

* add a config term for lxconsole (vgacon)

* rename tty/tty.c to vga_rawtty.c for clarity
28 files changed:
lunaix-os/hal/char/LBuild
lunaix-os/hal/char/LConfig
lunaix-os/hal/char/devzero.c
lunaix-os/hal/char/lxconsole.c
lunaix-os/hal/char/serial.c
lunaix-os/hal/char/uart/16x50.h
lunaix-os/hal/char/uart/16x50_base.c
lunaix-os/hal/gfxa/vga/LBuild
lunaix-os/hal/gfxa/vga/vga_rawtty.c [moved from lunaix-os/kernel/tty/tty.c with 87% similarity]
lunaix-os/hal/term/LBuild
lunaix-os/hal/term/default_ops.c [new file with mode: 0644]
lunaix-os/hal/term/lcntls/ansi_cntl.c
lunaix-os/hal/term/lcntls/lcntl.c
lunaix-os/hal/term/lcntls/lcntl.h [new file with mode: 0644]
lunaix-os/hal/term/term.c
lunaix-os/hal/term/term_io.c
lunaix-os/includes/hal/serial.h
lunaix-os/includes/hal/term.h
lunaix-os/includes/lunaix/ds/rbuffer.h
lunaix-os/includes/usr/lunaix/serial.h
lunaix-os/kernel/LBuild
lunaix-os/kernel/ds/rbuffer.c
lunaix-os/kernel/kinit.c
lunaix-os/kernel/process/sched.c
lunaix-os/kernel/process/signal.c
lunaix-os/usr/init/init.c
lunaix-os/usr/libc/includes/termios.h
lunaix-os/usr/sh/sh.c