7 /*****************************************************************************/
8 /* MODULE NAME: ToolBox.h MODULE TYPE: (dat) */
9 /*****************************************************************************/
11 /*****************************************************************************/
13 /*****************************************************************************/
14 /* MODULE INTERFACE: */
15 /*****************************************************************************/
17 /*****************************************************************************/
18 /* MODULE RESOURCES: */
19 /*****************************************************************************/
21 /*****************************************************************************/
22 /* NOTE: The type names that have been chosen here are somewhat weird on */
23 /* purpose, in order to avoid name clashes with system header files */
24 /* and your own application(s) which might - directly or indirectly - */
25 /* include this definitions file. */
26 /*****************************************************************************/
28 typedef unsigned char N_char;
29 typedef unsigned char N_byte;
30 typedef unsigned short N_short;
31 typedef unsigned short N_shortword;
32 typedef unsigned int N_int;
33 typedef unsigned int N_word;
34 typedef unsigned long N_long;
35 typedef unsigned long N_longword;
37 /* Mnemonic 1: The natural numbers, N = { 0, 1, 2, 3, ... } */
38 /* Mnemonic 2: Nnnn = u_N_signed, _N_ot signed */
40 typedef signed char Z_char;
41 typedef signed char Z_byte;
42 typedef signed short Z_short;
43 typedef signed short Z_shortword;
44 typedef signed int Z_int;
45 typedef signed int Z_word;
46 typedef signed long Z_long;
47 typedef signed long Z_longword;
49 /* Mnemonic 1: The whole numbers, Z = { 0, -1, 1, -2, 2, -3, 3, ... } */
50 /* Mnemonic 2: Zzzz = Ssss_igned */
52 typedef void *voidptr;
53 typedef N_char *charptr;
54 typedef N_byte *byteptr;
55 typedef N_short *shortptr;
56 typedef N_shortword *shortwordptr;
57 typedef N_int *intptr;
58 typedef N_word *wordptr;
59 typedef N_long *longptr;
60 typedef N_longword *longwordptr;
62 typedef N_char *N_charptr;
63 typedef N_byte *N_byteptr;
64 typedef N_short *N_shortptr;
65 typedef N_shortword *N_shortwordptr;
66 typedef N_int *N_intptr;
67 typedef N_word *N_wordptr;
68 typedef N_long *N_longptr;
69 typedef N_longword *N_longwordptr;
71 typedef Z_char *Z_charptr;
72 typedef Z_byte *Z_byteptr;
73 typedef Z_short *Z_shortptr;
74 typedef Z_shortword *Z_shortwordptr;
75 typedef Z_int *Z_intptr;
76 typedef Z_word *Z_wordptr;
77 typedef Z_long *Z_longptr;
78 typedef Z_longword *Z_longwordptr;
89 #ifdef MACOS_TRADITIONAL
90 #define boolean Boolean
92 typedef enum { false = FALSE, true = TRUE } boolean;
96 #define and && /* logical (boolean) operators: lower case */
100 #define AND & /* binary (bitwise) operators: UPPER CASE */
108 #define mod % /* arithmetic operators */
111 #define blockdef(name,size) unsigned char name[size]
112 #define blocktypedef(name,size) typedef unsigned char name[size]
114 /*****************************************************************************/
115 /* MODULE IMPLEMENTATION: */
116 /*****************************************************************************/
118 /*****************************************************************************/
120 /*****************************************************************************/
121 /* VERSION HISTORY: */
122 /*****************************************************************************/
124 /* Version 5.5 03.10.04 Added compiler directives for C++. */
125 /* Version 5.4 08.09.02 Added conditional changes for MacOS/MacPerl. */
126 /* Version 5.3 12.05.98 Completed history. */
127 /* Version 5.0 01.03.98 "Definitions.h" -> "ToolBox.h". */
128 /* Version 4.0 24.03.97 "lib_defs.h" -> "Definitions.h". */
129 /* Version 3.0 16.02.97 Changed frames from 40 to 80 columns. */
130 /* Version 2.0 30.11.96 byte -> base etc. */
131 /* Version 1.2a 21.11.95 unchar -> N_char etc. Added MS-DOS specifics. */
132 /* Version 1.1 18.11.95 uchar -> unchar etc. */
133 /* Version 1.01 16.11.95 Removed MS-DOS specifics. */
134 /* Version 1.0 12.11.95 First version under UNIX (with Perl modules). */
135 /* Version 0.9 01.11.93 First version under MS-DOS. */
137 /*****************************************************************************/
139 /*****************************************************************************/
142 /* mailto:sb@engelschall.com */
143 /* http://www.engelschall.com/u/sb/download/ */
145 /*****************************************************************************/
147 /*****************************************************************************/
149 /* Copyright (c) 1995 - 2004 by Steffen Beyer. */
150 /* All rights reserved. */
152 /*****************************************************************************/
154 /*****************************************************************************/
156 /* This library is free software; you can redistribute it and/or */
157 /* modify it under the terms of the GNU Library General Public */
158 /* License as published by the Free Software Foundation; either */
159 /* version 2 of the License, or (at your option) any later version. */
161 /* This library is distributed in the hope that it will be useful, */
162 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
163 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */
164 /* Library General Public License for more details. */
166 /* You should have received a copy of the GNU Library General Public */
167 /* License along with this library; if not, write to the */
168 /* Free Software Foundation, Inc., */
169 /* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
170 /* or download a copy from ftp://ftp.gnu.org/pub/gnu/COPYING.LIB-2.0 */
172 /*****************************************************************************/