blob: c5fd23095f3d26671adc9f267f3b421fa076166f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
/*
* SPP.H -- Language definitions for interfacing SPP to C and C to UNIX.
* Note that many of the definitions must agree with those in the SPP
* compiler and with <iraf.h> and <mach.h>.
*/
/* Assorted machine constants. [MACHDEP]
* Use osb$zzeps.f to compute the machine epsilon.
*/
#define OSOK 0 /* normal successful completion */
#define LEN_JUMPBUF 16 /* save buffer for ZSVJMP/ZDOJMP */
#define EPSILON (1.192e-7) /* smallest real E s.t. (1.0+E > 1.0) */
#define EPSILOND (2.220d-16) /* double precision epsilon */
#define MAX_LONG 2147483647
#define FNNODE_CHAR '!' /* node name delimiter character */
/* Indefinite valued numbers. (potentially MACHDEP)
*/
#define INDEFS (-32767)
#define INDEFL (0x80000001)
#define INDEFI INDEFL
#define INDEFR 1.6e38
#define INDEFD 1.6e38
#define INDEFX (INDEF,INDEF)
#define INDEF INDEFR
/* Oft used constants.
*/
#define SZ_LINE 161
#define SZ_FNAME 63
#define SZ_PATHNAME 127
#define EOS '\0'
#define ERR (-1)
#define OK 0
#define YES 1
#define NO 0
#define MAX_DIGITS 25
#define min(a,b) (((a)<(b))?(a):(b))
#define max(a,b) (((a)>(b))?(a):(b))
# ifndef NULL
#define NULL 0
# endif
# ifndef EOF
#define EOF (-1)
#endif
/* SPP constants.
*/
#define XEOS 0
#define XERR (-1)
#define XEOF (-2)
#define XBOF (-3)
#define XOK 0
#define XNO 0
#define XYES 1
#define BOFL (-3L)
#define EOFL (-2L)
/* SPP datatypes. (potentially MACHDEP)
*/
# ifndef XCHAR
#define XCHAR short
# endif
# ifndef XINT
#define XINT int
# endif
#define PKCHAR XCHAR
#define XUBYTE unsigned char
#define XBOOL int
#define XSHORT short
#define XUSHORT unsigned short
#define XLONG long
#define XREAL float
#define XDOUBLE double
#define XCOMPLEX struct cplx
#define XSTRUCT int
#define XPOINTER int
struct cplx {
float r;
float i;
};
#define TY_BOOL 1 /* SPP datatype codes */
#define TY_CHAR 2
#define TY_SHORT 3
#define TY_INT 4
#define TY_LONG 5
#define TY_REAL 6
#define TY_DOUBLE 7
#define TY_COMPLEX 8
#define TY_STRUCT 9
#define TY_POINTER 10
/* File I/O constants.
*/
#define READ_ONLY 1 /* file access modes */
#define READ_WRITE 2
#define WRITE_ONLY 3
#define APPEND 4
#define NEW_FILE 5
#define TEXT_FILE 11 /* file types */
#define BINARY_FILE 12
#define DIRECTORY_FILE 13
#define CLIN 1
#define CLOUT 2
#define STDIN 3
#define STDOUT 4
#define STDERR 5
#define STDGRAPH 6
#define STDIMAGE 7
#define STDPLOT 8
#define PSIOCTRL 9
/* Filename Mapping definitions.
*/
#define VFN_READ 1 /* VFN access modes for VFNOPEN */
#define VFN_WRITE 2
#define VFN_UNMAP 3
#define VFN_NOUPDATE 0 /* update flag for VFNCLOSE */
#define VFN_UPDATE 1
/* Oft referenced functions.
*/
XCHAR *c_sppstr();
XCHAR *c_strupk();
char *c_strpak();
#define D_spp
|