r107: initial cvs import
[ctsim.git] / include / kstddef.h
index 0d052f0ea2f1acdfd024dc2c239675c426e64d06..75cde29a102805d46bbbee338813959f16ebcb08 100644 (file)
@@ -1,41 +1,49 @@
-/******************************************************************************
- *
- * FILE IDENTIFICATION
- *
- *     File Name:      STDDEF.H
- *     Author:         Kevin Rosenberg
- *     Purpose:        Header file containing KRL standard C definitions
- *     Date Started:   Dec. 83
- *
- * DESCRIPTION
- *     Header file contains KRL standard C definitions
- *
- * MODIFICATION LOG
- *
- *****************************************************************************/
+/*****************************************************************************
+** FILE IDENTIFICATION
+**
+**     File Name:      kstddef.h
+**     Author:         Kevin Rosenberg
+**     Purpose:        Header file containing KRL standard C definitions
+**     Date Started:   Dec. 83
+**
+**  This is part of the CTSim program
+**  Copyright (C) 1983-2000 Kevin Rosenberg
+**
+**  $Id: kstddef.h,v 1.18 2000/06/19 18:18:13 kevin Exp $
+**
+**
+**  This program is free software; you can redistribute it and/or modify
+**  it under the terms of the GNU General Public License (version 2) as
+**  published by the Free Software Foundation.
+**
+**  This program 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 General Public License for more details.
+**
+**  You should have received a copy of the GNU General Public License
+**  along with this program; if not, write to the Free Software
+**  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+******************************************************************************/
 
 #ifndef STDDEF_H
 #define STDDEF_H
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include "getargs.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
-#undef SHELL
+#ifdef _WIN32
+#define snprintf _snprintf
+#endif
 
 #define STR_MAX_LEN 255
 #define STR_SIZE    STR_MAX_LEN+1
 
-#ifndef bool
-typedef signed int bool;               /* Boolean variable type */
-#endif
-
-typedef unsigned char string[STR_SIZE];
-
-#define UNSIGNLONG unsigned long int
-#define UNSIGNCHAR unsigned char
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
 
 #define TRUE   1
 #define FALSE  0
@@ -43,17 +51,10 @@ typedef unsigned char string[STR_SIZE];
 #define ERROR  FALSE
 #define YES    TRUE
 #define NO     FALSE
-#define ON     TRUE
-#define OFF    FALSE
-
-/*----------------------------------------------------------------------*/
-
-#define SHOW(var, fmt)  fprintf (stderr, "var = fmt\n", var)
 
 /*----------------------------------------------------------------------*/
 
-#define INTERNAL_FUNC  static
-#define INTERNAL_VAR   static
+#define SHOW(var, fmt)  { cerr << "var = " << var << endl; }
 
 /*----------------------------------------------------------------------*/
 
@@ -61,33 +62,11 @@ typedef unsigned char string[STR_SIZE];
 #define        TAB     '\t'
 #define EOS    '\0'
 #define BLANK  ' '
-#define ETX    26      /* end of text signal for PC-DOS */
-
-/*----------------------------------------------------------------------*/
-
-#define MAXPATHNAME  65                /* max length of pathname + 1 */
-#define MAXFILENAME  13                /* rootname(8) + '.'(1) + extension(3) + EOS */
-#define MAXROOTNAME   8
-#define MAXEXTNAME    3
-#define MAXFULLNAME  MAXPATHNAME + MAXFILENAME
-
-/*----------------------------------------------------------------------*/
-
-#define ABS(x)    ((x) < 0 ? -(x) : (x))
-#define SQR(x)    ((x) * (x))
-
-#define MAX(a,b)  ((a) > (b) ? (a) : (b))
-#define MIN(a,b)  ((a) <= (b) ? (a) : (b))
-#define ISWAP(a,b) {int i; i = a; a = b; b = i;}
-
-#define CLIP(n,lb,ub)  if (n < lb) n = lb; else if (n > ub) n = ub
-#define FOREVER         for (;;)
-#define STR_EQUAL(s1,s2) (strcmp (s1, s2) == 0)
 
 /*----------------------------------------------------------------------*/
 
 struct time_st {
-       int hour, minute, second, hs;
+       int hour, minute, second, ms;
 };
 
 struct date_st {
@@ -111,13 +90,9 @@ typedef struct timedate_st TIMEDATE;
 
 /*----------------------------------------------------------------------*/
 
-/* codes for open command */
 
-#ifdef LATTICE
-#define OPEN_RDONLY  0x8000            /* Lattice codes for binary i/o */
-#define OPEN_WRONLY  0x8001
-#define OPEN_RDWR    0x8002
-#elif MICROSOFT
+/* codes for open command */
+#if MICROSOFT
 #define OPEN_RDONLY  O_RDONLY                  /* other system use standard codes */
 #define OPEN_WRONLY  O_WRONLY                  /* for binary */
 #define OPEN_RDWR    O_RDWR
@@ -129,15 +104,6 @@ typedef struct timedate_st TIMEDATE;
 
 /*----------------------------------------------------------------------*/
 
-/* codes for input (inp_*) routines */
-
-#define INP_ERROR   -1
-#define INP_NO      FALSE
-#define INP_YES     TRUE
-#define INP_NEITHER 'b'
-#define INP_RETURN  'r'
-#define INP_BREAK   0x8000
-
 #ifndef O_BINARY
 #define O_BINARY (0)
 #endif
@@ -146,108 +112,77 @@ typedef struct timedate_st TIMEDATE;
 #define S_IWRITE S_IWUSR
 #endif
 
-/* alloc.c */
-void *alloc(unsigned int nbytes);
-/* allocnum.c */
-float *alloc_float(int n);
-double *alloc_double(int n);
-int *alloc_int(int n);
-/* cant.c */
-void cant(const char *fname);
-/* cdate.c */
-char *td_str_cdate(DATE *d);
-char *td_month_name(int n);
-char *td_day_name(int n);
-/* ctoi.c */
-char *ctoi(const char *s, int *ival);
-/* fexist.c */
-int file_exists(const char *fname);
-/* fmax.c */
-double fmax(double a, double b);
-/* get_yn.c */
-int get_yn(const char *prompt);
-/* getbits.c */
-unsigned int getbits(unsigned int x, int p, int n);
-/* getch.c */
-int getch(void);
-void ungetch(int c);
-/* getdate.c */
-DATE *td_get_date(DATE *d);
-/* gettime.c */
-TIME *td_get_time(TIME *t);
-/* iclip.c */
-int iclip(int n, int lb, int ub);
-/* infofn.c */
-int infofn(unsigned int *attrib, long int *filesize, TIMEDATE *td);
-/* irand.c */
-unsigned int irand(unsigned int n);
-/* itostr.c */
-int itostr(int n, char str[], int size);
-/* ltostr.c */
-int ltostr(long val, char *cp, int base);
-/* makefnam.c */
-int makefnam(const char *rawfn, const char *template_str, char *result);
-int getfnam(const char fullname[], char pathname[], char filename[]);
-int getexten(const char *fullname, char *exten);
-int validfn(const char filename[]);
-/* putdec.c */
-void putdec(const int n, int w, FILE *fd_out);
-/* s_clip.c */
-char *str_clip_tail(char *str, unsigned int nclip);
-/* s_esc.c */
-char *str_conv_esc(const char *from, char *to);
-/* s_esc_c.c */
-char *s_esc_char(const char *str, char *c);
-/* s_get.c */
-unsigned int str_get_last_char(const char *str);
-/* s_head.c */
-char *str_skip_head(const char *str, const char *charlist);
-/* s_lower.c */
+/*----------------------------------------------------------------------*/
+
+#if defined(MICROSOFT) || ! defined(SIZEOF_INT)
+   #define SIZEOF_INT 4
+   #define SIZEOF_LONG 4
+   #define SIZEOF_SHORT 2
+   #define SIZEOF_FLOAT 4
+   #define SIZEOF_DOUBLE 8
+#endif
+
+typedef signed char kint8;
+typedef unsigned char kuint8;
+
+#if SIZEOF_INT == 4
+    typedef int kint32;
+    typedef unsigned int kuint32;
+#elif SIZEOF_LONG == 4
+    typedef long int kint32;
+    typedef unsigned int kuint32;
+#endif
+
+#if SIZEOF_SHORT == 2
+    typedef short int kint16;
+    typedef unsigned short int kuint16;
+#elif SIZEOF_INT == 2
+    typedef int kint16;
+    typedef unsigned int kuint16;
+#endif
+
+#if SIZEOF_FLOAT == 4
+    typedef float kfloat32;
+#endif
+#if SIZEOF_DOUBLE == 8
+    typedef double kfloat64;
+#endif
+
+
+/* filefuncs.cpp */
+bool file_exists(const char* fname);
+const char* fileBasename(const char* filename);
+FILE *sys_fopen(const char *filename, const char *mode, const char *progname);
+
+/* strfuncs.cpp */
+char* str_skip_head(const char* str, const char* const charlist);
+char* str_skip_head(const char* str, char* charlist);
 char *str_lower(char *s);
-/* s_make.c */
-char *str_make(char *str, int c, const int n);
-/* s_revers.c */
-char *str_reverse(char *s);
-/* s_rmhead.c */
-char *str_wrm_head(char *str);
-char *str_rm_head(char *str, const char *skip_str);
-/* s_rmtail.c */
-char *str_rm_tail(char *str, const char *charlist);
-/* s_save.c */
-char *str_save(const char *s);
-/* s_upper.c */
-char *str_upper(char *str);
-/* s_wtail.c */
 char *str_wrm_tail(char *str);
-/* searchfn.c */
-int searchfn(const char pat[], const unsigned int attrib);
-int getfn(const char name[]);
-/* stime.c */
+char *str_rm_tail(char *str, const char* const charlist);
+char *str_upper(char *str);
+
+/* syserror.cpp */
+void sys_error(int severity, const char *msg, ...);
+void sys_verror(int severity, const char *msg, va_list arg);
+void sys_error_level(int severity);
+
+/* timedate.cpp */
+DATE *td_get_date(DATE *d);
+TIME *td_get_time(TIME *t);
 double td_current_sec(void);
 double td_time_to_sec(TIME *t);
 TIME *td_time_sub(const TIME *t1, const TIME *t2, TIME *tdiff);
 TIME *td_time_add(const TIME *t1, const TIME *t2, TIME *tsum);
 TIME *td_time_copy(TIME *to, const TIME *from);
 TIME *td_time_norm(TIME *t);
-/* strncmpc.c */
-int strncmpc(const char *s, const char *t, int n);
-/* sysalloc.c */
-void *sys_alloc(const int nbytes, const char *name);
-/* syserror.c */
-void sys_error(int severity, const char *msg, ...);
-void sys_verror(int severity, const char *msg, va_list arg);
-void sys_error_level(int severity);
-/* sysfopen.c */
-FILE *sys_fopen(const char *filename, const char *mode, const char *progname);
-/* sysfree.c */
-void sys_free(void *ptr, const char *name);
-/* timedate.c */
 void td_get_tmdt(TIMEDATE *td);
 const char *td_str_tmdt(const TIMEDATE *td);
 const char *td_str_time(const TIME *t);
 const char *td_str_stime(const TIME *t);
 const char *td_str_date(const DATE *d);
-/* kbasename.c */
-char *kbasename(const char *filename);
+char *td_str_cdate(DATE *d);
+char *td_month_name(int n);
+char *td_day_name(int n);
 
 #endif