sled

Једноставни уређивач текста
git clone https://git.sr.ht/~strahinja/sled
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 6e213bbbabdad5f6f27699746c09f215ad1b84b2
родитељ dc15ee3c8c4ea2ccc7062be04ea8dbbda8ab2a39
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Mon,  1 Jul 2024 14:16:54 +0200

draw.[ch](init_drawstate): Add skip_filenames_init parameter

Diffstat:
Mdraw.c | 30+++++++++++++++++-------------
Mdraw.h | 3++-
измењених датотека: 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,