[why]
The script does not allow blanks in the font filenames.
There are also some shell warnings when run.
[how]
Simplify and always use `parallel` to run the job, even when the user
selects just one job. The problem is deciding if the passed PN is the
number one or not. We do not want to fail, but the numeric comparison
operator fails on non numbers (sometimes).
Use null termination as usual to pass filenames with blanks from a find
into something else.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The format string is invalid and results in a runtime error if that
particular warning is issued (which is only the case for Terminus).
[how]
A verbatim percent sign must be encoded as '%%'.
[note]
This has already been fixed before with commit
f81564fad font-patcher: Fix typo in logger output
but the change has been lost by rebasing :-(
See also #1350
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
For testing we might want to execute one command (e.g. font-patcher run)
once for each source font. We need to decide which of the font files is
a good choice.
[how]
Best would maybe to use the font that is used for the image previews.
We add that information for each font into the 'database'. Then we can
for example do stuff like:
while IFS= read -d $'\n' -r f; do
ls -l ../../src/unpatched-fonts/"${f}"
done < <(jq -r '.fonts | .[] | ."imagePreviewFontSource"' lib/fonts.json)
This is already utilized for the helper tools that are hid in the
generate-font-image-previews.sh script.
Note that DaddyTimeMono and NerdFontSymbolsOnly has "--ext ttf" set in the
config, so the information provided for that fonts is wrong.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The D2Coding font has a lot of glyphs shared between multiple unicode
codepoints.
Usually we just want to change the glyph on one particular codepoint
and not on all linked ones; which will affect codepoints not in our
patching ranges.
For example the glyph FULL BLOCK is used by codepoint 2588 and E286. In
the Exxx range they have a lot of icons, and also a full block.
[how]
Remove all links on glyphs that we are about to patch over, so that we
really just patch the codepoint we want to patch (and have no hidden
'links').
[note]
This could in principle break alts or ligs if they rely on another
codepoint that we removed. But breaking ligs is always a possibility
when patching over existing glyphs.
[note]
I checked several (not all) fonts in our repertoire, and only D2coding
is massively affected.
The only other fonts are these with 2 codepoints each:
heavy_data.ttf Removing alternate unicode on F001 (FB01)
heavy_data.ttf Removing alternate unicode on F002 (FB02)
Tinos-Regular.ttf Removing alternate unicode on F001 (FB01)
Tinos-Regular.ttf Removing alternate unicode on F002 (FB02)
Fixes: 1454
Reported-by: @hdd1013
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The subdirs will not be cleared/removed automatically, so we restructure
already now.
[how]
Move all files into the font-root dir.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
We keep all ligatures with the Serif font, i.e. `ldot` and `fi` et al.
This font is very proportional anyhow.
As there are no ligs active in the old Noto Mono font and the other have
their own configs we can just remove the root config.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
All the different ligature removal calls are becoming more and more a
problem, because we have only one config.json for all fonts in a
font-root-directory. But the Noto variants have the ligatures in
different lookups. With the new font we finally remove lookups in the
new font that have a completely different contents then the lookups we
wanted to remove in the other family.
So the config.json is becoming more flexible: Now first we seach in the
concrete font file directory and only if there is no config we progress
to the font root directory and search there.
See also commit
d9f7dbe23 Prepatched fonts: Revive some ligature removal
Here we have
* fi and similar in lookup 41
* l-dot and similar in lookups 13, 14, 15
Fixes: #1472
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
The previous commit added the wrong reference in the commit message,
this empty commit just fixes it.
[why]
The link to the patched Monaspace is broken.
[note]
Reference #1468
Reported-by: Rubin Bhandari <roobin.bhandari@gmail.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The link to the patched Monaspace is broken.
[note]
Reference #1486
Reported-by: Rubin Bhandari <roobin.bhandari@gmail.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Installing via pip is not a good solution as this might conflict with
system-installed python packages.
[how]
It's installed already anyhow...
This must be a leftover from ancient times.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
When we can not detect the cell width, for example because there are no
glyphs in the range of extrended-roman that we examine, the width will
be zero and that will result in a crash later on (on rescaling).
[how]
Just abort if height or width are zero or negative.
Related: #1460
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[how]
Flatten directory structure.
Do not forget to check if that works correctly on release.
Fixes: #1437
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>