From 69683ba7b453c8460c6cd6fbff1e4ef210d34ed1 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Mon, 24 Sep 2012 12:53:55 +0000 Subject: [PATCH] Use ACS characters for choose-tree arrows based on diff from Romain Francoise. --- cmd-choose-tree.c | 6 ++++-- screen-write.c | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd-choose-tree.c b/cmd-choose-tree.c index dd6dd3b3..e8da7a42 100644 --- a/cmd-choose-tree.c +++ b/cmd-choose-tree.c @@ -149,8 +149,10 @@ cmd_choose_tree_exec(struct cmd *self, struct cmd_ctx *ctx) * without any padding. */ if (wflag && sflag) { - xasprintf(&final_win_template_middle, " |-> %s", win_template); - xasprintf(&final_win_template_last, " \\-> %s", win_template); + xasprintf(&final_win_template_middle, + " \001tq\001> %s", win_template); + xasprintf(&final_win_template_last, + " \001mq\001> %s", win_template); } else if (wflag) { final_win_template_middle = xstrdup(win_template); final_win_template_last = xstrdup(win_template); diff --git a/screen-write.c b/screen-write.c index 2b373d77..66a62b3a 100644 --- a/screen-write.c +++ b/screen-write.c @@ -210,8 +210,12 @@ screen_write_vnputs(struct screen_write_ctx *ctx, ssize_t maxlen, if (maxlen > 0 && size + 1 > (size_t) maxlen) break; - size++; - screen_write_putc(ctx, gc, *ptr); + if (*ptr == '\001') + gc->attr ^= GRID_ATTR_CHARSET; + else { + size++; + screen_write_putc(ctx, gc, *ptr); + } ptr++; } }