diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-15 12:11:02 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-15 12:11:02 +0000 |
| commit | 7411d71fbde5d652f04cc8851ed93bd15513968b (patch) | |
| tree | 2fe1e8fa9a604dc558a0528d8f465bef8b597aab /src/parser/parser_stmt.c | |
| parent | 1925cf6f1a8c134cbfae728023ac325f03e4c14f (diff) | |
Some docs for plugins, among other things.
Diffstat (limited to 'src/parser/parser_stmt.c')
| -rw-r--r-- | src/parser/parser_stmt.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/parser/parser_stmt.c b/src/parser/parser_stmt.c index 227b5aa..24dfa10 100644 --- a/src/parser/parser_stmt.c +++ b/src/parser/parser_stmt.c @@ -3551,6 +3551,22 @@ ASTNode *parse_import(ParserContext *ctx, Lexer *l) strncpy(plugin_name, plugin_tok.start + 1, name_len); plugin_name[name_len] = '\0'; + if (plugin_name[0] == '.' && + (plugin_name[1] == '/' || (plugin_name[1] == '.' && plugin_name[2] == '/'))) + { + char *current_dir = xstrdup(g_current_filename); + char *last_slash = strrchr(current_dir, '/'); + if (last_slash) + { + *last_slash = 0; + char resolved_path[1024]; + snprintf(resolved_path, sizeof(resolved_path), "%s/%s", current_dir, plugin_name); + free(plugin_name); + plugin_name = xstrdup(resolved_path); + } + free(current_dir); + } + // Check for optional "as alias" char *alias = NULL; Token as_tok = lexer_peek(l); |
