X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/383318a4381375add624530005a803bd934ceec7..bdc143a7aa3f51a46eceec62b0b364599533fa21:/lunaix-os/hal/term/lcntls/ansi_cntl.c diff --git a/lunaix-os/hal/term/lcntls/ansi_cntl.c b/lunaix-os/hal/term/lcntls/ansi_cntl.c index 778eb4b..bc66139 100644 --- a/lunaix-os/hal/term/lcntls/ansi_cntl.c +++ b/lunaix-os/hal/term/lcntls/ansi_cntl.c @@ -9,25 +9,18 @@ * @copyright Copyright (c) 2023 * */ -#include +#include "lcntl.h" #include #define CTRL_MNEMO(chr) (chr - 'A' + 1) -static inline int -__ansi_actcontrol(struct term* termdev, struct linebuffer* lbuf, char chr) +int +__ansi_actcontrol(struct lcntl_state* state, char chr) { - struct rbuffer* cooked = lbuf->next; - switch (chr) { - default: - if ((int)chr < 32) { - rbuffer_put(cooked, '^'); - return rbuffer_put(cooked, chr += 64); - } - break; + if (chr < 32 && chr != '\n') { + lcntl_put_char(state, '^'); + return lcntl_put_char(state, chr += 64); } - return rbuffer_put_nof(cooked, chr); + return lcntl_put_char(state, chr); } - -struct term_lcntl ansi_line_controller = {.process_and_put = __ansi_actcontrol}; \ No newline at end of file