чување 6e213bbbabdad5f6f27699746c09f215ad1b84b2
родитељ dc15ee3c8c4ea2ccc7062be04ea8dbbda8ab2a39
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Mon, 1 Jul 2024 14:16:54 +0200
draw.[ch](init_drawstate): Add skip_filenames_init parameter
Diffstat:
измењених датотека: 2, додавања: 19(+), брисања: 14(-)
diff --git a/draw.c b/draw.c
@@ -593,6 +593,7 @@ free_drawstate(struct DrawState* state, const int skip_paste_free,
ssize_t row = 0;
for (row = 0; row < state->buffer_size; row++)
free_bufferline(state->buffer + row);
+ free(state->buffer);
if (!skip_filename_free)
{
free(state->backup_filename);
@@ -600,7 +601,6 @@ free_drawstate(struct DrawState* state, const int skip_paste_free,
free(state->filename);
free(state->orig_real_filename);
}
- free(state->buffer);
if (!skip_paste_free)
{
for (row = 0; row < state->paste_size; row++)
@@ -632,19 +632,23 @@ init_coord(struct Coord* c, const int col, const int row)
void
init_drawstate(struct DrawState* state, char* error, char* action,
- char* filename, char* prompt, int skip_paste_and_mode_init)
+ char* filename, char* prompt, const int skip_paste_and_mode_init,
+ const int skip_filenames_init)
{
- state->error = error;
- state->action = action;
- state->filename = filename;
- state->real_filename = NULL;
- state->orig_real_filename = NULL;
- state->backup_filename = NULL;
- state->rfn_len = 0;
- state->input = NULL;
- state->search = NULL;
- state->chain_dialog = 0;
- state->buffer = NULL;
+ state->error = error;
+ state->action = action;
+ if (!skip_filenames_init)
+ {
+ state->filename = filename;
+ state->real_filename = NULL;
+ state->orig_real_filename = NULL;
+ state->backup_filename = NULL;
+ state->rfn_len = 0;
+ }
+ state->input = NULL;
+ state->search = NULL;
+ state->chain_dialog = 0;
+ state->buffer = NULL;
init_coord(&state->coord, 0, 0);
state->display_column = 0;
init_coord(&state->first_shown, 0, 0);
diff --git a/draw.h b/draw.h
@@ -138,7 +138,8 @@ void free_drawstate(struct DrawState* state, const int skip_paste_free,
void init_bufferline(struct BufferLine* bl);
void init_coord(struct Coord* c, const int col, const int row);
void init_drawstate(struct DrawState* state, char* error, char* action,
- char* filename, char* prompt, int skip_paste_and_mode_init);
+ char* filename, char* prompt, const int skip_paste_and_mode_init,
+ const int skip_filenames_init);
void recalculate_size(struct DrawState* state);
void redraw_status(struct DrawState* state);
void u32_draw_string(const int x, const int y, const uint16_t fg,