chiark / gitweb /
Ben Harris [Wed, 29 Jan 2025 21:40:32 +0000 (21:40 +0000)]
Add comments with feature tags for FeatureIndices
Ben Harris [Wed, 29 Jan 2025 13:57:28 +0000 (13:57 +0000)]
Use a conventional lenof() macro for lengths of static arrays
It's slightly unconventional in that it casts the result to int, which
is fine for all our arrays and avoids warnings when we use it.
Ben Harris [Tue, 28 Jan 2025 23:06:05 +0000 (23:06 +0000)]
Add parameter labels for 'cvXX' features
This means that now each possible variant of a character covered by a
'cvXX' feature has a human-readable name. I don't know of anything
that uses these, so they're somewhat untested.
Ben Harris [Mon, 27 Jan 2025 22:53:55 +0000 (22:53 +0000)]
Small-cap and narrow forms of U+A780 (turned L)
Ben Harris [Mon, 27 Jan 2025 14:08:29 +0000 (14:08 +0000)]
Add white (outline) versions of card suits
The club and spade are one pixel taller than the black (filled) ones
because I couldn't come up with a convicing club in the smaller size.
Ben Harris [Sat, 18 Jan 2025 23:57:31 +0000 (23:57 +0000)]
Redesign glottal-stop characters
Bedstead's various glottal-stop characters were originally based on
its question mark, because that character looks a bit like a question
mark without a dot. However, while adding a Character Variant feature
for question marks I noticed that the glottal stop and question mark
in the Unicode code charts didn't match, which was why I left the
glottal stop out of that feature.
I've now also looked at the official IPA charts from the International
Phonetic Association, and it's clear that the glottal stop does not in
general match the question mark. In particular, the join between the
rounded section and the stem is often smooth in a question mark but is
always a right angle in the glottal stop. I've thus re-designed
Bedstead's glyphs to follow this pattern. I've also shortened the
crossbar on the glottal stop derivatives that have them, since that
seems to better match DejaVu Sans, which is the sans-serif font
preferred by the IPA.
Ben Harris [Sat, 18 Jan 2025 21:35:58 +0000 (21:35 +0000)]
Add U+23E8 DECIMAL EXPONENT SYMBOL
That seemed to be the only character needed by ALGOL 60 that I was
lacking.
Ben Harris [Sat, 18 Jan 2025 20:54:21 +0000 (20:54 +0000)]
Add 'ss05' which maps all of U+0020..U+007E to SAA5055 glyphs
This seems appropriate for something that wants to treat these as ASCII
glyphs with their ambiguous semantics.
This uses the existing apostrophe.curly, and also adds grave.curly (an
alias for quotereversed) and bar.broken (an alias for brokenbar). Of
course there are also 'cvXX' features to enable each one individually as
well.
Ben Harris [Sat, 18 Jan 2025 17:55:42 +0000 (17:55 +0000)]
Switch to a variadic macro for generating alternate substitutions
Ben Harris [Sat, 18 Jan 2025 13:48:59 +0000 (13:48 +0000)]
Add character variant for curly apostrophe (SAA5051/2)
Unicode takes the position that U+0027 APOSTROPHE is always a straight
apostrophe and is you want a curly one you should use U+2019 RIGHT
SINGLE QUOTATION MARK (or U+02BC MODIFIER LETTER APOSTROPHE but let's
not get into that here). Bedstead generally follows that, putting the
SAA5050 straight apostrophe at U+0027 and the SAA5055 curly one at
U+2019.
Older character standards, though, conflated those two and treated the
difference between them as one of font design. In particular, ETS 300
706: May 1997, "Enhanced Teletext specification" treats position 2/7 as
being the same character in all national sub-sets of the Latin G0
primary set. When coverting Teletext data to Unicode, ZVBI maps 2/7 to
U+0027 whichever national sub-set is in use.
This means that to faithfully display Teletext data in the way that an
SAA5051/2 would, Bedstead needs to interpret U+0027 as a curly
apostrophe. I have accomplished this by adding a new "apostrophe.curly"
alias and including that in the 'ss01' and 'ss02' Stylistic Sets. It
also, of course, gains a new Character Variant feature, 'cv07', so that
you can turn the curly apostrophe on and off independently.
This does cause me to wonder whether there should be a stylistic set to
map U+0020..U+007E onto the SAA5055 glyphs.
Ben Harris [Fri, 17 Jan 2025 00:16:31 +0000 (00:16 +0000)]
Rename parameters for CVXX macros to "V"
That makes things a little less verbose (for now).
Ben Harris [Thu, 16 Jan 2025 23:53:53 +0000 (23:53 +0000)]
Fill in 'cv38' with far too many kinds of capital 'D'
Ben Harris [Thu, 16 Jan 2025 23:04:17 +0000 (23:04 +0000)]
Add narrow small-cap J to 'cv42'
All the other J-based characters are either narrow already or
unsuitable for narrowing.
Ben Harris [Thu, 16 Jan 2025 22:55:54 +0000 (22:55 +0000)]
Fill out 'cv44' with narrow capital Ls
Ben Harris [Thu, 16 Jan 2025 22:14:37 +0000 (22:14 +0000)]
Fill out 'cv96' with all the angular cedillas
This collides with the small lower-case 't' of 'cv84' at U+0163 LATIN
SMALL LETTER T WITH CEDILLA, but I think all the combinations work. I
do currently have both "uni0163.small.angular" and
"uni0163.angular.small" to ensure that you can apply each stylistic
set with the opposing character variant. Maybe with more careful
interleaving I could get away with only one of those.
Ben Harris [Thu, 16 Jan 2025 13:50:00 +0000 (13:50 +0000)]
Stop trying to indent XML output
The indentation wasn't always correct, and made the C code ugly. I've
now found "xmllint --format", which does a better job, so I think it's
quite reasonable to stop trying to do it myself.
Ben Harris [Wed, 15 Jan 2025 22:53:26 +0000 (22:53 +0000)]
Expand some comments
Now that we use strings for bitmaps, the comments can be a little less
abbreviated.
Ben Harris [Wed, 15 Jan 2025 22:45:06 +0000 (22:45 +0000)]
More large, accented lower-case 'o's for 'cv79'
I thought about just re-using the ".sc" glyph names, but that seemed
wrong.
Ben Harris [Wed, 15 Jan 2025 21:17:58 +0000 (21:17 +0000)]
Extend 'cv74' to other characters based on lower-case 'j'
I didn't do U+0254 LATIN SMALL LETTER DOTLESS J WITH STROKE because the
Unicode standard says it's based on a turned 'f', not 'j'.
Ben Harris [Wed, 15 Jan 2025 20:50:22 +0000 (20:50 +0000)]
Extend 'cv84' to most characters based on lower-case 't'
That's 12 additional glyphs, and I thought 't' would be one of the
simpler ones. Still, it automatically works with 'ss01' and 'ss02' as
well.
Ben Harris [Wed, 15 Jan 2025 13:55:06 +0000 (13:55 +0000)]
Merge SUFFIXSUB and SUFFIXSUB1 macros
Ben Harris [Wed, 15 Jan 2025 13:53:13 +0000 (13:53 +0000)]
Use X-macro trick for emitting lookups for variant capital D
This will mean that adding extra characters to 'cv38' will
automatically add them to 'ss01' and 'ss02' as well.
Ben Harris [Wed, 15 Jan 2025 11:18:02 +0000 (11:18 +0000)]
Remove the global "variable" (macro) from 'cvXX'/'ssXX' generation
I realised that VAR2 can be a parameter to the various CVXX macros
instead. This makes the existing code a little more complicated, but
will make the code for the three-way choice of capital D less
confusing.
The macro names are getting worse, and will definitely need to be
rationalised at some point, bit the structure is getting better.
Ben Harris [Tue, 14 Jan 2025 23:35:18 +0000 (23:35 +0000)]
Use a macro to emit <SingleSubst> elements
Ben Harris [Tue, 14 Jan 2025 23:29:48 +0000 (23:29 +0000)]
Don't emit multiple subtables for 'cv31'
I was accidentally emitting a separate <AlternateSubst> element for
each base character, which worked but was unnecessary. A single
<AlternateSubst> for the whole lookup will make for a smaller font
file and probably faster lookups as well.
Ben Harris [Tue, 14 Jan 2025 10:05:57 +0000 (10:05 +0000)]
Add some extra variant question-mark glyphs
The inverted and reversed question-mark characters should obviously
change shape along with the normal one, so now they do. This
conveniently tests the 'cvXX'/'ssXX' interaction without getting
tangled up with small caps as well.
Based on the different shapes of the glyphs in the Unicode code charts,
I've decided that glottal stops should not change their shapes along
with question marks, and should perhaps be different shapes entirely.
Ben Harris [Tue, 14 Jan 2025 01:05:28 +0000 (01:05 +0000)]
Construct 'ssXX' and 'cvXX' lookups using X macros
In general, we want each Stylistic Set to be constructed out of a
collection of Character Variants. At the moment, this is fairly
simple, but if I start putting variants of more characters into these
features (for example, adding questiondown.open to go with
question.open), it will get awkward keeping them in sync. But the two
kinds of lookup want different XML, so they can't just be copied
as-is.
One approach would be to have a C data structure that gets used to
generate both sets of lookups, but an alternative is to extend the
existing pre-processor magic to use X macros to construct the two
lookups. This is what I've done.
At the moment, this is just using the existing macros that generate
XML, but driving them from another set of macros, one for each
Character Variant feature. The Stylistic Sets then invoke all the
macros for the Character Variants they include.
There are a couple of open problems. One is the (single, so far) case
where there are two variants of a character, namely 'D'. This should
be dealt with by paramaterising the variant macro, but I've not got
around to that yet. The other is that the macro names are largely
horrible.
Ben Harris [Mon, 13 Jan 2025 21:14:36 +0000 (21:14 +0000)]
Rename two 'cvXX' features based on SAA5054 shapes
The features that generate the variant ocircumflex and ccedilla glyphs
are now treated a being variants of lower-case 'o' and cedilla
respectively. Unlike the SAA5051/2 variants, we don't yet have
variants of their base glyphs. Indeed, for the lower-case 'o' we
probably never will, because the variant is "larger accented versions"
so the unaccented version wouldn't change.
I haven't done anything about the weird SAA5054 ugrave because I'm not
sure there's any real design principle behind it.
I've also added a comment explaining the numbering of 'cvXX' features.
Ben Harris [Wed, 8 Jan 2025 23:35:43 +0000 (23:35 +0000)]
Add SPDX-License-Identifier to CSS files
Ben Harris [Wed, 8 Jan 2025 23:34:30 +0000 (23:34 +0000)]
Add @character-variant rules to bedstead-faces.css
Ben Harris [Wed, 8 Jan 2025 22:38:15 +0000 (22:38 +0000)]
Add names for 'cvXX' features
Ben Harris [Wed, 8 Jan 2025 21:15:53 +0000 (21:15 +0000)]
Add cvXX (character variant) lookups
The idea of these is that each one allows for choosing between different
variants of a single character (or set of closely-related characters).
This allows for deciding that you want (for instance) the angular
SAA5054 "ccedilla", but not its weird conjoined "ugrave".
This seems like a good way to handle chips like the SN74S262 where some
samples seem to vary in a single character from others, as well as more
generally for making the variant glyphs easily accessible for purposes
other than precise emulation.
At the moment, each feature only provides alternatives for a single
character, but now that we have a mechanism for it, that might change.
Ben Harris [Wed, 8 Jan 2025 01:53:24 +0000 (01:53 +0000)]
Don't emit <LookupType> elements
TTX is quite capable of inferring the lookup type from the type of the
main child element of <Lookup>. This should allow for specifying
different kinds of lookup using literal XML.
Ben Harris [Tue, 7 Jan 2025 22:37:19 +0000 (22:37 +0000)]
Generate ss0X substitutions less cleverly
These substitutions are not generated from the glyphs table, but are
specified statically. Rather than taking a table and transforming it
into XML with C, we could just put the static XML in a string, which
is much simpler. To avoid excessive simplicity, the string is
generated by a pile of preprocessor macros.
This causes no change to the output OTFs.
Ben Harris [Sun, 5 Jan 2025 10:24:53 +0000 (10:24 +0000)]
Note source of ugrave.roundjoined in a comment
Ben Harris [Thu, 2 Jan 2025 00:53:02 +0000 (00:53 +0000)]
Don't emit AlternateSets that will be overridden
Just in case TTX changes its behaviour in this area in the future.
Ben Harris [Thu, 2 Jan 2025 00:27:50 +0000 (00:27 +0000)]
Add a comment explaining the purpose of aalt_overrides
Ben Harris [Wed, 1 Jan 2025 23:54:11 +0000 (23:54 +0000)]
Signal names for SN74S262 pins, from RML 380Z service manual
Ben Harris [Wed, 1 Jan 2025 23:53:51 +0000 (23:53 +0000)]
Extend compatcheck 'GSUB' checks to handle renamed glyphs
We do this by pulling out the CFF charstring for old and new glyph
names from the new font and seeing if they're the same.
Ben Harris [Wed, 1 Jan 2025 23:18:13 +0000 (23:18 +0000)]
Emit AlternateSets for 'aalt' overrides
These are just emitted after the standard AlternateSets, and because
of how TTX works, they end up overriding the standard ones. This
seems a bit dodgy to me, so I might try to do better later.
Ben Harris [Mon, 30 Dec 2024 23:15:54 +0000 (23:15 +0000)]
Add data for overriding 'aalt' sometimes
Not used yet.
Ben Harris [Sun, 29 Dec 2024 18:45:47 +0000 (18:45 +0000)]
Sort glyph names in compatcheck
Ben Harris [Fri, 27 Dec 2024 18:56:38 +0000 (18:56 +0000)]
New shape for SAA5054 ugrave (now ugrave.roundjoined)
I just got an SAA5054 (date code 8510) and the character it has at 5/13
is different from the one in the datasheet. The real one lacks the
pixel in the bottom right corner, so it's more like a Ugrave than a
ugrave. However, it would be weird for a character set to include the
capital but not the lower case, and the corresponding character set in
ETS 300 706: May 1997 (the French option in table 36) is obviously
lower-case. So I think it's semantically lower-case, whatever it looks
like.
As for the thing I was intending to check, yes the accent does join onto
the letter.
Ben Harris [Fri, 27 Dec 2024 12:08:37 +0000 (12:08 +0000)]
Add @font-feature-values to bedstead-faces.css
This means that users of this stylesheet can use declarations like
"font-variant: styleset(saa5051)" to request a particular stylistic set.
The separated graphics sets, 'ss14' and 'ss16', are not covered by this
because new applications should use the proper Unicode code points for
separated graphics instead.
Ben Harris [Fri, 27 Dec 2024 11:58:32 +0000 (11:58 +0000)]
Use new generic glyph names in rom.ps
Output confirmed to be unchanged
Ben Harris [Tue, 24 Dec 2024 00:25:54 +0000 (00:25 +0000)]
Put feature tag in a comment in each <Lookup> in TTX
Now that the ssXX features don't have fixed suffixes it's useful to
have something to say which is which.
Ben Harris [Mon, 23 Dec 2024 23:39:20 +0000 (23:39 +0000)]
Check OS/2.achVendID in compatcheck
My GNU Emacs configuration ended up using this to select its default
font, so it should remain constant within a major version.
Ben Harris [Mon, 23 Dec 2024 23:22:45 +0000 (23:22 +0000)]
Add name checking to compatcheck
This tries to ensure that sensible ways of specifying a font by name
continue to work across an upgrade.
Ben Harris [Mon, 23 Dec 2024 14:32:09 +0000 (14:32 +0000)]
compatcheck: actually exit with failure if a check fails
Ben Harris [Mon, 23 Dec 2024 14:25:42 +0000 (14:25 +0000)]
Add a comment explaining what compatcheck does
Ben Harris [Sun, 22 Dec 2024 00:53:37 +0000 (00:53 +0000)]
SN74S262/3 pinout
The XM11 application note mentions "two chip enables", which can only
be pins 14 and 15.
Ben Harris [Fri, 20 Dec 2024 21:41:29 +0000 (21:41 +0000)]
More descriptive names for variant characters
This means yet more compatibility aliases, but I think it's the right
way to go.
Ben Harris [Fri, 20 Dec 2024 16:42:23 +0000 (16:42 +0000)]
Redesign how stylistic sets for particular chips work
The old approach was that each stylistic set had a distinct glyph-name
suffix, the same way that small caps or right-to-left mirrored glyphs
did. This meant that when several chips used the same alternative
glyph, there needed to be a separate alias for each chip. This was
slightly awkward for just the SAA5051 and SAA5052, but I'd like to add
coverage for the SN74S262 and SN74S263, and those share some of the
same glyphs as well.
So now those stylistic sets have an explicit list of which variant
glyphs they include, and my plan is that each variant glyph will have
a single canonical name. They'll still have to keep the existing
names for compatibility. Indeed, for now that's what they're using
because that makes checking the output easier.
No change to the resulting font, though the lookups do end up in a
different order in the TTX file.
Ben Harris [Thu, 19 Dec 2024 13:46:58 +0000 (13:46 +0000)]
Swap scripts and suffix members of struct gsub_feature
Every feature must have a scripts list, but "suffix" is only one way
you might select lookups to generate. Putting it at the end makes it
easier to leave it out. Indeed, our existing 'aalt' lookup omits it.
This causes no change to the generated fonts.
Ben Harris [Tue, 17 Dec 2024 10:58:16 +0000 (10:58 +0000)]
Remove ASCII dependency
ISO C doesn't guarantee that the execution character set is ASCII, or
anything like it. Bedstead tries to require only ISO C, but it used
strcmp() to sort glyph names and so the output depended on the sort
order of characters. Moreover, the code for finding variants of
characters required that '.' have a lower value than any other
character that appeared in glyph names.
To avoid this dependency, we now have a table that assigns values to
each character that can appear in glyph names, and a strcmp-compatible
function that compares two strings after mapping through that table.
This means that our sort order is explicitly specified in the code,
and also provides a convenient place to catch unusual characters in
glyph names.
This change has no effect on the output TTX files (at least on an ASCII
system). All remaining uses of strcmp() are testing solely for
equality.
Ben Harris [Mon, 16 Dec 2024 22:27:24 +0000 (22:27 +0000)]
Correct the size of the parameter to glyph_footprint()
Ben Harris [Mon, 16 Dec 2024 22:22:01 +0000 (22:22 +0000)]
Fix the length of an accidentally variable-length array
Ben Harris [Mon, 16 Dec 2024 21:49:16 +0000 (21:49 +0000)]
Range-check argument to --bdfgen
Ben Harris [Mon, 16 Dec 2024 21:40:36 +0000 (21:40 +0000)]
Change parameters of moveto() and lineto() to signed
The corresponding members of struct vec are signed, as are most of the
arguments passed to the functions, so it's silly that the parameters
themselves are unsigned. This takes the number of warnings under
clang -Weverything down from 126 to 30.
This doesn't cause any change to the output TTX files.
Ben Harris [Mon, 16 Dec 2024 21:31:21 +0000 (21:31 +0000)]
Remove an unnecessary shadowing variable
Ben Harris [Mon, 16 Dec 2024 21:26:35 +0000 (21:26 +0000)]
Add a few missing "static" keywords
Ben Harris [Sat, 14 Dec 2024 16:41:51 +0000 (16:41 +0000)]
compatcheck: detect vanished code points from fonts
Ben Harris [Sat, 14 Dec 2024 16:04:46 +0000 (16:04 +0000)]
Add a script to check backward compatibility
Ben Harris [Wed, 11 Dec 2024 22:34:53 +0000 (22:34 +0000)]
Some notes on TIFAX
Ben Harris [Mon, 9 Dec 2024 21:45:36 +0000 (21:45 +0000)]
Note the existence of HACKING in CONTRIBUTING
Ben Harris [Sun, 8 Dec 2024 18:48:30 +0000 (18:48 +0000)]
Small caps for new additions
Ben Harris [Sun, 8 Dec 2024 18:19:52 +0000 (18:19 +0000)]
A few modified Bs
Ben Harris [Tue, 3 Dec 2024 18:44:07 +0000 (18:44 +0000)]
Assign a PUA code point to Tbar.c2sc
Ben Harris [Tue, 3 Dec 2024 18:38:39 +0000 (18:38 +0000)]
Merge new characters and minor fixes
Converted to the new string-constant format in the process.
Neil Williamson [Mon, 25 Nov 2024 00:14:52 +0000 (00:14 +0000)]
A few additions, mostly to fill out Teletext character sets
[ from email ]
2. Regular unicode characters: a few additions, mostly to fill out
compatibility with Teletext character set ranges that were otherwise
almost-complete (which is basically everything except Arabic at this point)
per this reference page: https://al.zerostem.io/~al/ttcharset/[al.zerostem.io]
Some of the cyrillic additions are a bit dubious, but hopefully close enough
to pass.
Ben Harris [Tue, 3 Dec 2024 13:58:25 +0000 (13:58 +0000)]
Add some warning flags to the C compiler
I've chosen ones under which bedstead.c is currently clean, at least
using the versions of GCC and Clang currently in Debian stable.
Ben Harris [Tue, 3 Dec 2024 13:07:01 +0000 (13:07 +0000)]
Correct a printf %lX argument type
Also change another from "long" to "unsigned long" for consistency.
Ben Harris [Wed, 27 Nov 2024 13:43:42 +0000 (13:43 +0000)]
Set -dNOSAFER when running .bdf.ps programs
Ghostscript 10.03.1 and later disable the "makeimagedevice" operator
when running under -dSAFER. Even --permit-devices='*' isn't enough to
get it back. The release notes say that makeimagedevice has been
removed entirely, but that seems not to be correct.
Ben Harris [Wed, 27 Nov 2024 10:41:17 +0000 (10:41 +0000)]
Stop using %stdout for writing BDF files
Instead, pass the destination filename to the bdf.ps program and have it
open the file itself. This avoids capturing Ghostscript's own
diagnostics in the output file.
Ben Harris [Wed, 27 Nov 2024 10:30:20 +0000 (10:30 +0000)]
Correct a comment in rom.ps
It can make all ROM images now.
Ben Harris [Tue, 26 Nov 2024 22:11:11 +0000 (22:11 +0000)]
Convert ZVBI Private Use codepoints to compatibility aliases
That saves 4K of font file, which is nice.
Ben Harris [Tue, 26 Nov 2024 21:06:51 +0000 (21:06 +0000)]
Correct compatibility mapping of Wdieresis.sc
It will be generated if 'smcp' is applied to Wdieresis, and the
correct result of that is no change, since 'smcp' doesn't affect
capitals.
Ben Harris [Tue, 26 Nov 2024 20:59:47 +0000 (20:59 +0000)]
Convert 6-cell ".sep6" glyphs into compatibility aliases
Ben Harris [Tue, 26 Nov 2024 20:29:09 +0000 (20:29 +0000)]
Add COMPAT to a bunch more aliases
Ben Harris [Tue, 26 Nov 2024 14:34:15 +0000 (14:34 +0000)]
Add a flag to explicitly mark compatibility aliases
Only used on a few characters for now, though.
Ben Harris [Tue, 26 Nov 2024 02:03:23 +0000 (02:03 +0000)]
Mark obsolete characters in the glyph complement
A technique only slightly spoiled by the fact that nothing flags
obsolete characters yet, so it's actually marking every alias instead.
Still, it puts a nice diagonal bar across the affected characters
telling you to use a different one, which looks nice but may
obliterate the character rather _too_ effectively.
Ben Harris [Mon, 25 Nov 2024 22:44:19 +0000 (22:44 +0000)]
Actual aliases for old names of separated 4-cell graphics
That saves a few hundred bytes from the OTF.
Ben Harris [Mon, 25 Nov 2024 22:24:35 +0000 (22:24 +0000)]
Move *.sep4 glyphs to compatibility aliases
We've now got proper Unicode versions of them.
Neil Williamson [Mon, 25 Nov 2024 00:14:52 +0000 (00:14 +0000)]
Correct separated vs contiguous flag in ZVBI compat mappings
[ from email ]
One thing I wanted to query was the ZVBI mosaic graphics codepoints at
0xEE00 to 0xEE7F. The ZVBI code says (in lang.c):
" Table 47 G1 Block Mosaic is not representable
* in Unicode, translated to private code U+EE00 ... U+EE7F.
* (contiguous form has bit 5 set, separate form cleared)."
My reading of this is that the separated forms should therefore sit at
0xEE00-0xEE1F and 0xEE40-0xEE5F, with the contiguous forms at 0xEE20-0xEE3F
and 0xEE60-0xEE7F. This is indeed what the teletext1/2/4 fonts commonly
seen in teletext recoveries do; see for example
https://al.zerostem.io/~al/teletext/bbc1/1996-12-28-0008.1/100.html.
Bedstead maps these the opposite way around, however, and if you swap it in
on the linked page, all the contiguous and separated mosaics will swap
places.
Ben Harris [Mon, 25 Nov 2024 19:40:15 +0000 (19:40 +0000)]
Beginning of notes on HP terminal large letters
Ben Harris [Mon, 25 Nov 2024 10:35:39 +0000 (10:35 +0000)]
Add 4-cell separated graphics at their proper Unicode code points
I hadn't noticed that they're included in the Symbols For Legacy
Computing Supplement as well. Apparently they were part of the Sharp
MZ character set.
Ben Harris [Sun, 24 Nov 2024 20:17:17 +0000 (20:17 +0000)]
Update version in which Wdieresis.sc alias was added
Ben Harris [Sun, 24 Nov 2024 20:15:05 +0000 (20:15 +0000)]
Something I missed from the 3.246 release notes
Too late for the actual release, sadly.
Ben Harris [Sun, 24 Nov 2024 16:23:45 +0000 (16:23 +0000)]
Update version to 3.246
New major version for vendor and foundry IDs and removing Mac Roman
support. Minor version indicates the sixth release of 2024.
Ben Harris [Sat, 23 Nov 2024 20:03:36 +0000 (20:03 +0000)]
Adjust bitmap of supported code pages
I've removed the Turkish code pages because I don't have letters with
breves yet. And I've removed the Latin-2 code pages because I haven't
come up with a good way to distinguish accented upper- and lower-case
'S'.
Ben Harris [Sat, 23 Nov 2024 15:04:56 +0000 (15:04 +0000)]
Remove some Unicode Character Range bits
I don't think Bedstead has enough coverage of these ranges to consider
them to be "functional":
47: Dingbats
62: Alphabetic Presentation Forms
68: Halfwidth and Fullwidth Forms
69: Specials
88: Musical Symbols + Byzantine + Ancient Greek
89: Mathematical Alphanumeric Symbols
Ben Harris [Fri, 22 Nov 2024 14:17:55 +0000 (14:17 +0000)]
Note what the various Unicode-range and code-page bits in 'OS/2' mean
I haven't actually checked whether they're right, though.
Ben Harris [Fri, 22 Nov 2024 13:49:06 +0000 (13:49 +0000)]
Comment explaining sFamilyClass
Ben Harris [Thu, 21 Nov 2024 21:02:34 +0000 (21:02 +0000)]
Merge line-drawing changes into pre-release trunk
Ben Harris [Sun, 27 Oct 2024 11:21:05 +0000 (11:21 +0000)]
Musical stave characters should join to the left
Ben Harris [Sat, 26 Oct 2024 21:42:27 +0000 (22:42 +0100)]
Separate flags for copying left column and top row
Having a way to specify that the half-brackets extend upwards but not
leftwards avoids all the rendering problems they were previously
suffering from. And I've spotted the VT100 scan-line characters,
which should be extended to the left but not upwards. Since the
middle scan-line is unified with a line-drawing character, they really
need to extend leftwards for symmetry, but extending scan-line 1
upwards would be a disaster.
So now there are two flags, JOIN_U and JOIN_L, to specify joining in
each direction. I've renamed the both-directions flag as JOIN,
because it's not just specific to line-drawing any more. I might
eventually want a JOIN_D to suppress hinting of the bottom edge of the
character, but I need to do some testing first.
Ben Harris [Sat, 26 Oct 2024 14:58:01 +0000 (15:58 +0100)]
Turn on line-drawing mode on long brackets etc
It doesn't work quite properly: some characters hit the left side of the
character cell, so I might want to separate the joins-leftward and
joins-upward flags.
Ben Harris [Sat, 26 Oct 2024 11:23:28 +0000 (12:23 +0100)]
Stop bold line-drawing characters overflowing character cell
In XLFD terms, Bedstead is a "character cell" font, where every
character fits entirely within its cell (defined by advance width,
ascent, and descent). Bedstead Bold maintained this because it
thickened into the unused column to the left of each character.
However, combining the new continuous line-drawing with emboldening led
to bold line-drawing characters that extended beyond their character
cell. This led FontForge to make the SPACING property of the BDF file
"M" (for monospace) rather the "C".
This commit simply clips the X co-ordinate of points in a bolded
character at zero. That's safe because line-drawing characters are
guaranteed not to be doing anything diagonal in the left-most column.
This is slightly ugly, in that the bold characters aren't quite so
algorithmically derived from the non-bold ones, but in most cases
there'll be another line-drawing character to the left anyway.
Ben Harris [Sun, 20 Oct 2024 17:10:52 +0000 (18:10 +0100)]
Make line-drawing characters join up
This is done my duplicating the top row of pixels upwards and the left
column leftwards. This is analogous to what MDA and other IBMish
adaptors do to expand eight-pixel wide characters to nine pixels on screen.
Ben Harris [Wed, 20 Nov 2024 20:17:55 +0000 (20:17 +0000)]
Increase version number for a potential pre-release