From 277c6b4897e11a5449fc1cfab3ab6e83307a7989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Mon, 12 Oct 2015 13:47:36 +0200 Subject: view: cleanup option handling --- vis.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'vis.c') 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; } -- cgit v1.2.3