Arrange to connect many Arabix glyphs to the left to help with joined-up

writing.
This commit is contained in:
Ben Harris 2009-10-06 20:43:37 +01:00
parent ac30cc18bf
commit 7e12083599

76
ttxt.c
View File

@ -67,6 +67,10 @@
* 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 */