summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/xetexdir/xetex.h
diff options
context:
space:
mode:
authorJonathan Kew <jfkthame@googlemail.com>2006-07-26 16:19:45 +0000
committerJonathan Kew <jfkthame@googlemail.com>2006-07-26 16:19:45 +0000
commit622bf4a7c90729be28a038c49e4c237ce9f31297 (patch)
tree77466d5c0a89c433bd1c08f4cbeaf410fda7b25c /Build/source/texk/web2c/xetexdir/xetex.h
parente88aafe4ca4779a73487925dea63e8b55dc5e251 (diff)
added main xetex source directory
git-svn-id: svn://tug.org/texlive/trunk@1920 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/xetexdir/xetex.h')
-rw-r--r--Build/source/texk/web2c/xetexdir/xetex.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/xetexdir/xetex.h b/Build/source/texk/web2c/xetexdir/xetex.h
new file mode 100644
index 00000000000..2078449f499
--- /dev/null
+++ b/Build/source/texk/web2c/xetexdir/xetex.h
@@ -0,0 +1,100 @@
+/****************************************************************************\
+ Part of the XeTeX typesetting system
+ copyright (c) 1994-2006 by SIL International
+ written by Jonathan Kew
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL SIL INTERNATIONAL BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of SIL International
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Software without prior written
+authorization from SIL International.
+\****************************************************************************/
+
+/* additional declarations we want to slip in for xetex */
+
+#define native_node_size 6
+#define native_node_text(p) ((unsigned short*)(&(mem[(p) + native_node_size])))
+
+#define getnativechar(p,i) native_node_text(p)[i]
+#define setnativechar(p,i,v) native_node_text(p)[i] = v
+
+/* p is native_word node; g is XeTeX_use_glyph_metrics flag */
+#define setnativemetrics(p,g) measure_native_node(&(mem[p]), g)
+
+#define setnativeglyphmetrics(p,g) measure_native_glyph(&(mem[p]), g)
+
+#define setjustifiednativeglyphs(p) store_justified_native_glyphs(&(mem[p]))
+
+#define getnativeitaliccorrection(p) get_native_ital_corr(&(mem[p]))
+#define getnativeglyphitaliccorrection(p) get_native_glyph_ital_corr(&(mem[p]))
+
+#define makexdvglypharraydata(p) makeXDVGlyphArrayData(&(mem[p]))
+#define xdvbufferbyte(i) xdvbuffer[i]
+
+#define pic_node_size 8
+
+#define deref(p) (*(p))
+
+#define findpicfile(a,b,c,d) find_pic_file(a, b, c, d)
+
+#define picpathbyte(p,i) ((unsigned char*)&(mem[p+pic_node_size]))[i]
+
+#define dviopenout(f) open_dvi_output(&(f))
+
+#define readcint1(x) (x).cint1
+#define setcint1(x,y) (x).cint1 = (y)
+
+#define delcode1(x) readcint1(eqtb[xetexdelcodebase+(x)])
+#define setdelcode1(x,y) setcint1(eqtb[xetexdelcodebase+(x)],(y))
+
+#define casttoptr(x) (void*)(x)
+#define casttointeger(x) (long)(x)
+#define glyphinfobyte(p,k) ((unsigned char*)p)[k]
+#define casttoushort(x) (unsigned short)(x)
+
+/* easier to do the bit-twiddling here than in Pascal */
+/* read fields from a 32-bit math code */
+#define mathfamfield(x) (((unsigned)(x) >> 24) & 0xFF)
+#define mathclassfield(x) (((unsigned)(x) >> 21) & 0x07)
+#define mathcharfield(x) ((unsigned)(x) & 0x1FFFFF)
+/* calculate pieces to assign to a math code */
+#define setfamilyfield(x) (((unsigned)(x) & 0xFF) << 24)
+#define setclassfield(x) (((unsigned)(x) & 0x07) << 21)
+
+/* Unicode file reading modes */
+#define AUTO 0 /* default: will become one of 1..3 at file open time, after sniffing */
+#define UTF8 1
+#define UTF16BE 2
+#define UTF16LE 3
+#define RAW 4
+#define ICUMAPPING 5
+
+/* we don't use xchr, so change the cpascal.h definition of this... */
+#undef Xchr
+#define Xchr(x) (x)
+
+#ifdef XETEX_MAC
+#include <Carbon/Carbon.h> /* for Mac OS X, it's handy to have the Carbon APIs available */
+#endif
+
+#include "trans.h" /* functions for affine transform operations */
+#include "TECkit_Common.h" /* include this before XeTeX_ext.h */
+#include "XeTeX_ext.h" /* other extension functions */