summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/alephdir/alephmem.h
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
committerKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
commit487ca4806cc046076293cf6cc5fbba0db282bac7 (patch)
tree847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/web2c/alephdir/alephmem.h
parenta3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (diff)
texk 1
git-svn-id: svn://tug.org/texlive/trunk@1485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/alephdir/alephmem.h')
-rw-r--r--Build/source/texk/web2c/alephdir/alephmem.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/alephdir/alephmem.h b/Build/source/texk/web2c/alephdir/alephmem.h
new file mode 100644
index 00000000000..28704c3aacf
--- /dev/null
+++ b/Build/source/texk/web2c/alephdir/alephmem.h
@@ -0,0 +1,129 @@
+/* alephmem.h: C declarations for types and accessing routines in aleph.c
+
+This file is part of the Aleph project, which
+is based on the web2c distribution of TeX.
+
+Copyleft (c) 2004 the Aleph team
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+This 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+
+extern boolean new_input_line ();
+extern boolean newinputln ();
+extern int getc_two ();
+extern int getfilemode ();
+extern void ungetc_two ();
+extern int ocptemp;
+
+#define newinputline(stream, mode, flag) new_input_line (stream, mode)
+
+extern memoryword **fonttables;
+extern memoryword **fontsorttables;
+extern int **ocptables;
+
+typedef struct hashw
+{
+ integer p;
+ struct hashw *ptr;
+ memoryword mw;
+} hashword;
+
+extern hashword hashtable[];
+extern hashword *createhashpos();
+extern hashword *createeqtbpos();
+extern hashword *createxeqlevel();
+extern void inithhashtable();
+extern void dumphhashtable();
+extern void undumphhashtable();
+extern void allocatefonttable();
+extern void dumpfonttable();
+extern void undumpfonttable();
+extern void allocatefontsorttable();
+extern void dumpfontsorttable();
+extern void undumpfontsorttable();
+extern void allocateocptable();
+extern void dumpocptable();
+extern void undumpocptable();
+extern void odateandtime();
+extern void btestin();
+extern void runexternalocp();
+
+#define initeqtbtable() inithhashtable();
+#define dumpeqtbtable() dumphhashtable();
+#define undumpeqtbtable() undumphhashtable();
+
+#define HASHTABLESIZE 23123
+#define neweqtb(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw) : \
+ (createeqtbpos(a)->mw))
+#define neweqtbint(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.cint) : \
+ (createeqtbpos(a)->mw.cint))
+#define neweqtbsc(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.cint) : \
+ (createeqtbpos(a)->mw.cint))
+#define newequiv(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.rh) : \
+ (createeqtbpos(a)->mw.hh.rh))
+#define newequiv1(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.cint1) : \
+ (createeqtbpos(a)->mw.cint1))
+#define neweqlevel(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.b1) : \
+ (createeqtbpos(a)->mw.hh.b1))
+#define neweqtype(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.b0) : \
+ (createeqtbpos(a)->mw.hh.b0))
+#define setneweqtb(a,v) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw=v) : \
+ (createeqtbpos(a)->mw=v))
+#define setneweqtbint(a,v) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.cint=v) : \
+ (createeqtbpos(a)->mw.cint=v))
+#define setneweqtbsc(a,v) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.cint=v) : \
+ (createeqtbpos(a)->mw.cint=v))
+#define setequiv(a,v) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.rh=v) : \
+ (createeqtbpos(a)->mw.hh.rh=v))
+#define setequiv1(a,v) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.cint1=v) : \
+ (createeqtbpos(a)->mw.cint1=v))
+#define seteqlevel(a,v) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.b1=v) : \
+ (createeqtbpos(a)->mw.hh.b1=v))
+#define seteqtype(a,v) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.b0=v) : \
+ (createeqtbpos(a)->mw.hh.b0=v))
+
+#define newhashnext(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.v.LH) : \
+ (createhashpos(a)->mw.hh.v.LH))
+#define newhashtext(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.v.RH) : \
+ (createhashpos(a)->mw.hh.v.RH))
+#define sethashnext(a,d) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.v.LH=d) : \
+ (createhashpos(a)->mw.hh.v.LH=d))
+#define sethashtext(a,d) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.hh.v.RH=d) : \
+ (createhashpos(a)->mw.hh.v.RH=d))
+
+#define newxeqlevel(a) (((a)==hashtable[(a)%HASHTABLESIZE].p) ? \
+ (hashtable[(a)%HASHTABLESIZE].mw.cint) : \
+ (createxeqlevel(a)->mw.cint))
+
+#define setintzero(w,a) ((w).cint=(a))
+#define setintone(w,a) ((w).cint1=(a))