diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2020-09-17 14:44:40 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2020-09-17 15:30:27 +0200 |
| commit | efd314189433977708abf43ae76ac94cd753d80c (patch) | |
| tree | 48b648ae544e090ea63b1a2c8bf6112c5b092b2e | |
| parent | c02ff996418dd8e5c4115333c5a442e14e9add61 (diff) | |
| download | vis-efd314189433977708abf43ae76ac94cd753d80c.tar.gz vis-efd314189433977708abf43ae76ac94cd753d80c.tar.xz | |
vis: provide reverse mapping function for mark names
| -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 |
