aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/vis.c b/vis.c
index e686b73..10ba6b8 100644
--- a/vis.c
+++ b/vis.c
@@ -1783,15 +1783,29 @@ static bool cmd_set(Filerange *range, enum CmdOpt cmdopt, const char *argv[]) {
}
view_symbols_set(vis->win->view, flags);
break;
- case OPTION_NUMBER:
- editor_window_options(vis->win, arg.b ? UI_OPTION_LINE_NUMBERS_ABSOLUTE :
- UI_OPTION_LINE_NUMBERS_NONE);
+ case OPTION_NUMBER: {
+ enum UiOption opt = view_options_get(vis->win->view);
+ if (arg.b) {
+ opt &= ~UI_OPTION_LINE_NUMBERS_RELATIVE;
+ opt |= UI_OPTION_LINE_NUMBERS_ABSOLUTE;
+ } else {
+ opt &= ~UI_OPTION_LINE_NUMBERS_ABSOLUTE;
+ }
+ view_options_set(vis->win->view, opt);
break;
- case OPTION_NUMBER_RELATIVE:
- editor_window_options(vis->win, arg.b ? UI_OPTION_LINE_NUMBERS_RELATIVE :
- UI_OPTION_LINE_NUMBERS_NONE);
+ }
+ case OPTION_NUMBER_RELATIVE: {
+ enum UiOption opt = view_options_get(vis->win->view);
+ if (arg.b) {
+ opt &= ~UI_OPTION_LINE_NUMBERS_ABSOLUTE;
+ opt |= UI_OPTION_LINE_NUMBERS_RELATIVE;
+ } else {
+ opt &= ~UI_OPTION_LINE_NUMBERS_RELATIVE;
+ }
+ view_options_set(vis->win->view, opt);
break;
}
+ }
return true;
}