diff options
| author | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-08-23 00:28:23 +0200 |
|---|---|---|
| committer | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-08-23 00:28:23 +0200 |
| commit | 32122651bdb51006edce2be3586dd09179bed52f (patch) | |
| tree | 6fa0bb17ec74693e25eebe8e05a9e04828c3c446 /src/search.c | |
| parent | 2e097cec409182c3cb39b74489387480bf8a278f (diff) | |
introduced helper functions teco_qreg_table_get_string() and teco_qreg_table_get_integer()
* Simplifies the common task of querying an integer or string from a Q-Register table.
* Undefined Q-Regs are reported as TECO_ERROR_QREGUNDEF, so you can theoretically
handle this case. In practice however, it requires less boilerplating to
just call teco_qreg_table_find() manually.
* It also doesn't make sense to use these functions when getting and setting
a register at the same time as you will want to avoid repeated lookups.
Diffstat (limited to 'src/search.c')
| -rw-r--r-- | src/search.c | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/src/search.c b/src/search.c index 357a0c0..2b2a696 100644 --- a/src/search.c +++ b/src/search.c @@ -928,10 +928,9 @@ teco_state_search_process(teco_machine_main_t *ctx, teco_string_t str, gsize new { gint cflags = REG_ADVANCED; - teco_qreg_t *reg = teco_qreg_table_find(ctx->qreg_table_locals, "\x18", 1); /* ^X */ - g_assert(reg != NULL); teco_bool_t search_mode; - if (!reg->vtable->get_integer(reg, &search_mode, error)) + if (!teco_qreg_table_get_integer(ctx->qreg_table_locals, "\x18", /* ^X */ + &search_mode, error)) return FALSE; if (teco_is_failure(search_mode)) cflags |= REG_ICASE; @@ -1344,12 +1343,9 @@ teco_state_search_kill_done(teco_machine_main_t *ctx, teco_string_t str, GError if (ctx->flags.mode > TECO_MODE_NORMAL) return &teco_state_start; - teco_qreg_t *search_reg = teco_qreg_table_find(&teco_qreg_table_globals, "_", 1); - g_assert(search_reg != NULL); - teco_int_t search_state; if (!teco_state_search_done(ctx, str, error) || - !search_reg->vtable->get_integer(search_reg, &search_state, error)) + !teco_qreg_table_get_integer(&teco_qreg_table_globals, "_", &search_state, error)) return NULL; if (teco_is_failure(search_state)) @@ -1433,12 +1429,9 @@ teco_state_search_delete_done(teco_machine_main_t *ctx, teco_string_t str, GErro if (ctx->flags.mode > TECO_MODE_NORMAL) return &teco_state_start; - teco_qreg_t *search_reg = teco_qreg_table_find(&teco_qreg_table_globals, "_", 1); - g_assert(search_reg != NULL); - teco_int_t search_state; if (!teco_state_search_done(ctx, str, error) || - !search_reg->vtable->get_integer(search_reg, &search_state, error)) + !teco_qreg_table_get_integer(&teco_qreg_table_globals, "_", &search_state, error)) return NULL; if (teco_is_success(search_state)) { @@ -1519,12 +1512,9 @@ teco_state_replace_done(teco_machine_main_t *ctx, teco_string_t str, GError **er if (ctx->flags.mode > TECO_MODE_NORMAL) return &teco_state_replace_ignore; - teco_qreg_t *search_reg = teco_qreg_table_find(&teco_qreg_table_globals, "_", 1); - g_assert(search_reg != NULL); - teco_int_t search_state; if (!teco_state_search_delete_done(ctx, str, error) || - !search_reg->vtable->get_integer(search_reg, &search_state, error)) + !teco_qreg_table_get_integer(&teco_qreg_table_globals, "_", &search_state, error)) return NULL; return teco_is_success(search_state) ? &teco_state_replace_insert @@ -1627,12 +1617,9 @@ teco_state_replace_default_done(teco_machine_main_t *ctx, teco_string_t str, GEr if (ctx->flags.mode > TECO_MODE_NORMAL) return &teco_state_replace_default_ignore; - teco_qreg_t *search_reg = teco_qreg_table_find(&teco_qreg_table_globals, "_", 1); - g_assert(search_reg != NULL); - teco_int_t search_state; if (!teco_state_search_delete_done(ctx, str, error) || - !search_reg->vtable->get_integer(search_reg, &search_state, error)) + !teco_qreg_table_get_integer(&teco_qreg_table_globals, "_", &search_state, error)) return NULL; return teco_is_success(search_state) ? &teco_state_replace_default_insert |
