aboutsummaryrefslogtreecommitdiff
path: root/sam.c
diff options
context:
space:
mode:
authorRandy Palamar <randy@rnpnr.xyz>2025-01-11 23:39:06 -0700
committerRandy Palamar <randy@rnpnr.xyz>2025-01-11 23:49:58 -0700
commit0f31ef53420b755c3978818bcd2e5a86e141413d (patch)
tree508af7b7016f9aa2fbe766f310a8dfdc446d8a77 /sam.c
parentabf6384cca0f80fe7dfb35a8e2281d8664d9d459 (diff)
downloadvis-0f31ef53420b755c3978818bcd2e5a86e141413d.tar.gz
vis-0f31ef53420b755c3978818bcd2e5a86e141413d.tar.xz
buffer: clear out one line functions
Buffer is fully exposed to the program, no need to rely on the linker to optimize useless code.
Diffstat (limited to 'sam.c')
-rw-r--r--sam.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/sam.c b/sam.c
index 1380971..de547d1 100644
--- a/sam.c
+++ b/sam.c
@@ -1349,11 +1349,9 @@ static bool cmd_insert(Vis *vis, Win *win, Command *cmd, const char *argv[], Sel
if (!win)
return false;
Buffer buf = text(vis, argv[1]);
- size_t len = buffer_length(&buf);
- char *data = buffer_move(&buf);
- bool ret = sam_insert(win, sel, range->start, data, len, cmd->count.start);
+ bool ret = sam_insert(win, sel, range->start, buf.data, buf.len, cmd->count.start);
if (!ret)
- free(data);
+ free(buf.data);
return ret;
}
@@ -1361,11 +1359,9 @@ static bool cmd_append(Vis *vis, Win *win, Command *cmd, const char *argv[], Sel
if (!win)
return false;
Buffer buf = text(vis, argv[1]);
- size_t len = buffer_length(&buf);
- char *data = buffer_move(&buf);
- bool ret = sam_insert(win, sel, range->end, data, len, cmd->count.start);
+ bool ret = sam_insert(win, sel, range->end, buf.data, buf.len, cmd->count.start);
if (!ret)
- free(data);
+ free(buf.data);
return ret;
}
@@ -1373,11 +1369,9 @@ static bool cmd_change(Vis *vis, Win *win, Command *cmd, const char *argv[], Sel
if (!win)
return false;
Buffer buf = text(vis, argv[1]);
- size_t len = buffer_length(&buf);
- char *data = buffer_move(&buf);
- bool ret = sam_change(win, sel, range, data, len, cmd->count.start);
+ bool ret = sam_change(win, sel, range, buf.data, buf.len, cmd->count.start);
if (!ret)
- free(data);
+ free(buf.data);
return ret;
}
@@ -1751,10 +1745,10 @@ static bool cmd_filter(Vis *vis, Win *win, Command *cmd, const char *argv[], Sel
if (vis->interrupted) {
vis_info_show(vis, "Command cancelled");
} else if (status == 0) {
- size_t len = buffer_length(&bufout);
- char *data = buffer_move(&bufout);
- if (!sam_change(win, sel, range, data, len, 1))
- free(data);
+ if (!sam_change(win, sel, range, bufout.data, bufout.len, 1)) {
+ free(bufout.data);
+ bufout.data = 0;
+ }
} else {
vis_info_show(vis, "Command failed %s", buffer_content0(&buferr));
}