aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/error.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-12-06 17:20:52 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-12-06 17:20:52 +0300
commite5884ab2166ab5a03294baa54601b8785e6d9727 (patch)
tree0013120eed3e407cd047b734082d7011b9bab94f /src/error.h
parentc4e73ae7ef24796cf1f24f0c30d93f2ab21a4572 (diff)
downloadsciteco-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.h8
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,