From b146ccd7a7513b910affd86848c704d600df3090 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sat, 31 Aug 2024 23:01:42 +0200 Subject: avoid redunancies between teco_qreg_plain_get_character() and teco_state_start_get() (refs #5) --- src/core-commands.c | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) (limited to 'src/core-commands.c') diff --git a/src/core-commands.c b/src/core-commands.c index 951e001..98097bb 100644 --- a/src/core-commands.c +++ b/src/core-commands.c @@ -1045,32 +1045,7 @@ teco_state_start_get(teco_machine_main_t *ctx, GError **error) return; } - teco_int_t ret; - - if (teco_interface_ssm(SCI_GETCODEPAGE, 0, 0) == SC_CP_UTF8) { - gchar buf[4+1]; - struct Sci_TextRangeFull range = { - .chrg = {get_pos, MIN(len, get_pos+sizeof(buf)-1)}, - .lpstrText = buf - }; - /* - * Probably faster than SCI_GETRANGEPOINTER+SCI_GETGAPPOSITION - * or repeatedly calling SCI_GETCHARAT. - */ - teco_interface_ssm(SCI_GETTEXTRANGEFULL, 0, (sptr_t)&range); - /* - * Make sure that the -1/-2 error values are preserved. - * The sign bit in UCS-4/UTF-32 is unused, so this will even - * suffice if TECO_INTEGER == 32. - */ - ret = (gint32)g_utf8_get_char_validated(buf, -1); - } else { - // FIXME: Everything else is a single-byte encoding? - /* internally, the character is casted to signed char */ - ret = (guchar)teco_interface_ssm(SCI_GETCHARAT, get_pos, 0); - } - - teco_expressions_push(ret); + teco_expressions_push(teco_interface_get_character(get_pos, len)); } static teco_state_t * -- cgit v1.2.3