X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-terminal%2Fterm-screen.c;h=0e38ff41c63f5b5278979a5109620ab1e7b5be49;hb=d90c154eb180783098683ce8e1c03cd29d9b77ce;hp=f2ac5c92c423f3bc1399839cd34d0676fb2f3f50;hpb=7ee738ec330620e97f47068cc2474fcf810b0c86;p=elogind.git diff --git a/src/libsystemd-terminal/term-screen.c b/src/libsystemd-terminal/term-screen.c index f2ac5c92c..0e38ff41c 100644 --- a/src/libsystemd-terminal/term-screen.c +++ b/src/libsystemd-terminal/term-screen.c @@ -51,6 +51,7 @@ #include "macro.h" #include "term-internal.h" #include "util.h" +#include "utf8.h" int term_screen_new(term_screen **out, term_screen_write_fn write_fn, void *write_fn_data, term_screen_cmd_fn cmd_fn, void *cmd_fn_data) { _cleanup_(term_screen_unrefp) term_screen *screen = NULL; @@ -402,6 +403,8 @@ static void screen_mode_change_ansi(term_screen *screen, unsigned mode, bool set set_reset(screen, TERM_FLAG_NEWLINE_MODE, set); break; + default: + log_debug("terminal: failed to %s unknown ANSI mode %u", set ? "set" : "unset", mode); } } @@ -499,6 +502,8 @@ static void screen_mode_change_dec(term_screen *screen, unsigned int mode, bool screen_restore_state(screen, &screen->saved_alt); break; + default: + log_debug("terminal: failed to %s unknown DEC mode %u", set ? "set" : "unset", mode); } } @@ -545,7 +550,6 @@ static int screen_LF(term_screen *screen, const term_seq *seq); static int screen_GRAPHIC(term_screen *screen, const term_seq *seq) { term_char_t ch = TERM_CHAR_NULL; - uint32_t c; if (screen->state.cursor_x + 1 == screen->page->width && screen->flags & TERM_FLAG_PENDING_WRAP @@ -556,8 +560,7 @@ static int screen_GRAPHIC(term_screen *screen, const term_seq *seq) { screen_cursor_clear_wrap(screen); - c = screen_map(screen, seq->terminator); - ch = term_char_merge(ch, screen_map(screen, c)); + ch = term_char_merge(ch, screen_map(screen, seq->terminator)); term_page_write(screen->page, screen->state.cursor_x, screen->state.cursor_y, ch, 1, &screen->state.attr, screen->age, false); if (screen->state.cursor_x + 1 == screen->page->width) @@ -3182,7 +3185,7 @@ static int screen_TBC(term_screen *screen, const term_seq *seq) { break; case 3: if (screen->page->width > 0) - memset(screen->tabs, 0, (screen->page->width + 7) / 8); + memzero(screen->tabs, (screen->page->width + 7) / 8); break; } @@ -4105,7 +4108,7 @@ static char *screen_map_key(term_screen *screen, /* map unicode keys */ for (i = 0; i < n_syms; ++i) - p += term_utf8_encode(p, ucs4[i]); + p += utf8_encode_unichar(p, ucs4[i]); return p; }