chiark / gitweb /
Arrange to connect many Arabix glyphs to the left to help with joined-up
authorBen Harris <bjh21@bjh21.me.uk>
Tue, 6 Oct 2009 19:43:37 +0000 (20:43 +0100)
committerBen Harris <bjh21@bjh21.me.uk>
Tue, 6 Oct 2009 19:43:37 +0000 (20:43 +0100)
writing.

ttxt.c

diff --git a/ttxt.c b/ttxt.c
index e20bb3b1bd5ccab61f626035c06ce3310dd0b95f..bd6a297e6e7a047b763288f89aeb3161eff253e2 100644 (file)
--- a/ttxt.c
+++ b/ttxt.c
  * There are some extra glyphs included as well, some derived from
  * standard ones and some made from whole cloth.  They are built on
  * the same 5x9 matrix as the originals, and processed in the same way.
+ * In general, they leave the left column and bottom row of a 6x10 box
+ * empty, but there is one exception: Arabic glyphs which connect to
+ * the left have one pixel set in the left column, on the assumption
+ * that a decent Arabic character generator would have to do this too.
  */
 
 #include <assert.h>
@@ -357,37 +361,39 @@ struct glyph {
   * The second batch of glyphs was found in the appendices to
   * "Displayable Character Sets for Broadcast Teletext", EBU Tech
   * 3232-E, second edition, June 1982, as examples of rendering
-  * characters in a 5x9 matrix
+  * characters in a 5x9 matrix.  These versions have an extra pixel
+  * added on the left side of many glyphs to connect to the next
+  * letter.
   */
  /* ASV-CODAR glyphs from Appendix 3 */
  {{001,001,001,001,001,001,000,000,000}, 0x0627, "asvcodar-alef" },
- {{000,000,000,001,001,037,000,004,000}, 0x0628, "asvcodar-beh" },
- {{000,012,000,001,001,037,000,000,000}, 0x062a, "asvcodar-teh" },
- {{004,012,000,001,001,037,000,000,000}, 0x062b, "asvcodar-theh" },
- {{000,000,010,024,002,037,000,004,000}, 0x062c, "asvcodar-jeem" },
- {{000,000,010,024,002,037,000,000,000}, 0x062d, "asvcodar-hah" },
- {{004,000,010,024,002,037,000,000,000}, 0x062e, "asvcodar-khah" },
+ {{000,000,000,001,001,077,000,004,000}, 0x0628, "asvcodar-beh" },
+ {{000,012,000,001,001,077,000,000,000}, 0x062a, "asvcodar-teh" },
+ {{004,012,000,001,001,077,000,000,000}, 0x062b, "asvcodar-theh" },
+ {{000,000,010,024,002,077,000,004,000}, 0x062c, "asvcodar-jeem" },
+ {{000,000,010,024,002,077,000,000,000}, 0x062d, "asvcodar-hah" },
+ {{004,000,010,024,002,077,000,000,000}, 0x062e, "asvcodar-khah" },
  {{000,004,002,001,001,017,000,000,000}, 0x062f, "asvcodar-dal" },
  {{001,004,002,001,001,017,000,000,000}, 0x0630, "asvcodar-thal" },
  {{000,000,000,001,001,001,002,004,010}, 0x0631, "asvcodar-ra" },
  {{000,004,000,001,001,001,002,004,010}, 0x0632, "asvcodar-zain" },
- {{000,000,000,025,025,037,000,000,000}, 0x0633, "asvcodar-seen" },
- {{004,012,000,025,025,037,000,000,000}, 0x0634, "asvcodar-sheen" },
- {{000,000,000,007,011,037,000,000,000}, 0x0635, "asvcodar-sad" },
- {{000,004,000,007,011,037,000,000,000}, 0x0636, "asvcodar-dad" },
- {{010,010,010,017,011,037,000,000,000}, 0x0637, "asvcodar-tah" },
- {{010,012,010,017,011,037,000,000,000}, 0x0638, "asvcodar-zah" },
- {{000,000,006,010,010,037,000,000,000}, 0x0639, "asvcodar-ain" },
- {{004,000,006,010,010,037,000,000,000}, 0x063a, "asvcodar-ghain" },
- {{002,000,002,005,003,037,000,000,000}, 0x0641, "asvcodar-feh" },
- {{012,000,002,005,003,037,000,000,000}, 0x0642, "asvcodar-qaf" },
- {{001,002,004,016,001,037,000,000,000}, 0x0643, "asvcodar-kaf" },
- {{001,001,001,001,001,037,000,000,000}, 0x0644, "asvcodar-lam" },
- {{000,000,000,000,006,031,006,000,000}, 0x0645, "asvcodar-meem" },
- {{000,004,000,001,001,037,000,000,000}, 0x0646, "asvcodar-noon" },
- {{000,006,001,015,013,037,000,000,000}, 0xfeeb, "asvcodar-hehinitial" },
+ {{000,000,000,025,025,077,000,000,000}, 0x0633, "asvcodar-seen" },
+ {{004,012,000,025,025,077,000,000,000}, 0x0634, "asvcodar-sheen" },
+ {{000,000,000,007,011,077,000,000,000}, 0x0635, "asvcodar-sad" },
+ {{000,004,000,007,011,077,000,000,000}, 0x0636, "asvcodar-dad" },
+ {{010,010,010,017,011,077,000,000,000}, 0x0637, "asvcodar-tah" },
+ {{010,012,010,017,011,077,000,000,000}, 0x0638, "asvcodar-zah" },
+ {{000,000,006,010,010,077,000,000,000}, 0x0639, "asvcodar-ain" },
+ {{004,000,006,010,010,077,000,000,000}, 0x063a, "asvcodar-ghain" },
+ {{002,000,002,005,003,077,000,000,000}, 0x0641, "asvcodar-feh" },
+ {{012,000,002,005,003,077,000,000,000}, 0x0642, "asvcodar-qaf" },
+ {{001,002,004,016,001,077,000,000,000}, 0x0643, "asvcodar-kaf" },
+ {{001,001,001,001,001,077,000,000,000}, 0x0644, "asvcodar-lam" },
+ {{000,000,000,000,006,071,006,000,000}, 0x0645, "asvcodar-meem" },
+ {{000,004,000,001,001,077,000,000,000}, 0x0646, "asvcodar-noon" },
+ {{000,006,001,015,013,077,000,000,000}, 0xfeeb, "asvcodar-hehinitial" },
  {{000,000,000,003,005,007,001,001,016}, 0x0648, "asvcodar-waw" },
- {{000,000,000,001,001,037,000,012,000}, 0x064a, "asvcodar-yeh" },
+ {{000,000,000,001,001,077,000,012,000}, 0x064a, "asvcodar-yeh" },
  {{000,000,006,010,010,006,010,000,000}, 0x0621, "asvcodar-hamza" },
  {{000,000,000,003,025,025,034,000,012}, 0xfef2, "asvcodar-yehfinal" },
  {{000,000,000,003,025,025,034,000,000}, 0x0649, "asvcodar-alefmaksura" },
@@ -397,36 +403,36 @@ struct glyph {
  {{015,011,015,001,001,001,000,000,000}, 0x0623, "asvcodar-hamzaonalef" },
  {{001,001,001,001,015,011,014,000,000}, 0x0625, "asvcodar-hamzaunderalef" },
  {{017,010,001,001,001,001,001,000,000}, 0x0622, "asvcodar-maddaonalef" },
- {{014,010,014,001,001,037,000,000,000}, -1, "asvcodar-37" },
+ {{014,010,014,001,001,077,000,000,000}, -1, "asvcodar-37" },
  {{014,010,014,000,003,005,024,022,036}, 0x0626, "asvcodar-hamzaonyeh" },
  {{030,020,030,003,005,007,001,001,016}, 0x0624, "asvcodar-hamzaonwaw" },
 
  {{007,000,000,000,000,000,000,000,000}, 0xfe76, "asvcodar-fatha" },
- {{007,000,000,000,000,037,000,000,000}, 0xfe77, "asvcodar-fathatatweel" },
+ {{007,000,000,000,000,077,000,000,000}, 0xfe77, "asvcodar-fathatatweel" },
  {{003,001,002,000,000,000,000,000,000}, 0xfe78, "asvcodar-damma" },
- {{003,001,002,000,000,037,000,000,000}, 0xfe79, "asvcodar-dammatatweel" },
+ {{003,001,002,000,000,077,000,000,000}, 0xfe79, "asvcodar-dammatatweel" },
  {{000,000,000,000,000,000,000,000,007}, 0xfe7a, "asvcodar-kasra" },
- {{000,000,000,000,000,037,000,000,007}, 0xfe7b, "asvcodar-kasratatweel" },
+ {{000,000,000,000,000,077,000,000,007}, 0xfe7b, "asvcodar-kasratatweel" },
  {{007,000,005,007,000,000,000,000,000}, -1, "asvcodar-46" },
  {{003,001,002,000,005,007,000,000,000}, -1, "asvcodar-47" },
  {{005,007,000,007,000,000,000,000,000}, -1, "asvcodar-48" },
- {{005,007,000,007,000,037,000,000,000}, -1, "asvcodar-49" },
- {{007,000,005,007,000,037,000,000,000}, -1, "asvcodar-50" },
- {{005,007,000,000,000,037,000,000,000}, 0xfe7d, "asvcodar-shaddatatweel" },
+ {{005,007,000,007,000,077,000,000,000}, -1, "asvcodar-49" },
+ {{007,000,005,007,000,077,000,000,000}, -1, "asvcodar-50" },
+ {{005,007,000,000,000,077,000,000,000}, 0xfe7d, "asvcodar-shaddatatweel" },
  {{005,007,000,000,000,000,000,000,000}, 0xfe7c, "asvcodar-shadda" },
  {{002,005,002,000,000,000,000,000,000}, 0xfe7e, "asvcodar-sukun" },
- {{002,005,002,000,000,037,000,000,000}, 0xfe7f, "asvcodar-sukuntatweel" },
+ {{002,005,002,000,000,077,000,000,000}, 0xfe7f, "asvcodar-sukuntatweel" },
  {{016,016,000,000,000,000,000,000,000}, 0xfe70, "asvcodar-fathatan" },
  {{033,011,022,000,000,000,000,000,000}, -1, "asvcodar-56" },
  {{000,000,000,000,000,000,000,016,016}, 0xfe74, "asvcodar-kasratan" },
- {{030,010,025,007,000,037,000,000,000}, -1, "asvcodar-58" },
+ {{030,010,025,007,000,077,000,000,000}, -1, "asvcodar-58" },
  {{007,007,005,007,000,000,000,000,000}, -1, "asvcodar-59" },
  {{033,011,022,000,005,007,000,000,000}, -1, "asvcodar-60" },
  {{012,016,000,016,016,000,000,000,000}, -1, "asvcodar-61" },
 
- {{014,010,002,005,003,037,000,000,000}, -1, "asvcodar-62" },
- {{000,000,000,001,001,037,000,012,004}, -1, "asvcodar-63" },
- {{005,012,024,016,001,037,000,000,000}, -1, "asvcodar-64" },
+ {{014,010,002,005,003,077,000,000,000}, -1, "asvcodar-62" },
+ {{000,000,000,001,001,077,000,012,004}, -1, "asvcodar-63" },
+ {{005,012,024,016,001,077,000,000,000}, -1, "asvcodar-64" },
 
  /* Arabic-Indic digits from Appendix 9 */
  {{000,000,000,004,000,000,000,000,000}, 0x0660 }, /* zero */