summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-13 14:40:00 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-13 14:40:00 +0000
commit8fc9c88304fde65d6c3a619c3aee7e6e00540695 (patch)
tree0e370a3c0a6610028234f1f0da22c1c4ac732699
parentedb3d8013e62dbdc1f093a8781f1833e11dfbdda (diff)
Added a few fixes to #34
-rw-r--r--Makefile7
-rw-r--r--src/utils/utils.c23
2 files changed, 30 insertions, 0 deletions
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
@@ -490,6 +490,29 @@ 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;
}
fseek(f, 0, SEEK_END);