Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

611093 views
1
/****************************************************************************
2
**
3
*W utils.h XGAP Source Frank Celler
4
**
5
**
6
*Y Copyright 1995-1997, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
7
*Y Copyright 1997, Frank Celler, Huerth, Germany
8
**
9
** This file contains the utility functions and macros used in XGAP,
10
** basically the list functions ('ELM', 'LEN', 'AddList', and 'List') and
11
** the debug macro ('DEBUG'). This file also includes all the necessary
12
** system and X11 include files and defines the following data types:
13
**
14
** Boolean "True" or "False" (defined by X11)
15
** Char a "Char" will be able to hold one character
16
** Int a 32-bit signed integer
17
** Long an integer able to hold a pointer
18
** Pointer a generic pointer
19
** Short a 16-bit signed integer
20
** String an array of chars
21
** UChar unsigned version of "Char"
22
** UInt a 32-bit unsigned integer
23
** ULong unsigned version of "Long"
24
** UShort a 16-bit unsigned integer
25
**
26
** List( <len> )
27
** -------------
28
** 'List' creates a new list able to hold <len> pointers of type 'Pointer'.
29
**
30
** AddList( <lst>, <elm> )
31
** -----------------------
32
** 'AddList' appends the new element <elm> of type 'Pointer' to <lst>,
33
** enlarging the list if necessary.
34
**
35
** ELM( <lst>, <i> )
36
** -----------------
37
** 'ELM' returns the <i>.th element of <lst>.
38
**
39
** LEN( <lst> )
40
** ------------
41
** 'LEN' returns the length of <lst>.
42
**
43
** DEBUG( <type>, ( <debug-text>, ... ) )
44
** --------------------------------------
45
** 'DEBUG' uses 'printf' to print the <debug-text> in case that 'Debug' &&
46
** <type> is true. The text is preceded by the line number and the source
47
** file name. The following types are available: D_LIST, D_XCMD, D_COMM.
48
*/
49
#ifndef _utils_h
50
#define _utils_h
51
52
53
/****************************************************************************
54
**
55
*F Include . . . . . . . . . . . . . . . . . . . . . . system include files
56
*/
57
#include <config.h>
58
59
#if HAVE_TERMIO_H
60
#undef HAVE_SGTTY_H
61
#define HAVE_SGTTY_H 0
62
#endif
63
64
#include <stdio.h> /* standard C i/o library */
65
66
#if STDC_HEADERS
67
# include <stdlib.h> /* standard C library */
68
# include <stdarg.h> /* variable argument list */
69
#endif
70
71
#if HAVE_LIBC_H
72
# include <libc.h> /* standard NeXT C library */
73
#endif
74
75
#if HAVE_UNISTD_H
76
# include <unistd.h> /* another standard C library */
77
#endif
78
79
#include <pwd.h>
80
81
#if TIME_WITH_SYS_TIME
82
# include <sys/time.h>
83
# include <time.h>
84
#else
85
# if HAVE_SYS_TIME_H
86
# include <sys/time.h>
87
# else
88
# include <time.h>
89
# endif
90
#endif
91
92
#if HAVE_FCNTL_H
93
#include <fcntl.h>
94
#endif
95
96
#include <sys/errno.h>
97
#include <sys/stat.h>
98
#include <sys/types.h>
99
#include <sys/resource.h>
100
101
#if HAVE_SYS_WAIT_H
102
# include <sys/wait.h>
103
#endif
104
105
#include <sys/param.h>
106
107
#if HAVE_TERMIOS_H
108
# include <termios.h>
109
#else
110
#if HAVE_TERMIO_H
111
# include <termio.h>
112
#else
113
# include <sgtty.h>
114
#endif
115
#endif
116
117
#if HAVE_SIGNAL_H
118
# include <signal.h>
119
#endif
120
121
#if HAVE_SYS_SELECT_H
122
# include <sys/select.h>
123
#endif
124
125
126
/****************************************************************************
127
**
128
*F Include . . . . . . . . . . . . . . . . . . . . . . . . X11 include files
129
*/
130
#include <X11/X.h> /* X11 basic definition */
131
#include <X11/Xos.h>
132
#include <X11/Xatom.h>
133
#include <X11/Xlib.h>
134
#include <X11/StringDefs.h>
135
#include <X11/keysym.h>
136
137
#include <X11/Intrinsic.h> /* X Intrinsic */
138
#include <X11/IntrinsicP.h>
139
#include <X11/CoreP.h>
140
#include <X11/Composite.h>
141
#include <X11/Shell.h>
142
143
#include <X11/cursorfont.h> /* cursor font */
144
145
#include <X11/Xaw/AsciiText.h> /* Athena widgets */
146
#include <X11/Xaw/Box.h>
147
#include <X11/Xaw/Cardinals.h>
148
#include <X11/Xaw/Command.h>
149
#include <X11/Xaw/Dialog.h>
150
#include <X11/Xaw/Form.h>
151
#include <X11/Xaw/Label.h>
152
#include <X11/Xaw/List.h>
153
#include <X11/Xaw/MenuButton.h>
154
#include <X11/Xaw/Paned.h>
155
#include <X11/Xaw/Scrollbar.h>
156
#include <X11/Xaw/SimpleMenu.h>
157
#include <X11/Xaw/SmeBSB.h>
158
#include <X11/Xaw/SmeLine.h>
159
#include <X11/Xaw/Text.h>
160
#include <X11/Xaw/TextP.h>
161
#include <X11/Xaw/TextSink.h>
162
#include <X11/Xaw/TextSrc.h>
163
#include <X11/Xaw/TextSrcP.h>
164
#include <X11/Xaw/Viewport.h>
165
#include <X11/Xaw/ViewportP.h>
166
#include <X11/Xaw/XawInit.h>
167
168
169
/****************************************************************************
170
**
171
*F Prototypes . . . . . . . . . . . . . . . . . . . . . . system prototypes
172
*/
173
#if ! HAVE_UNISTD_H && ! HAVE_LIBC_H
174
extern int write();
175
#endif
176
177
extern pid_t wait3();
178
extern int select();
179
180
/* IRIX System V.4 running IRIX Release 5.3 already defines ioctl and */
181
/* therefore doesn't like the declaration of ioctl */
182
183
/* extern int ioctl(); */
184
185
186
/****************************************************************************
187
**
188
189
*T Char . . . . . . . . . . . . . . . . . . . . . . . . . . . . a character
190
*/
191
typedef char Char;
192
193
194
/****************************************************************************
195
**
196
*T Int . . . . . . . . . . . . . . . . . . . . . . . . . . . a signed 32-bit
197
*/
198
typedef int Int;
199
200
201
/****************************************************************************
202
**
203
*T Long . . . . . . . . . . . . . . a signed integer able to hold a pointer
204
*/
205
typedef long Long;
206
207
208
/****************************************************************************
209
**
210
*T Pointer . . . . . . . . . . . . . . . . . . . . . . . . a generic pointer
211
*/
212
typedef void * Pointer;
213
214
215
/****************************************************************************
216
**
217
*T Short . . . . . . . . . . . . . . . . . . . . . . . . . . a signed 16-bit
218
*/
219
typedef short Short;
220
221
222
/****************************************************************************
223
**
224
*T UChar . . . . . . . . . . . . . . . . . . . . . . . an unsigned character
225
*/
226
typedef unsigned char UChar;
227
228
229
/****************************************************************************
230
**
231
*T UInt . . . . . . . . . . . . . . . . . . . . . . . . an unsigned 32-bit
232
*/
233
typedef unsigned int UInt;
234
235
236
/****************************************************************************
237
**
238
*T ULong . . . . . . . . . . . . an unsigned integer able to hold a pointer
239
*/
240
typedef unsigned long ULong;
241
242
243
/****************************************************************************
244
**
245
*T UShort . . . . . . . . . . . . . . . . . . . . . . . an unsigned 16-bit
246
*/
247
typedef unsigned short UShort;
248
249
250
/****************************************************************************
251
**
252
253
*F DEBUG(( <str> )) . . . . . . . . . . . . . . . print <str> as debug info
254
*/
255
extern Int Debug;
256
257
#define D_LIST 1
258
#define D_XCMD 2
259
#define D_COMM 4
260
261
#define DEBUG(a,b) { \
262
if ( Debug & a ) { \
263
printf( "%04d:%s: ", __LINE__, __FILE__ ); \
264
printf b; \
265
} \
266
} while(0)
267
268
269
/****************************************************************************
270
**
271
*F MAX( <a>, <b> ) . . . . . . . . . . . . . . . . . maximum of <a> and <b>
272
*/
273
#undef MAX
274
#define MAX(a,b) (((a) < (b)) ? (b) : (a))
275
276
277
/****************************************************************************
278
**
279
*F MIN( <a>, <b> ) . . . . . . . . . . . . . . . . . minimum of <a> and <b>
280
*/
281
#undef MIN
282
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
283
284
285
/****************************************************************************
286
**
287
288
*T TypeList . . . . . . . . . . . . . . . . . . . . . . . . list structure
289
*/
290
typedef struct _list
291
{
292
UInt size;
293
UInt len;
294
Pointer * ptr;
295
}
296
* TypeList;
297
298
299
/****************************************************************************
300
**
301
*F ELM( <lst>, <i> ) . . . . . . . . . . . . . . . . <i>th element of a list
302
*/
303
#define ELM(lst,i) (lst->ptr[i])
304
305
306
/****************************************************************************
307
**
308
*F LEN( <lst> ) . . . . . . . . . . . . . . . . . . . . . length of a list
309
*/
310
#define LEN(lst) (lst->len)
311
312
313
/****************************************************************************
314
**
315
*F AddList( <lst>, <elm> ) . . . . . . . . add list element <elm> to <list>
316
*/
317
#ifdef DEBUG_ON
318
extern void ADD_LIST( String, Int, TypeList, Pointer );
319
# define AddList(a,b) ADD_LIST( __FILE__, __LINE__, a, b )
320
#else
321
extern void AddList( TypeList, Pointer );
322
#endif
323
324
325
/****************************************************************************
326
**
327
*F List( <len> ) . . . . . . . . . . . . . . . . . . . create a new list
328
*/
329
#ifdef DEBUG_ON
330
extern TypeList LIST( String, Int, UInt );
331
# define List(a) LIST( __FILE__, __LINE__, a )
332
#else
333
extern TypeList List( UInt );
334
#endif
335
336
#endif
337
338
339
/****************************************************************************
340
**
341
342
*E utils.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . ends here
343
*/
344
345