summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/inc/utype.h
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2009-03-27 15:30:55 +0000
committerTaco Hoekwater <taco@elvenkind.com>2009-03-27 15:30:55 +0000
commit178de0871d690556af74f3768c11bc812b07f347 (patch)
treea939c31adc90d6207848effaec87dd78ec00e658 /Build/source/texk/web2c/luatexdir/luafontloader/fontforge/inc/utype.h
parent4865b23b5199697829e4e6633f2f697b4634c462 (diff)
Import of luatex 0.37.0 (autoreconf has not been run yet!)
git-svn-id: svn://tug.org/texlive/trunk@12529 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luafontloader/fontforge/inc/utype.h')
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/inc/utype.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/inc/utype.h b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/inc/utype.h
new file mode 100644
index 00000000000..7b55c1cf97a
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/inc/utype.h
@@ -0,0 +1,100 @@
+#ifndef _UTYPE_H
+#define _UTYPE_H
+
+#define ____L 0x1
+#define ____U 0x2
+#define ____TITLE 0x4
+#define ____D 0x8
+#define ____S 0x10
+#define ____P 0x20
+#define ____X 0x40
+#define ____ZW 0x80
+#define ____L2R 0x100
+#define ____R2L 0x200
+#define ____ENUM 0x400
+#define ____ANUM 0x800
+#define ____ENS 0x1000
+#define ____CS 0x2000
+#define ____ENT 0x4000
+#define ____COMBINE 0x8000
+#define ____BB 0x10000
+#define ____BA 0x20000
+#define ____NS 0x40000
+#define ____NE 0x80000
+#define ____UB 0x100000
+#define ____NB 0x8000000
+#define ____AL 0x200000
+#define ____ID 0x400000
+#define ____INITIAL 0x800000
+#define ____MEDIAL 0x1000000
+#define ____FINAL 0x2000000
+#define ____ISOLATED 0x4000000
+#define ____DECOMPNORM 0x10000000
+
+#define ____COMBININGCLASS 0xff
+#define ____ABOVE 0x100
+#define ____BELOW 0x200
+#define ____OVERSTRIKE 0x400
+#define ____LEFT 0x800
+#define ____RIGHT 0x1000
+#define ____JOINS2 0x2000
+#define ____CENTERLEFT 0x4000
+#define ____CENTERRIGHT 0x8000
+#define ____CENTEREDOUTSIDE 0x10000
+#define ____OUTSIDE 0x20000
+#define ____LEFTEDGE 0x80000
+#define ____RIGHTEDGE 0x40000
+#define ____TOUCHING 0x100000
+#define ____COMBININGPOSMASK 0x1fff00
+
+extern const unsigned short ____tolower[];
+#if 0
+extern const unsigned short ____toupper[];
+#endif
+extern const unsigned int ____utype[];
+
+#define tolower(ch) (____tolower[(ch)+1])
+#if 0
+#define toupper(ch) (____toupper[(ch)+1])
+#endif
+#define islower(ch) (____utype[(ch)+1]&____L)
+#define isupper(ch) (____utype[(ch)+1]&____U)
+#define istitle(ch) (____utype[(ch)+1]&____TITLE)
+#define isalpha(ch) (____utype[(ch)+1]&(____L|____U|____TITLE|____AL))
+#define isdigit(ch) (____utype[(ch)+1]&____D)
+#define isalnum(ch) (____utype[(ch)+1]&(____L|____U|____TITLE|____AL|____D))
+#define isideographic(ch) (____utype[(ch)+1]&____ID)
+#define isideoalpha(ch) (____utype[(ch)+1]&(____ID|____L|____U|____TITLE|____AL))
+#define isspace(ch) (____utype[(ch)+1]&____S)
+#define ispunct(ch) (____utype[(ch)+1]&_____P)
+#define ishexdigit(ch) (____utype[(ch)+1]&____X)
+#define iszerowidth(ch) (____utype[(ch)+1]&____ZW)
+#define islefttoright(ch) (____utype[(ch)+1]&____L2R)
+#define isrighttoleft(ch) (____utype[(ch)+1]&____R2L)
+#define iseuronumeric(ch) (____utype[(ch)+1]&____ENUM)
+#define isarabnumeric(ch) (____utype[(ch)+1]&____ANUM)
+#define iseuronumsep(ch) (____utype[(ch)+1]&____ENS)
+#define iscommonsep(ch) (____utype[(ch)+1]&____CS)
+#define iseuronumterm(ch) (____utype[(ch)+1]&____ENT)
+#define iscombining(ch) (____utype[(ch)+1]&____COMBINE)
+#define isbreakbetweenok(ch1,ch2) (((____utype[(ch1)+1]&____BA) && !(____utype[(ch2)+1]&____NS)) || ((____utype[(ch2)+1]&____BB) && !(____utype[(ch1)+1]&____NE)) || (!(____utype[(ch2)+1]&____D) && ch1=='/'))
+#define isnobreak(ch) (____utype[(ch)+1]&____NB)
+#define isarabinitial(ch) (____utype[(ch)+1]&____INITIAL)
+#define isarabmedial(ch) (____utype[(ch)+1]&____MEDIAL)
+#define isarabfinal(ch) (____utype[(ch)+1]&____FINAL)
+#define isarabisolated(ch) (____utype[(ch)+1]&____ISOLATED)
+
+#define isdecompositionnormative(ch) (____utype[(ch)+1]&____DECOMPNORM)
+
+extern struct arabicforms {
+ unsigned short initial, medial, final, isolated;
+ unsigned int isletter: 1;
+ unsigned int joindual: 1;
+ unsigned int required_lig_with_alef: 1;
+} ArabicForms[256]; /* for chars 0x600-0x6ff, subtract 0x600 to use array */
+
+#define _SOFT_HYPHEN 0xad
+
+#define _DOUBLE_S 0xdf
+
+#endif