It was getting complicated to ensure that everywhere that needed a
glyph name correctly generated them: simpler to have the preprocessor
generate them once.
Now rather than linearly searching the list of glyphs, dolookup() can
do a binary search on a list of glyph names. This is faster, but the
code is currently very ugly.
This should have no effect on the OTF output, but it ensures that all
characters are properly encoded in BDF. It also corrects a technical
invalidity in our SFD files.
A typical Web browser support Web Fonts these days, so there's no need
to use an image for the purpose. The other images remain for now since
they're not really representing text.
Playing with Firefox's "Responsive Design Mode" made it clear to me
that Bedstead's Web page was not very mobile-friendly, especially in
the way that the title runs off the end of a reasonable-sized vertical
screen. A simple CSS rule requests downscaling of images to the width
of the screen, which helps a lot.
I recently saw Bedstead featured on a collection of programming fonts
and noticed that it was much prettier there than on its own Web page.
That's clearly wrong, and I think displaying it in a light colour on a
dark background (and with less than maximum contrast) helped. The new
colours are based on my memory of the old Philips green-screen monitor
currently connected to my Beeb (because I'm too lazy to get out of bed
and check it).
These follow the same approach as 6-cell graphics: the smoothing
algorithm is disabled and there's no margin between character cells.
This is necessary to ensure that "upblock" and "dnblock" harmonise
with "lfblock" and "rtblock", the latter two being unified with 6-cell
graphics and the former not.
I've filled in the rest of the 4-cell characters on the basis that an
alternate history in which Teletext used 4-cell rather than 6-cell
graphics is perfectly plausible and Bedstead may as well support it.
They're not really finished products. Also I don't think I should
encourage people to load random SFDs since FontForge will apparently
happily execute Python code it finds in them.
They are all now sensible fractions of the standard width.
Extra Condensed has changed from 62/100 to 5/8.
Condensed has changed from 76/100 to 3/4.
Semi Condensed has changed from 88/100 to 7/8.
Extended has changed from 124/100 to 5/4.
This makes rather a lot of dimensions non-integer, but the only
significant ones are the "palt" width adjustments, and I think that's
an acceptable tradeoff for making the standard widths more sensible.