vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit f6109002fa95a11df04aab5897af79682434e7a9 parent 49edeaa578463000a1c5a1f06556b09384377747 Author: Marc André Tanner <mat@brain-dump.org> Date: Thu, 17 Sep 2020 14:44:40 +0200 vis: provide reverse mapping function for mark names Diffstat:
| M | vis-marks.c | | | 10 | ++++++++++ |
| M | vis.h | | | 3 | ++- |
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git 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 @@ -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