=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/format.c,v retrieving revision 1.185 retrieving revision 1.186 diff -u -r1.185 -r1.186 --- src/usr.bin/tmux/format.c 2019/03/18 20:53:33 1.185 +++ src/usr.bin/tmux/format.c 2019/03/19 19:01:50 1.186 @@ -1,4 +1,4 @@ -/* $OpenBSD: format.c,v 1.185 2019/03/18 20:53:33 nicm Exp $ */ +/* $OpenBSD: format.c,v 1.186 2019/03/19 19:01:50 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott @@ -685,6 +685,21 @@ xasprintf(&fe->value, "%u", n); } +/* Callback for cursor_character. */ +static void +format_cb_cursor_character(struct format_tree *ft, struct format_entry *fe) +{ + struct window_pane *wp = ft->wp; + struct grid_cell gc; + + if (wp == NULL) + return; + + grid_view_get_cell(wp->base.grid, wp->base.cx, wp->base.cy, &gc); + if (~gc.flags & GRID_FLAG_PADDING) + xasprintf(&fe->value, "%.*s", (int)gc.data.size, gc.data.data); +} + /* Merge a format tree. */ static void format_merge(struct format_tree *ft, struct format_tree *from) @@ -2031,6 +2046,8 @@ format_add(ft, "cursor_x", "%u", wp->base.cx); format_add(ft, "cursor_y", "%u", wp->base.cy); + format_add_cb(ft, "cursor_character", format_cb_cursor_character); + format_add(ft, "scroll_region_upper", "%u", wp->base.rupper); format_add(ft, "scroll_region_lower", "%u", wp->base.rlower);