From: Lady <redacted>
Date: Fri, 19 Jan 2024 04:37:15 +0000 (-0500)
Subject: Use absolute file: u·r·i’s in catalogs
X-Git-Tag: 0.4.1~1
X-Git-Url: https://git.ladys.computer/Shushe/commitdiff_plain/59bb51a638838ad413a4c89fb773df233aedb3b6?ds=sidebyside;hp=1957c42bb6ffddd0f2fb1c66840f3093d81763c6

Use absolute file: u·r·i’s in catalogs

The previous approach broke some things when parsers/transforms were
located in a subdirectory.
---

diff --git a/GNUmakefile b/GNUmakefile
index a272f9a..f59c4d5 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -458,7 +458,7 @@ $(BUILDDIR)/magic.mgc: $(wildcard $(MAGICDIR)/*)
 $(BUILDDIR)/parser.catalog: $(PARSERS)
 	@$(ECHO) "Generating catalog of parsers…"
 	$(silent)$(XMLCATALOG) --create --noout $(call quote,$@)
-	$(foreach parser,$(PARSERS),$(silent)$(XMLCATALOG) --add uri $(call quote,$(call id,$(parser),parser)) $(call quote,$(call pathenc,../$(parser))) --noout $(call quote,$@)$(newline))
+	$(foreach parser,$(PARSERS),$(silent)$(XMLCATALOG) --add uri $(call quote,$(call id,$(parser),parser)) $(call quote,file:///$(call pathenc,$(abspath $(parser)))) --noout $(call quote,$@)$(newline))
 $(BUILDDIR)/parser.xslt: $(BUILDDIR)/parser.catalog $(THISDIR)/lib/catalog2parser.xslt
 	@$(ECHO) "Generating main parser…"
 	$(silent)$(XSLTPROC) -o $(call quote,$@) $(call quote,$(THISDIR)/lib/catalog2parser.xslt) $(call quote,$<)
@@ -478,7 +478,7 @@ $(call parsed,$(sourcefiles) $(sourceincludes)): %: $$(call unparsed,$$@) $(type
 $(BUILDDIR)/catalog: $(sourcefiles) $(sourceincludes) $(typeupdates)
 	@$(ECHO) "Generating catalog of parsed files…"
 	$(silent)$(XMLCATALOG) --create --noout $(call quote,$@)
-	$(foreach source,$(sourcefiles) $(sourceincludes),$(silent)$(XMLCATALOG) --add uri $(call quote,$(call localuri,$(source))) $(call quote,$(call pathenc,$(patsubst $(BUILDDIR)/%,%,$(call parsed,$(source))))#$(if $(filter $(source),$(assetfiles)),asset,xml)) --noout $(call quote,$@)$(newline))
+	$(foreach source,$(sourcefiles) $(sourceincludes),$(silent)$(XMLCATALOG) --add uri $(call quote,$(call localuri,$(source))) $(call quote,file:///$(call pathenc,$(abspath $(call parsed,$(source))))#$(if $(filter $(source),$(assetfiles)),asset,xml)) --noout $(call quote,$@)$(newline))
 
 # Build a list of dependencies for each parsed file.
 $(BUILDDIR)/dependencies: $(BUILDDIR)/catalog $(call parsed,$(plaintextfiles) $(xmlfiles)) $(THISDIR)/lib/catalog2dependencies.xslt
@@ -496,7 +496,7 @@ $(BUILDDIR)/destinations: $(BUILDDIR)/catalog $(call parsed,$(filter-out $(asset
 $(BUILDDIR)/transform.catalog: $(TRANSFORMS)
 	@$(ECHO) "Generating catalog of transforms…"
 	$(silent)$(XMLCATALOG) --create --noout $(call quote,$@)
-	$(foreach transform,$(TRANSFORMS),$(silent)$(XMLCATALOG) --add uri $(call quote,$(call id,$(transform),transform)) $(call quote,$(call pathenc,../$(transform))) --noout $(call quote,$@)$(newline))
+	$(foreach transform,$(TRANSFORMS),$(silent)$(XMLCATALOG) --add uri $(call quote,$(call id,$(transform),transform)) $(call quote,file:///$(call pathenc,$(abspath $(transform)))) --noout $(call quote,$@)$(newline))
 $(BUILDDIR)/transform.xslt: $(BUILDDIR)/transform.catalog $(THISDIR)/lib/catalog2transform.xslt
 	@$(ECHO) "Generating main transform…"
 	$(silent)$(XSLTPROC) -o $(call quote,$@) $(call quote,$(THISDIR)/lib/catalog2transform.xslt) $(call quote,$<)