X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/59ecf21e36b2332f6adf2a568ef555283d8c119a..HEAD:/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 0596a7a..bc66139 100644 --- a/lunaix-os/hal/term/lcntls/ansi_cntl.c +++ b/lunaix-os/hal/term/lcntls/ansi_cntl.c @@ -9,26 +9,18 @@ * @copyright Copyright (c) 2023 * */ -#include +#include "lcntl.h" #include #define CTRL_MNEMO(chr) (chr - 'A' + 1) -static inline size_t -__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, '^'); - chr += 64; - } - break; + if (chr < 32 && chr != '\n') { + lcntl_put_char(state, '^'); + return lcntl_put_char(state, chr += 64); } - return rbuffer_put(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