From 41ab5cf0289dab60ac1ddc97cf9680ee2468ea6c Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 9 Sep 2024 00:03:33 +0200 Subject: Xq and ]q inherit the document encoding from the source document (refs #5) * ^Uq however always sets an UTF8 register as the source is supposed to be a SciTECO macro which is always UTF-8. * :^Uq preserves the register's encoding * teco_doc_set_string() now also sets the encoding * instead of trying to restore the encoding in teco_doc_undo_set_string(), we now swap out the document in a teco_doc_t and pass it to an undo token. * The get_codepage() Q-Reg method has been removed as the same can now be done with teco_doc_get_string() and the get_string() method. --- src/glob.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/glob.c') diff --git a/src/glob.c b/src/glob.c index 050ec4d..2c955ee 100644 --- a/src/glob.c +++ b/src/glob.c @@ -318,7 +318,8 @@ teco_state_glob_pattern_done(teco_machine_main_t *ctx, const teco_string_t *str, teco_qreg_t *glob_reg = teco_qreg_table_find(&teco_qreg_table_globals, "_", 1); g_assert(glob_reg != NULL); if (!glob_reg->vtable->undo_set_string(glob_reg, error) || - !glob_reg->vtable->set_string(glob_reg, filename, strlen(filename), error)) + !glob_reg->vtable->set_string(glob_reg, filename, strlen(filename), + SC_CP_UTF8, error)) return NULL; } @@ -493,7 +494,8 @@ teco_state_glob_filename_done(teco_machine_main_t *ctx, const teco_string_t *str teco_qreg_t *glob_reg = teco_qreg_table_find(&teco_qreg_table_globals, "_", 1); g_assert(glob_reg != NULL); g_auto(teco_string_t) pattern_str = {NULL, 0}; - if (!glob_reg->vtable->get_string(glob_reg, &pattern_str.data, &pattern_str.len, error)) + if (!glob_reg->vtable->get_string(glob_reg, &pattern_str.data, &pattern_str.len, + NULL, error)) return NULL; if (teco_string_contains(&pattern_str, '\0')) { teco_error_qregcontainsnull_set(error, "_", 1, FALSE); -- cgit v1.2.3