From 8fc9c88304fde65d6c3a619c3aee7e6e00540695 Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Tue, 13 Jan 2026 14:40:00 +0000 Subject: Added a few fixes to #34 --- Makefile | 7 +++++++ src/utils/utils.c | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Makefile b/Makefile index 0b62685..f0aec07 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ OBJS = $(patsubst %.c, $(OBJ_DIR)/%.o, $(SRCS)) PREFIX = /usr/local BINDIR = $(PREFIX)/bin MANDIR = $(PREFIX)/share/man/man1 +SHAREDIR = $(PREFIX)/share/zenc # Default target all: $(TARGET) @@ -64,13 +65,19 @@ install: $(TARGET) install -d $(MANDIR) # Install man page if it exists test -f man/zc.1 && install -m 644 man/zc.1 $(MANDIR)/zc.1 || true + # Install standard library + install -d $(SHAREDIR) + cp -r std $(SHAREDIR)/ @echo "=> Installed to $(BINDIR)/$(TARGET)" + @echo "=> Standard library installed to $(SHAREDIR)/std" # Uninstall uninstall: rm -f $(BINDIR)/$(TARGET) rm -f $(MANDIR)/zc.1 + rm -rf $(SHAREDIR) @echo "=> Uninstalled from $(BINDIR)/$(TARGET)" + @echo "=> Removed $(SHAREDIR)" # Clean clean: diff --git a/src/utils/utils.c b/src/utils/utils.c index 5f41f44..2645b49 100644 --- a/src/utils/utils.c +++ b/src/utils/utils.c @@ -488,6 +488,29 @@ void warn_null_pointer(Token t, const char *expr) char *load_file(const char *fn) { FILE *f = fopen(fn, "rb"); + if (!f) + { + char *root = getenv("ZC_ROOT"); + if (root) + { + char path[1024]; + snprintf(path, sizeof(path), "%s/%s", root, fn); + f = fopen(path, "rb"); + } + } + if (!f) + { + char path[1024]; + snprintf(path, sizeof(path), "/usr/local/share/zenc/%s", fn); + f = fopen(path, "rb"); + } + if (!f) + { + char path[1024]; + snprintf(path, sizeof(path), "/usr/share/zenc/%s", fn); + f = fopen(path, "rb"); + } + if (!f) { return 0; -- cgit v1.2.3