From efd314189433977708abf43ae76ac94cd753d80c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Thu, 17 Sep 2020 14:44:40 +0200 Subject: vis: provide reverse mapping function for mark names --- vis-marks.c | 10 ++++++++++ vis.h | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) 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") }, diff --git a/vis.h b/vis.h index 9d8bd28..eb84d4b 100644 --- a/vis.h +++ b/vis.h @@ -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 -- cgit v1.2.3