texlive/combine.nix: fix bugs in languages filter
Initial language.{dat,def} configuration files provided by `texlive.hyphen-base` may declare languages that were not part of the combined packages. Those are filtered out by a sed script that had few problems: 1) The sed script was generated from a list of potentially non-unique packages. Every repetition of a select and print clause would produce a copy of a language declaration in the output file. This became a problem for update to the 2018-final, the fmtutil would crash from too much German hyphenation. 2) The select clauses were ambiguous: both '^% from hyphen' and '^% from hyphen-welsh' will match a line 'from hyphen-welsh'.
This commit is contained in:
parent
30364211e6
commit
8f35ef724a
@ -132,10 +132,15 @@ in buildEnv {
|
|||||||
# updmap.cfg seems like not needing changes
|
# updmap.cfg seems like not needing changes
|
||||||
|
|
||||||
# now filter hyphenation patterns, in a hacky way ATM
|
# now filter hyphenation patterns, in a hacky way ATM
|
||||||
(let script =
|
(let
|
||||||
writeText "hyphens.sed" (
|
pnames = uniqueStrings (map (p: p.pname) pkgList.splitBin.wrong);
|
||||||
lib.concatMapStrings (pkg: "/^\% from ${pkg.pname}/,/^\%/p;\n") pkgList.splitBin.wrong
|
script =
|
||||||
+ "1,/^\% from/p;" );
|
writeText "hyphens.sed" (
|
||||||
|
# pick up the header
|
||||||
|
"1,/^\% from/p;"
|
||||||
|
# pick up all sections matching packages that we combine
|
||||||
|
+ lib.concatMapStrings (pname: "/^\% from ${pname}:$/,/^\%/p;\n") pnames
|
||||||
|
);
|
||||||
in ''
|
in ''
|
||||||
(
|
(
|
||||||
cd ./share/texmf/tex/generic/config/
|
cd ./share/texmf/tex/generic/config/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user