diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2017-07-17 23:06:35 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2017-07-17 23:31:00 +0200 |
| commit | 5a20ed97ded854198e2c50ca128635e01848a5bb (patch) | |
| tree | bd14eaa3aca449ad09c402a74eb37c5d8dc19f82 | |
| parent | 75c7c61ecc4038340fa3acfab71ee19bbafa48a8 (diff) | |
| download | vis-5a20ed97ded854198e2c50ca128635e01848a5bb.tar.gz vis-5a20ed97ded854198e2c50ca128635e01848a5bb.tar.xz | |
vis: specify window in mark related API
This should also fix coverity issue 157024.
| -rw-r--r-- | main.c | 18 | ||||
| -rw-r--r-- | vis-lua.c | 4 | ||||
| -rw-r--r-- | vis-marks.c | 12 | ||||
| -rw-r--r-- | vis.c | 2 | ||||
| -rw-r--r-- | vis.h | 4 |
5 files changed, 24 insertions, 16 deletions
@@ -1658,19 +1658,21 @@ static void selections_set(Vis *vis, View *view, Array *sel) { } static const char *selections_save(Vis *vis, const char *keys, const Arg *arg) { + Win *win = vis_window(vis); View *view = vis_view(vis); enum VisMark mark = vis_mark_used(vis); Array sel = view_selections_get_all(view); - vis_mark_set(vis, mark, &sel); + vis_mark_set(win, mark, &sel); array_release(&sel); vis_cancel(vis); return keys; } static const char *selections_restore(Vis *vis, const char *keys, const Arg *arg) { + Win *win = vis_window(vis); View *view = vis_view(vis); enum VisMark mark = vis_mark_used(vis); - Array sel = vis_mark_get(vis, mark); + Array sel = vis_mark_get(win, mark); selections_set(vis, view, &sel); array_release(&sel); vis_cancel(vis); @@ -1678,9 +1680,10 @@ static const char *selections_restore(Vis *vis, const char *keys, const Arg *arg } static const char *selections_union(Vis *vis, const char *keys, const Arg *arg) { + Win *win = vis_window(vis); View *view = vis_view(vis); enum VisMark mark = vis_mark_used(vis); - Array a = vis_mark_get(vis, mark); + Array a = vis_mark_get(win, mark); Array b = view_selections_get_all(view); Array sel; array_init_from(&sel, &a); @@ -1744,9 +1747,10 @@ static void intersect(Array *ret, Array *a, Array *b) { } static const char *selections_intersect(Vis *vis, const char *keys, const Arg *arg) { + Win *win = vis_window(vis); View *view = vis_view(vis); enum VisMark mark = vis_mark_used(vis); - Array a = vis_mark_get(vis, mark); + Array a = vis_mark_get(win, mark); Array b = view_selections_get_all(view); Array sel; array_init_from(&sel, &a); @@ -1796,10 +1800,11 @@ static const char *selections_complement(Vis *vis, const char *keys, const Arg * static const char *selections_minus(Vis *vis, const char *keys, const Arg *arg) { Text *txt = vis_text(vis); + Win *win = vis_window(vis); View *view = vis_view(vis); enum VisMark mark = vis_mark_used(vis); Array a = view_selections_get_all(view); - Array b = vis_mark_get(vis, mark); + Array b = vis_mark_get(win, mark); Array sel; array_init_from(&sel, &a); Array b_complement; @@ -1871,10 +1876,11 @@ static Filerange combine_rightmost(const Filerange *r1, const Filerange *r2) { } static const char *selections_combine(Vis *vis, const char *keys, const Arg *arg) { + Win *win = vis_window(vis); View *view = vis_view(vis); enum VisMark mark = vis_mark_used(vis); Array a = view_selections_get_all(view); - Array b = vis_mark_get(vis, mark); + Array b = vis_mark_get(win, mark); Array sel; array_init_from(&sel, &a); @@ -2300,7 +2300,7 @@ static int file_marks_index(lua_State *L) { if (mark == VIS_MARK_INVALID) return 1; - Array arr = vis_mark_get(vis, mark); + Array arr = vis_mark_get(vis->win, mark); for (size_t i = 0, len = array_length(&arr); i < len; i++) { Filerange *range = array_get(&arr, i); lua_pushunsigned(L, i+1); @@ -2336,7 +2336,7 @@ static int file_marks_newindex(lua_State *L) { } } - vis_mark_set(vis, mark, &ranges); + vis_mark_set(vis->win, mark, &ranges); array_release(&ranges); return 0; } diff --git a/vis-marks.c b/vis-marks.c index 7bc6ad5..e616f1d 100644 --- a/vis-marks.c +++ b/vis-marks.c @@ -48,7 +48,9 @@ void mark_release(Array *arr) { } static Array *mark_from(Vis *vis, enum VisMark id) { - if (id == VIS_MARK_SELECTION && vis->win) + if (!vis->win) + return NULL; + if (id == VIS_MARK_SELECTION) return &vis->win->saved_selections; File *file = vis->win->file; if (id < LENGTH(file->marks)) @@ -83,8 +85,8 @@ static Array mark_get(Win *win, Array *mark) { return sel; } -Array vis_mark_get(Vis *vis, enum VisMark id) { - return mark_get(vis->win, mark_from(vis, id)); +Array vis_mark_get(Win *win, enum VisMark id) { + return mark_get(win, mark_from(win->vis, id)); } static void mark_set(Win *win, Array *mark, Array *sel) { @@ -100,8 +102,8 @@ static void mark_set(Win *win, Array *mark, Array *sel) { } } -void vis_mark_set(Vis *vis, enum VisMark id, Array *sel) { - mark_set(vis->win, mark_from(vis, id), sel); +void vis_mark_set(Win *win, enum VisMark id, Array *sel) { + mark_set(win, mark_from(win->vis, id), sel); } void marklist_init(MarkList *list, size_t max) { @@ -247,7 +247,7 @@ void window_selection_save(Win *win) { Vis *vis = win->vis; View *view = win->view; Array sel = view_selections_get_all(view); - vis_mark_set(vis, VIS_MARK_SELECTION, &sel); + vis_mark_set(win, VIS_MARK_SELECTION, &sel); array_release(&sel); vis_jumplist_save(vis); } @@ -695,7 +695,7 @@ enum VisMark vis_mark_used(Vis*); * @param id The register to use. * @param sel The array containing the file ranges. */ -void vis_mark_set(Vis*, enum VisMark id, Array *sel); +void vis_mark_set(Win*, enum VisMark id, Array *sel); /** * Get an array of file ranges stored in the mark. * @@ -704,7 +704,7 @@ void vis_mark_set(Vis*, enum VisMark id, Array *sel); * ``array_release``. * @endrst */ -Array vis_mark_get(Vis*, enum VisMark id); +Array vis_mark_get(Win*, enum VisMark id); /** * Normalize an Array of Fileranges. * |
