From c51a6dadd90cc16f319e60b37f1bf78a6461274a Mon Sep 17 00:00:00 2001 From: handa Date: Thu, 23 Sep 2004 00:26:43 +0000 Subject: [PATCH] Add Syriac support. --- SYRIAC-OTF.flt | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 SYRIAC-OTF.flt diff --git a/SYRIAC-OTF.flt b/SYRIAC-OTF.flt new file mode 100644 index 0000000..a86ac3c --- /dev/null +++ b/SYRIAC-OTF.flt @@ -0,0 +1,178 @@ +;; SYRIAC-OTF.flt -- Font Layout Table for Syriac OpenType font +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n database; a sub-part of the m17n +;; library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +;;;
  • SYRIAC-OTF.flt +;;; +;;; For Syriac OpenType fonts to draw the Syriac script. + + +;; Step 1: Initial, medial, or final. + +(category + ;; D: Dual-joining + ;; R: Right-joining + ;; U: Non-joining + ;; T: Transparent + ;; A: ALAPH + ;; r: DALATH, RISH, DOTLESS DALATH RISH + + (0x0700 0x071F ?U) + (0x0710 ?A) + (0x0711 ?T) + (0x0712 0x072E ?D) + (0x0715 0x0716 ?r) + (0x0717 0x0719 ?R) + (0x071E ?R) + (0x0728 ?R) + (0x072A ?r) + (0x072C ?R) + (0x072F ?R) + (0x0730 0x074A ?T) + (0x074D ?R) + (0x074E 0x074F ?D) + + (0x0303 ?T) + (0x0330 ?T) + (0x0304 ?T) + (0x0320 ?T) + (0x0307 ?T) + (0x0323 ?T) + (0x0308 ?T) + (0x030A ?T) + (0x0325 ?T) + (0x0324 ?T) + (0x032D ?T) + (0x032E ?T) + + (0x200C ?U) + (0x200D ?D) + ) + +(generator + (0 + (cond + ("(r)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 dalath-rish)) + + ("(D)(T*)([^U].*)" + (1 otf:syrc=init) + (2 = *) + (3 join)) + + ("(T+)(.*)" + (1 = *) + (2 disjoin)) + + ("(.)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 disjoin)))) + + (join + (cond + ("(r)(T*)(.*)" + (1 otf:syrc=fina) + (2 = *) + (3 dalath-rish)) + + ("(D)(T*)([DRrA].*)" + (1 otf:syrc=medi) + (2 = *) + (3 join)) + + ("(.)(T*)(.*)" + (1 otf:syrc=fina) + (2 = *) + (3 disjoin)))) + + (disjoin + (cond + ("(D)(T*)([^U].*)" + (1 otf:syrc=init) + (2 = *) + (3 join)) + + ("(r)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 dalath-rish)) + + ("(A)(T*)([^U].*)" + (1 otf:syrc=med2) + (2 = *) + (3 disjoin)) + + ("(A)(T*)(.*)" + (1 otf:syrc=fin2) + (2 = *) + (3 disjoin)) + + ("(.)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 disjoin)))) + + (dalath-rish + (cond + ("(D)(T*)([^U].*)" + (1 otf:syrc=init) + (2 = *) + (3 join)) + + ("(r)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 dalath-rish)) + + ("(A)(T*)([^U].*)" + (1 otf:syrc=med2) + (2 = *) + (3 disjoin)) + + ("(A)(T*)(.*)" + (1 otf:syrc=fin3) + (2 = *) + (3 disjoin)) + + ("(.)(T*)(.*)" + (1 otf:syrc=isol) + (2 = *) + (3 disjoin))))) + +;; Step 2: Other GSUB features (ligatures, etc.) + +(generator + (0 + otf:syrc=rlig,calt,liga,dlig)) + +;; Step 3: GPOS features. + +(generator + (0 + otf:syrc=)) + +;; Local Variables: +;; mode: lisp +;; End: -- 1.7.10.4