diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-12-06 17:20:52 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-12-06 17:20:52 +0300 |
commit | e5884ab2166ab5a03294baa54601b8785e6d9727 (patch) | |
tree | 0013120eed3e407cd047b734082d7011b9bab94f /src/error.h | |
parent | c4e73ae7ef24796cf1f24f0c30d93f2ab21a4572 (diff) | |
download | sciteco-e5884ab2166ab5a03294baa54601b8785e6d9727.tar.gz |
support the ::S anchored search (string comparison) command (and ::FD, ::FR, ::FS as well)
* The colon modifier can now occur 2 times.
Specifying `@` more than once or `:` more than twice is an error now.
* Commands do not check for excess colon modifiers - almost every command would have
to check it. Instead, a double colon will simply behave like a single colon on most
commands.
* All search commands inherit the anchored semantics, but it's not very useful in some combinations
like -::S, ::N or ::FK.
That's why the `::` variants are not documented everywhere.
* The lexer.checkheader macro could be simplified and should also be faster now,
speeding up startup.
Eventually this macro can be made superfluous, e.g. by using 1:FB or 0,1^Q::S.
Diffstat (limited to 'src/error.h')
-rw-r--r-- | src/error.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/error.h b/src/error.h index 2df7b89..c51f528 100644 --- a/src/error.h +++ b/src/error.h @@ -39,6 +39,7 @@ typedef enum { * They will mainly be different in their error message. */ TECO_ERROR_SYNTAX, + TECO_ERROR_MODIFIER, TECO_ERROR_ARGEXPECTED, TECO_ERROR_CODEPOINT, TECO_ERROR_MOVE, @@ -74,6 +75,13 @@ teco_error_syntax_set(GError **error, gunichar chr) } static inline void +teco_error_modifier_set(GError **error, gchar modifier) +{ + g_set_error(error, TECO_ERROR, TECO_ERROR_MODIFIER, + "Excess \"%c\"-modifier", modifier); +} + +static inline void teco_error_argexpected_set(GError **error, const gchar *cmd) { g_set_error(error, TECO_ERROR, TECO_ERROR_ARGEXPECTED, |