aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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