diff options
Diffstat (limited to 'src/qreg.h')
-rw-r--r-- | src/qreg.h | 31 |
1 files changed, 19 insertions, 12 deletions
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2023 Robin Haberkorn + * Copyright (C) 2012-2024 Robin Haberkorn * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -41,19 +41,26 @@ extern teco_view_t *teco_qreg_view; * FIXME: Use TECO_DECLARE_VTABLE_METHOD(gboolean, teco_qreg, set_integer, teco_qreg_t *, teco_int_t, GError **); * ... * teco_qreg_set_integer_t set_integer; + * ... + * teco_qreg_set_integer(qreg, 23, error); */ typedef const struct { gboolean (*set_integer)(teco_qreg_t *qreg, teco_int_t value, GError **error); gboolean (*undo_set_integer)(teco_qreg_t *qreg, GError **error); gboolean (*get_integer)(teco_qreg_t *qreg, teco_int_t *ret, GError **error); - gboolean (*set_string)(teco_qreg_t *qreg, const gchar *str, gsize len, GError **error); + gboolean (*set_string)(teco_qreg_t *qreg, const gchar *str, gsize len, + guint codepage, GError **error); gboolean (*undo_set_string)(teco_qreg_t *qreg, GError **error); gboolean (*append_string)(teco_qreg_t *qreg, const gchar *str, gsize len, GError **error); gboolean (*undo_append_string)(teco_qreg_t *qreg, GError **error); - gboolean (*get_string)(teco_qreg_t *qreg, gchar **str, gsize *len, GError **error); - gint (*get_character)(teco_qreg_t *qreg, guint position, GError **error); + gboolean (*get_string)(teco_qreg_t *qreg, gchar **str, gsize *len, + guint *codepage, GError **error); + gboolean (*get_character)(teco_qreg_t *qreg, teco_int_t position, + teco_int_t *chr, GError **error); + /* always returns length in glyphs in contrast to get_string() */ + teco_int_t (*get_length)(teco_qreg_t *qreg, GError **error); /* * These callbacks exist only to optimize teco_qreg_stack_push|pop() @@ -65,6 +72,13 @@ typedef const struct { gboolean (*edit)(teco_qreg_t *qreg, GError **error); gboolean (*undo_edit)(teco_qreg_t *qreg, GError **error); + + /* + * Load and save already care about undo token + * creation. + */ + gboolean (*load)(teco_qreg_t *qreg, const gchar *filename, GError **error); + gboolean (*save)(teco_qreg_t *qreg, const gchar *filename, GError **error); } teco_qreg_vtable_t; /** @extends teco_rb3str_head_t */ @@ -106,13 +120,6 @@ gboolean teco_qreg_execute(teco_qreg_t *qreg, teco_qreg_table_t *qreg_table_loca void teco_qreg_undo_set_eol_mode(teco_qreg_t *qreg); void teco_qreg_set_eol_mode(teco_qreg_t *qreg, gint mode); -/* - * Load and save already care about undo token - * creation. - */ -gboolean teco_qreg_load(teco_qreg_t *qreg, const gchar *filename, GError **error); -gboolean teco_qreg_save(teco_qreg_t *qreg, const gchar *filename, GError **error); - /** @memberof teco_qreg_t */ static inline void teco_qreg_free(teco_qreg_t *qreg) @@ -220,7 +227,7 @@ void teco_machine_qregspec_reset(teco_machine_qregspec_t *ctx); */ struct teco_machine_stringbuilding_t *teco_machine_qregspec_get_stringbuilding(teco_machine_qregspec_t *ctx); -teco_machine_qregspec_status_t teco_machine_qregspec_input(teco_machine_qregspec_t *ctx, gchar chr, +teco_machine_qregspec_status_t teco_machine_qregspec_input(teco_machine_qregspec_t *ctx, gunichar chr, teco_qreg_t **result, teco_qreg_table_t **result_table, GError **error); |