From 4689f3f38277bb64981fc960e8e384e2d065d659 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Wed, 15 Oct 2025 17:13:05 +0200 Subject: Make it work again on OpenBSD - Some unused variables - Fix zero window size under lldb - Make instantiation of languages more robust --- src/dged/syntax.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/dged/syntax.c') diff --git a/src/dged/syntax.c b/src/dged/syntax.c index 67ab3a2..5d9aeaa 100644 --- a/src/dged/syntax.c +++ b/src/dged/syntax.c @@ -567,7 +567,16 @@ static void create_parser(struct buffer *buffer, void *userdata) { struct highlight *hl = (struct highlight *)calloc(1, sizeof(struct highlight)); hl->parser = ts_parser_new(); - ts_parser_set_language(hl->parser, langsym()); + struct TSLanguage *lang = langsym(); + if (!ts_parser_set_language(hl->parser, lang)) { + message("failed to assign language to parser, abi version %d, lib version: " + "%d, min compatible lib version: %d", + ts_language_version(lang), TREE_SITTER_LANGUAGE_VERSION, + TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION); + ts_parser_delete(hl->parser); + free((void *)lang_root); + return; + } TSInput i = (TSInput){ .payload = buffer->text, @@ -575,6 +584,11 @@ static void create_parser(struct buffer *buffer, void *userdata) { .encoding = TSInputEncodingUTF8, }; hl->tree = ts_parser_parse(hl->parser, NULL, i); + if (hl->tree == NULL) { + ts_parser_delete(hl->parser); + free((void *)lang_root); + return; + } hl->query = setup_queries(lang_root, hl->tree); if (hl->query == NULL) { -- cgit v1.2.3