From 05adfb3de961fe6808bd5fda659e9a64e40c8ea8 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Wed, 6 Dec 2023 15:14:35 +0100 Subject: [PATCH] WIP: path resolution for include and incbin --- include/ulas.h | 6 ++++++ src/ulas.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/ulas.h b/include/ulas.h index ba27aee..48ea0ea 100644 --- a/include/ulas.h +++ b/include/ulas.h @@ -230,6 +230,10 @@ struct ulas { // internal counter // used whenever a new unique number might be needed int icntr; + + // all include search paths + char **include_paths; + int include_paths_len; }; extern struct ulas ulas; @@ -407,6 +411,8 @@ extern struct ulas_config ulascfg; struct ulas_config ulas_cfg_from_env(void); void ulas_init(struct ulas_config cfg); void ulas_free(void); +void ulas_pushincpath(const char *path); +FILE* ulas_incpathfopen(const char *path, const char *mode); int ulas_main(struct ulas_config cfg); diff --git a/src/ulas.c b/src/ulas.c index ea96dc8..47c3227 100644 --- a/src/ulas.c +++ b/src/ulas.c @@ -60,6 +60,18 @@ void ulas_free(void) { ulas_exprbuffree(&ulas.exprs); ulas_symbuffree(&ulas.syms); ulas_preprocfree(&ulas.pp); + + if (ulas.include_paths) { + for (int i = 0; i < ulas.include_paths_len; i++) { + free(ulas.include_paths[i]); + } + free(ulas.include_paths); + } +} + +void ulas_pushincpath(const char *path) {} +FILE* ulas_incpathfopen(const char *path, const char *mode) { + return NULL; } int ulas_icntr(void) { return ulas.icntr++; } -- 2.30.2