1 /*****************************************************************************
2 ** This is part of the CTSim program
3 ** Copyright (C) 1983-2000 Kevin Rosenberg
5 ** $Id: kstddef.h,v 1.4 2000/04/28 18:00:55 kevin Exp $
7 ** Revision 1.4 2000/04/28 18:00:55 kevin
10 ** Revision 1.3 2000/04/28 17:38:16 kevin
11 ** Removed unused files
13 ** Revision 1.2 2000/04/28 14:14:16 kevin
14 ** *** empty log message ***
17 ** This program is free software; you can redistribute it and/or modify
18 ** it under the terms of the GNU General Public License (version 2) as
19 ** published by the Free Software Foundation.
21 ** This program is distributed in the hope that it will be useful,
22 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
23 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 ** GNU General Public License for more details.
26 ** You should have received a copy of the GNU General Public License
27 ** along with this program; if not, write to the Free Software
28 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29 ******************************************************************************/
30 /******************************************************************************
35 * Author: Kevin Rosenberg
36 * Purpose: Header file containing KRL standard C definitions
37 * Date Started: Dec. 83
40 * Header file contains KRL standard C definitions
44 *****************************************************************************/
56 #define STR_MAX_LEN 255
57 #define STR_SIZE STR_MAX_LEN+1
60 typedef signed int bool; /* Boolean variable type */
63 typedef unsigned char string[STR_SIZE];
65 #define UNSIGNLONG unsigned long int
66 #define UNSIGNCHAR unsigned char
77 /*----------------------------------------------------------------------*/
79 #define SHOW(var, fmt) fprintf (stderr, "var = fmt\n", var)
81 /*----------------------------------------------------------------------*/
83 #define INTERNAL_FUNC static
84 #define INTERNAL_VAR static
86 /*----------------------------------------------------------------------*/
92 #define ETX 26 /* end of text signal for PC-DOS */
94 /*----------------------------------------------------------------------*/
96 #define MAXPATHNAME 65 /* max length of pathname + 1 */
97 #define MAXFILENAME 13 /* rootname(8) + '.'(1) + extension(3) + EOS */
100 #define MAXFULLNAME MAXPATHNAME + MAXFILENAME
102 /*----------------------------------------------------------------------*/
104 #define ABS(x) ((x) < 0 ? -(x) : (x))
105 #define SQR(x) ((x) * (x))
107 #define MAX(a,b) ((a) > (b) ? (a) : (b))
108 #define MIN(a,b) ((a) <= (b) ? (a) : (b))
109 #define ISWAP(a,b) {int i; i = a; a = b; b = i;}
111 #define CLIP(n,lb,ub) if (n < lb) n = lb; else if (n > ub) n = ub
112 #define FOREVER for (;;)
113 #define STR_EQUAL(s1,s2) (strcmp (s1, s2) == 0)
115 /*----------------------------------------------------------------------*/
118 int hour, minute, second, hs;
122 int year, month, date, dow;
130 typedef struct time_st TIME;
131 typedef struct date_st DATE;
132 typedef struct timedate_st TIMEDATE;
134 /*----------------------------------------------------------------------*/
136 #define ERR_WARNING 0
140 /*----------------------------------------------------------------------*/
142 /* codes for open command */
145 #define OPEN_RDONLY 0x8000 /* Lattice codes for binary i/o */
146 #define OPEN_WRONLY 0x8001
147 #define OPEN_RDWR 0x8002
149 #define OPEN_RDONLY O_RDONLY /* other system use standard codes */
150 #define OPEN_WRONLY O_WRONLY /* for binary */
151 #define OPEN_RDWR O_RDWR
153 #define OPEN_RDONLY 0 /* other system use standard codes */
154 #define OPEN_WRONLY 1 /* for binary */
158 /*----------------------------------------------------------------------*/
160 /* codes for input (inp_*) routines */
165 #define INP_NEITHER 'b'
166 #define INP_RETURN 'r'
167 #define INP_BREAK 0x8000
174 #define S_IWRITE S_IWUSR
178 float *alloc_float(int n);
179 double *alloc_double(int n);
180 int *alloc_int(int n);
182 int file_exists(const char *fname);
184 double fmax(double a, double b);
186 int get_yn(const char *prompt);
191 char *kbasename(const char *filename);
193 int iclip(int n, int lb, int ub);
195 char *str_skip_head(const char *str, const char *charlist);
197 char *str_lower(char *s);
199 char *str_save(const char *s);
201 char *str_upper(char *str);
203 char *str_wrm_tail(char *str);
205 void *sys_alloc(const int nbytes, const char *name);
207 void sys_error(int severity, const char *msg, ...);
208 void sys_verror(int severity, const char *msg, va_list arg);
209 void sys_error_level(int severity);
211 FILE *sys_fopen(const char *filename, const char *mode, const char *progname);
213 void sys_free(void *ptr, const char *name);
215 DATE *td_get_date(DATE *d);
216 TIME *td_get_time(TIME *t);
217 double td_current_sec(void);
218 double td_time_to_sec(TIME *t);
219 TIME *td_time_sub(const TIME *t1, const TIME *t2, TIME *tdiff);
220 TIME *td_time_add(const TIME *t1, const TIME *t2, TIME *tsum);
221 TIME *td_time_copy(TIME *to, const TIME *from);
222 TIME *td_time_norm(TIME *t);
223 void td_get_tmdt(TIMEDATE *td);
224 const char *td_str_tmdt(const TIMEDATE *td);
225 const char *td_str_time(const TIME *t);
226 const char *td_str_stime(const TIME *t);
227 const char *td_str_date(const DATE *d);
228 char *td_str_cdate(DATE *d);
229 char *td_month_name(int n);
230 char *td_day_name(int n);