diff options
| -rw-r--r-- | vis-marks.c | 10 | ||||
| -rw-r--r-- | vis.h | 3 |
2 files changed, 12 insertions, 1 deletions
diff --git a/vis-marks.c b/vis-marks.c index e616f1d..8ae97ac 100644 --- a/vis-marks.c +++ b/vis-marks.c @@ -226,6 +226,16 @@ enum VisMark vis_mark_from(Vis *vis, char mark) { return VIS_MARK_INVALID; } +char vis_mark_to(Vis *vis, enum VisMark mark) { + if (VIS_MARK_a <= mark && mark <= VIS_MARK_z) + return 'a' + mark - VIS_MARK_a; + + if (mark < LENGTH(vis_marks)) + return vis_marks[mark].name; + + return '\0'; +} + const MarkDef vis_marks[] = { [VIS_MARK_DEFAULT] = { '\'', VIS_HELP("Default mark") }, [VIS_MARK_SELECTION] = { '^', VIS_HELP("Last selections") }, @@ -673,8 +673,9 @@ enum VisMark { * @defgroup vis_marks * @{ */ -/** Translate single character mark name to corresponding constant. */ +/** Translate between single character mark name and corresponding constant. */ enum VisMark vis_mark_from(Vis*, char mark); +char vis_mark_to(Vis*, enum VisMark); /** * Specify mark to use. * @rst |
