aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-07-17 23:06:35 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-07-17 23:31:00 +0200
commit5a20ed97ded854198e2c50ca128635e01848a5bb (patch)
treebd14eaa3aca449ad09c402a74eb37c5d8dc19f82
parent75c7c61ecc4038340fa3acfab71ee19bbafa48a8 (diff)
downloadvis-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.c18
-rw-r--r--vis-lua.c4
-rw-r--r--vis-marks.c12
-rw-r--r--vis.c2
-rw-r--r--vis.h4
5 files changed, 24 insertions, 16 deletions
diff --git a/main.c b/main.c
index ba4ae01..f63fbbf 100644
--- a/main.c
+++ b/main.c
@@ -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);
diff --git a/vis-lua.c b/vis-lua.c
index 3134b3c..157372b 100644
--- a/vis-lua.c
+++ b/vis-lua.c
@@ -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) {
diff --git a/vis.c b/vis.c
index a12c2be..1ce9cba 100644
--- a/vis.c
+++ b/vis.c
@@ -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);
}
diff --git a/vis.h b/vis.h
index 6641266..178aae2 100644
--- a/vis.h
+++ b/vis.h
@@ -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.
*