diff --git a/buffer.c b/buffer.c index e9285fe4f..67da2e051 100644 --- a/buffer.c +++ b/buffer.c @@ -10,10 +10,6 @@ #define BUFFER_SIZE 1024 #endif -void buffer_init(Buffer *buf) { - memset(buf, 0, sizeof *buf); -} - bool buffer_reserve(Buffer *buf, size_t size) { /* ensure minimal buffer size, to avoid repeated realloc(3) calls */ if (size < BUFFER_SIZE) @@ -45,7 +41,7 @@ void buffer_release(Buffer *buf) { if (!buf) return; free(buf->data); - buffer_init(buf); + *buf = (Buffer){0}; } void buffer_clear(Buffer *buf) { @@ -179,7 +175,7 @@ const char *buffer_content0(Buffer *buf) { char *buffer_move(Buffer *buf) { char *data = buf->data; - buffer_init(buf); + *buf = (Buffer){0}; return data; } diff --git a/buffer.h b/buffer.h index d9e2b8566..a155163ea 100644 --- a/buffer.h +++ b/buffer.h @@ -20,8 +20,6 @@ typedef struct { size_t size; /**< Maximal capacity of the buffer. */ } Buffer; -/** Initialize a Buffer object. */ -void buffer_init(Buffer*); /** Release all resources, reinitialize buffer. */ void buffer_release(Buffer*); /** Set buffer length to zero, keep allocated memory. */ diff --git a/main.c b/main.c index 3e9d9ab8b..2989dd452 100644 --- a/main.c +++ b/main.c @@ -2154,9 +2154,8 @@ static const char *unicode_info(Vis *vis, const char *keys, const Arg *arg) { char *grapheme = text_bytes_alloc0(txt, start, end-start), *codepoint = grapheme; if (!grapheme) return keys; - Buffer info; - buffer_init(&info); - mbstate_t ps = { 0 }; + Buffer info = {0}; + mbstate_t ps = {0}; Iterator it = text_iterator_get(txt, start); for (size_t pos = start; it.pos < end; pos = it.pos) { if (!text_iterator_codepoint_next(&it, NULL)) { diff --git a/sam.c b/sam.c index e5aead3b0..1380971f5 100644 --- a/sam.c +++ b/sam.c @@ -559,8 +559,7 @@ static void skip_spaces(const char **s) { } static char *parse_until(const char **s, const char *until, const char *escchars, int type){ - Buffer buf; - buffer_init(&buf); + Buffer buf = {0}; size_t len = strlen(until); bool escaped = false; @@ -633,8 +632,7 @@ static char *parse_text(const char **s, Count *count) { return (!text && *s != before) ? strdup("") : text; } - Buffer buf; - buffer_init(&buf); + Buffer buf = {0}; const char *start = *s + 1; bool dot = false; @@ -677,8 +675,7 @@ static bool valid_cmdname(const char *s) { } static char *parse_cmdname(const char **s) { - Buffer buf; - buffer_init(&buf); + Buffer buf = {0}; skip_spaces(s); while (valid_cmdname(*s)) @@ -1313,8 +1310,7 @@ enum SamError sam_cmd(Vis *vis, const char *s) { /* process text input, substitute register content for backreferences etc. */ Buffer text(Vis *vis, const char *text) { - Buffer buf; - buffer_init(&buf); + Buffer buf = {0}; for (size_t len = strcspn(text, "\\&"); *text; len = strcspn(++text, "\\&")) { buffer_append(&buf, text, len); text += len; @@ -1747,9 +1743,7 @@ static bool cmd_filter(Vis *vis, Win *win, Command *cmd, const char *argv[], Sel if (!win) return false; - Buffer bufout, buferr; - buffer_init(&bufout); - buffer_init(&buferr); + Buffer bufout = {0}, buferr = {0}; int status = vis_pipe(vis, win->file, range, &argv[1], &bufout, read_into_buffer, &buferr, read_into_buffer, false); @@ -1789,8 +1783,7 @@ static bool cmd_pipein(Vis *vis, Win *win, Command *cmd, const char *argv[], Sel static bool cmd_pipeout(Vis *vis, Win *win, Command *cmd, const char *argv[], Selection *sel, Filerange *range) { if (!win) return false; - Buffer buferr; - buffer_init(&buferr); + Buffer buferr = {0}; int status = vis_pipe(vis, win->file, range, (const char*[]){ argv[1], NULL }, NULL, NULL, &buferr, read_into_buffer, false); diff --git a/test/core/buffer-test.c b/test/core/buffer-test.c index dfdb466d3..a102b0188 100644 --- a/test/core/buffer-test.c +++ b/test/core/buffer-test.c @@ -15,11 +15,10 @@ static bool compare0(Buffer *buf, const char *data) { } int main(int argc, char *argv[]) { - Buffer buf; + Buffer buf = {0}; plan_no_plan(); - buffer_init(&buf); ok(buffer_content(&buf) == NULL && buffer_length(&buf) == 0 && buffer_capacity(&buf) == 0, "Initialization"); ok(buffer_insert(&buf, 0, "foo", 0) && buffer_content(&buf) == NULL && buffer_length(&buf) == 0 && buffer_capacity(&buf) == 0, "Insert zero length data"); diff --git a/test/fuzz/buffer-fuzzer.c b/test/fuzz/buffer-fuzzer.c index fea3ec832..9ecb405ef 100644 --- a/test/fuzz/buffer-fuzzer.c +++ b/test/fuzz/buffer-fuzzer.c @@ -78,8 +78,7 @@ static Cmd commands[] = { int main(int argc, char *argv[]) { char line[BUFSIZ]; - Buffer buf; - buffer_init(&buf); + Buffer buf = {0}; for (;;) { printf("> "); diff --git a/ui-terminal-vt100.c b/ui-terminal-vt100.c index 3c63c110f..3c06bff65 100644 --- a/ui-terminal-vt100.c +++ b/ui-terminal-vt100.c @@ -196,7 +196,6 @@ static bool ui_backend_init(Ui *ui) { Buffer *buf = calloc(1, sizeof(Buffer)); if (!buf) return false; - buffer_init(buf); ui->ctx = buf; return true; } diff --git a/vis-cmds.c b/vis-cmds.c index b195013ac..892f5a582 100644 --- a/vis-cmds.c +++ b/vis-cmds.c @@ -402,10 +402,7 @@ static const char *file_open_dialog(Vis *vis, const char *pattern) { if (!is_file_pattern(pattern)) return pattern; - Buffer bufcmd, bufout, buferr; - buffer_init(&bufcmd); - buffer_init(&bufout); - buffer_init(&buferr); + Buffer bufcmd = {0}, bufout = {0}, buferr = {0}; if (!buffer_put0(&bufcmd, VIS_OPEN " ") || !buffer_append0(&bufcmd, pattern ? pattern : "")) return NULL; diff --git a/vis-core.h b/vis-core.h index 182c53732..cb24624fc 100644 --- a/vis-core.h +++ b/vis-core.h @@ -108,7 +108,6 @@ typedef struct { /* a macro is just a sequence of symbolic keys as received from ui->getkey */ typedef Buffer Macro; -#define macro_init buffer_init #define macro_release buffer_release #define macro_reset buffer_clear #define macro_append buffer_append0 diff --git a/vis-registers.c b/vis-registers.c index caecbd308..8b12119b8 100644 --- a/vis-registers.c +++ b/vis-registers.c @@ -9,8 +9,7 @@ static Buffer *register_buffer(Register *reg, size_t slot) { return buf; if (array_resize(®->values, slot) && (buf = array_get(®->values, slot))) return buf; - Buffer new; - buffer_init(&new); + Buffer new = {0}; if (!array_add(®->values, &new)) return NULL; size_t capacity = array_capacity(®->values); @@ -22,8 +21,7 @@ static Buffer *register_buffer(Register *reg, size_t slot) { } bool register_init(Register *reg) { - Buffer buf; - buffer_init(&buf); + Buffer buf = {0}; array_init_sized(®->values, sizeof(Buffer)); return array_add(®->values, &buf); } @@ -63,10 +61,9 @@ const char *register_slot_get(Vis *vis, Register *reg, size_t slot, size_t *len) } case REGISTER_CLIPBOARD: { - Buffer buferr; + Buffer buferr = {0}; enum VisRegister id = reg - vis->registers; const char *cmd[] = { VIS_CLIPBOARD, "--paste", "--selection", NULL, NULL }; - buffer_init(&buferr); Buffer *buf = array_get(®->values, slot); if (!buf) return NULL; @@ -151,10 +148,9 @@ bool register_slot_put_range(Vis *vis, Register *reg, size_t slot, Text *txt, Fi } case REGISTER_CLIPBOARD: { - Buffer buferr; + Buffer buferr = {0}; const char *cmd[] = { VIS_CLIPBOARD, "--copy", "--selection", NULL, NULL }; enum VisRegister id = reg - vis->registers; - buffer_init(&buferr); if (id == VIS_REG_PRIMARY) cmd[3] = "primary"; diff --git a/vis.c b/vis.c index 0322746f9..0f2e32564 100644 --- a/vis.c +++ b/vis.c @@ -587,7 +587,7 @@ Vis *vis_new(void) { array_init(&vis->bindings); array_init(&vis->actions_user); action_reset(&vis->action); - buffer_init(&vis->input_queue); + vis->input_queue = (Buffer){0}; if (!(vis->command_file = file_new_internal(vis, NULL))) goto err; if (!(vis->search_file = file_new_internal(vis, NULL))) @@ -1167,8 +1167,7 @@ static void vis_keys_process(Vis *vis, size_t pos) { void vis_keys_feed(Vis *vis, const char *input) { if (!input) return; - Macro macro; - macro_init(¯o); + Macro macro = {0}; if (!macro_append(¯o, input)) return; /* use internal function, to keep Lua based tests which use undo points working */ @@ -1855,9 +1854,7 @@ int vis_pipe_buf(Vis *vis, const char* buf, const char *argv[], } static int _vis_pipe_collect(Vis *vis, File *file, Filerange *range, const char* buf, const char *argv[], char **out, char **err, bool fullscreen) { - Buffer bufout, buferr; - buffer_init(&bufout); - buffer_init(&buferr); + Buffer bufout = {0}, buferr = {0}; int status = _vis_pipe(vis, file, range, buf, argv, &bufout, out ? read_into_buffer : NULL, &buferr, err ? read_into_buffer : NULL,