Commit Graph

23 Commits

Author SHA1 Message Date
Dietrich Epp 8e04863cda Fix data paths in generated convert/convert.r
Previously, the Rez file would have entries like this:

    read 'cmap' (128, "Roman") "roman";

That has been fixed to show this:

    read 'cmap' (128, "Roman") "charmap_roman.dat";
2022-11-13 16:19:41 -05:00
Dietrich Epp 5ad207f785 Embed character map tables in executable
This simplifies the conversion test, since we don't need to be careful
about which data we run the conversion test in. It will also simplify
the command-line conversion tool and its distribution. The classic Mac
OS version of this program will continue to embed conversion tables in
the resource fork.
2022-03-24 23:44:37 -04:00
Dietrich Epp d6cb7935fe Define include path in one place 2022-03-23 18:04:39 -04:00
Dietrich Epp bc46e1e982 Rename src directory to convert 2022-03-23 17:51:55 -04:00
Dietrich Epp 491950e57d Allow data generator to be run directly from Bazel
When run from Bazel without additional arguments, it will write data
files directly to the source directory.
2022-03-23 12:00:18 -04:00
Dietrich Epp c96bb9cd0a Implement extended ASCII converter engine
This adds support for the simplest 8-bit character encodings, which are
compatible with ASCII.
2022-03-23 01:26:25 -04:00
Dietrich Epp 6ec3549cd7 Build charmap.c generated file 2022-03-22 19:05:13 -04:00
Dietrich Epp f2317d0ce7 Create build rules for generated data
Add flags to the generator code to specify the location of input and
output files.
2022-03-22 19:02:57 -04:00
Dietrich Epp 094f2c5016 Add Bazel build scripts 2022-03-22 19:02:57 -04:00
Dietrich Epp 3f1b059de2 Add missing MacTypes.r include to Rez file 2022-03-15 17:35:03 -04:00
Dietrich Epp 7c5699b508 Update README to reflect changes 2022-03-15 16:27:52 -04:00
Dietrich Epp f94a65d245 Generate conversion data for extended ASCII
This creates conversion tables for 11 of the 21 character sets.
2022-03-15 16:19:56 -04:00
Dietrich Epp f49e81388c Generate charmap string resources
The string resources contain names of scripts, regions, and character
maps.
2022-03-15 15:34:39 -04:00
Dietrich Epp ca074ce387 Write conversion from script and region to charmap
The generation tool creates a GetCharmap function in C which takes the
script and region as input and returns the charmap index.
2022-03-15 14:31:12 -04:00
Dietrich Epp e901b5baaa Parse script and region constants as numbers
This simplifies code generation, since we don't have to worry about what
happens if two symbolic constants have the same value.
2022-03-15 13:51:23 -04:00
Dietrich Epp 022d11fa14 Parse character map information
This adds associations between scripts, regions, and character maps, and
parses them from a Go utility.
2022-03-15 13:38:45 -04:00
Dietrich Epp faa2460468 Add charmap parser 2021-12-14 23:48:47 -05:00
Dietrich Epp db4187b65b Refactor table generator, handle line breaks
Extract table generation to its own file, table.go, and refactor the
interface. This exposed an inconsistency in the way that line breaks
were handled: both CR and LF on the Mac side were mapped to LF on the
UTF-8 side, but when the conversion table was inverted, the reverse
mappings would conflict. Previously, there was no explicit handling for
it, and whichever Mac charecter had a higher byte value would take
precedence. Conflicts are now detected and return an error, so line
breaks must be mapped explicitly. The new code maps CR, LF, and CRLF to
CR when converting UTF-8 to Mac.
2021-12-14 13:12:52 -05:00
Dietrich Epp d77ccf009e Extract packbits into separate repository 2021-12-14 12:23:14 -05:00
Dietrich Epp f39ab85222 Ignore conversion table generator binary 2021-12-14 11:01:37 -05:00
Dietrich Epp c058e68d93 Add README for table generator
GitOrigin-RevId: 8062aa48890eb74a92b3322fdf306df9e5ecdee2
2021-03-17 21:05:19 -04:00
Dietrich Epp 1315f49c1e Add flags for debugging charset conversion tables
GitOrigin-RevId: d993358c037d8edd00d5819cac852c7822a89d3f
2021-03-17 21:05:18 -04:00
Dietrich Epp 9945fc0383 Add generator for UTF-8 to Macintosh tables
GitOrigin-RevId: 96f2909330b94c895688bfa2f5b50c3e4408fe54
2021-03-17 21:01:04 -04:00