summaryrefslogtreecommitdiff
path: root/Build/source/texk/kpathsea/cnf-to-paths.awk
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/kpathsea/cnf-to-paths.awk')
-rw-r--r--Build/source/texk/kpathsea/cnf-to-paths.awk19
1 files changed, 14 insertions, 5 deletions
diff --git a/Build/source/texk/kpathsea/cnf-to-paths.awk b/Build/source/texk/kpathsea/cnf-to-paths.awk
index 755a5c30d14..faae308cb4a 100644
--- a/Build/source/texk/kpathsea/cnf-to-paths.awk
+++ b/Build/source/texk/kpathsea/cnf-to-paths.awk
@@ -10,20 +10,25 @@
# (whitespace around the = is optional)
#
/^[ \t]*[A-Z0-9_]+[ \t]*=/ {
- # On these lines, there are two cases:
+ # On these lines, we distinguish three cases:
#
# 1) definitions referring to SELFAUTO*, which we want to keep. In
# particular, this is how the compile-time TEXMFCNF gets defined and
# thus how texmf.cnf gets found.
#
- # 2) all the others, which we want to convert to a constant
- # /nonesuch. That way, the binaries don't get change just because we
- # change definitions in texmf.cnf.
+ # 2) definitions starting with a /, which we also want to keep. Here
+ # we assume a distro maintainer has changed a variable, e.g.,
+ # TEXMFMAIN=/usr/share/texmf, so keep it. (This also preserves the
+ # default values for OSFONTDIR and TRFONTS, but that's ok.)
+ #
+ # 3) anything else, which we want to convert to a constant /nonesuch.
+ # That way, the binaries don't get changed just because we change
+ # definitions in texmf.cnf.
#
# The definition of DEFAULT_TEXMF (and other variables)
# that winds up in the final paths.h will not be used.
- # Let's extract the identifier and the value from the line. Since
+ # Extract the identifier and the value from the line. Since
# gawk's subexpression matching is an extension, do it with copies.
ident = $0;
sub(/^[ \t]*/, "", ident);
@@ -38,6 +43,10 @@
# Replace all semicolons with colons in the SELFAUTO paths we're keeping.
# (The path-splitting code should be changed to understand both.)
gsub(/;/, ":", val);
+ } else if (val ~ /^\//) {
+ # If the value starts with /, presume we're compiling with changes
+ # made for a distro, and keep it. Likewise switch to :.
+ gsub(/;/, ":", val);
} else {
val = "/nonesuch";
}