aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-03-03 15:18:15 -0500
committerBruce Hill <bruce@bruce-hill.com>2024-03-03 15:18:15 -0500
commitb8640a2c307effcc44d86e51ce63efe349feebb4 (patch)
tree5a5efde14f5aaa9a8b8308cac45f25db03b297ba
parent2a7cfd7c3665c441c25094c12bde02ddc565061c (diff)
Bugfix for module name parsing
-rw-r--r--compile.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/compile.c b/compile.c
index 31e451be..48d0a9ea 100644
--- a/compile.c
+++ b/compile.c
@@ -1083,11 +1083,13 @@ module_code_t compile_file(ast_t *ast)
CORD_appendf(&env->code->main, "%r\n", code);
}
- const char *name = strrchr(ast->file->filename, '/');
- name = name ? name : ast->file->filename;
+ const char *slash = strrchr(ast->file->filename, '/');
+ const char *name = slash ? slash+1 : ast->file->filename;
size_t name_len = 0;
while (name[name_len] && (isalnum(name[name_len]) || name[name_len] == '_'))
++name_len;
+ if (name_len == 0)
+ errx(1, "No module name found for: %s", ast->file->filename);
const char *module_name = heap_strn(name, name_len);
return (module_code_t){