From 121cca61bedf24ba428e019f23b3bbb7160ce162 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Fri, 21 Mar 2025 13:21:02 +0300 Subject: don't use TECO_DEFINE_UNDO_OBJECT_OWN() for what are essentially scalars * The "own" objects are tricky to work with and have special requirements, so try to avoid them. * Also, wrap the push functions in macros like all other scalars. * This is a purely cosmetic change, but avoids some confusion. --- src/search.c | 11 ++++++++--- src/symbols.c | 11 ++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/search.c b/src/search.c index 3b2ebe3..13fb135 100644 --- a/src/search.c +++ b/src/search.c @@ -45,7 +45,11 @@ typedef struct { teco_buffer_t *from_buffer, *to_buffer; } teco_search_parameters_t; -TECO_DEFINE_UNDO_OBJECT_OWN(parameters, teco_search_parameters_t, /* don't delete */); +/* FIXME: Could be static. */ +TECO_DEFINE_UNDO_SCALAR(teco_search_parameters_t); + +#define teco_undo_search_parameters(VAR) \ + (*teco_undo_object_teco_search_parameters_t_push(&(VAR))) /* * FIXME: Global state should be part of teco_machine_main_t @@ -99,7 +103,7 @@ teco_state_search_initial(teco_machine_main_t *ctx, GError **error) teco_machine_stringbuilding_set_codepage(&ctx->expectstring.machine, teco_interface_get_codepage()); - teco_undo_object_parameters_push(&teco_search_parameters); + teco_undo_search_parameters(teco_search_parameters); teco_search_parameters.dot = teco_interface_ssm(SCI_GETCURRENTPOS, 0, 0); teco_int_t v1, v2; @@ -538,6 +542,7 @@ teco_pattern2regexp(teco_string_t *pattern, teco_machine_qregspec_t *qreg_machin return g_steal_pointer(&re.data) ? : g_strdup(""); } +/* FIXME: Could be static. */ TECO_DEFINE_UNDO_OBJECT_OWN(ranges, teco_range_t *, g_free); #define teco_undo_ranges_own(VAR) \ @@ -944,7 +949,7 @@ teco_state_search_all_initial(teco_machine_main_t *ctx, GError **error) teco_machine_stringbuilding_set_codepage(&ctx->expectstring.machine, teco_interface_get_codepage()); - teco_undo_object_parameters_push(&teco_search_parameters); + teco_undo_search_parameters(teco_search_parameters); teco_search_parameters.dot = teco_interface_ssm(SCI_GETCURRENTPOS, 0, 0); teco_int_t v1, v2; diff --git a/src/symbols.c b/src/symbols.c index 7dcc601..52dfd1f 100644 --- a/src/symbols.c +++ b/src/symbols.c @@ -43,10 +43,11 @@ teco_symbol_list_t teco_symbol_list_scintilla = {NULL, 0}; teco_symbol_list_t teco_symbol_list_scilexer = {NULL, 0}; -/* - * FIXME: Could be static. - */ -TECO_DEFINE_UNDO_OBJECT_OWN(scintilla_message, teco_machine_scintilla_t, /* don't delete */); +/* FIXME: Could be static. */ +TECO_DEFINE_UNDO_SCALAR(teco_machine_scintilla_t); + +#define teco_undo_scintilla_message(VAR) \ + (*teco_undo_object_teco_machine_scintilla_t_push(&(VAR))) /** @memberof teco_symbol_list_t */ void @@ -222,7 +223,7 @@ teco_state_scintilla_symbols_done(teco_machine_main_t *ctx, const teco_string_t * undo methods for the Scintilla types. */ if (ctx->parent.must_undo) - teco_undo_object_scintilla_message_push(&ctx->scintilla); + teco_undo_scintilla_message(ctx->scintilla); memset(&ctx->scintilla, 0, sizeof(ctx->scintilla)); if ((str->len > 0 && !teco_scintilla_parse_symbols(&ctx->scintilla, str, error)) || -- cgit v1.2.3