aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2020-09-17 14:44:40 +0200
committerMarc André Tanner <mat@brain-dump.org>2020-09-17 15:30:27 +0200
commitefd314189433977708abf43ae76ac94cd753d80c (patch)
tree48b648ae544e090ea63b1a2c8bf6112c5b092b2e
parentc02ff996418dd8e5c4115333c5a442e14e9add61 (diff)
downloadvis-efd314189433977708abf43ae76ac94cd753d80c.tar.gz
vis-efd314189433977708abf43ae76ac94cd753d80c.tar.xz
vis: provide reverse mapping function for mark names
-rw-r--r--vis-marks.c10
-rw-r--r--vis.h3
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") },
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