diff options
author | nicm <nicm> | 2018-11-12 14:18:10 +0000 |
---|---|---|
committer | nicm <nicm> | 2018-11-12 14:18:10 +0000 |
commit | 86e648d906d84b8b0522e3d8d6ec6baa171c2423 (patch) | |
tree | 104cc979ff50e416cb2e6c4c5d1f5cb456e3cccc | |
parent | 09aee537632eba2c3fa5fe4559e0073dc4c67d68 (diff) | |
download | rtmux-86e648d906d84b8b0522e3d8d6ec6baa171c2423.tar.gz rtmux-86e648d906d84b8b0522e3d8d6ec6baa171c2423.tar.bz2 rtmux-86e648d906d84b8b0522e3d8d6ec6baa171c2423.zip |
Allow style #[] in mode formats.
-rw-r--r-- | mode-tree.c | 4 | ||||
-rw-r--r-- | screen-write.c | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/mode-tree.c b/mode-tree.c index 2e4b9072..eb18bdf7 100644 --- a/mode-tree.c +++ b/mode-tree.c @@ -582,10 +582,10 @@ mode_tree_draw(struct mode_tree_data *mtd) } if (i != mtd->current) { - screen_write_nputs(&ctx, w, &gc0, "%s", text); + screen_write_cnputs(&ctx, w, &gc0, "%s", text); screen_write_clearendofline(&ctx, 8); } else { - screen_write_nputs(&ctx, w, &gc, "%s", text); + screen_write_cnputs(&ctx, w, &gc, "%s", text); screen_write_clearendofline(&ctx, gc.bg); } free(text); diff --git a/screen-write.c b/screen-write.c index 00994e48..c65ae688 100644 --- a/screen-write.c +++ b/screen-write.c @@ -350,7 +350,6 @@ screen_write_cnputs(struct screen_write_ctx *ctx, ssize_t maxlen, ptr = last + 1; continue; } - if (*ptr > 0x7f && utf8_open(ud, *ptr) == UTF8_MORE) { ptr++; @@ -376,7 +375,9 @@ screen_write_cnputs(struct screen_write_ctx *ctx, ssize_t maxlen, if (maxlen > 0 && size + 1 > (size_t)maxlen) break; - if (*ptr > 0x1f && *ptr < 0x7f) { + if (*ptr == '\001') + gc.attr ^= GRID_ATTR_CHARSET; + else if (*ptr > 0x1f && *ptr < 0x7f) { size++; screen_write_putc(ctx, &gc, *ptr); } |