** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: kstddef.h,v 1.6 2000/05/03 19:51:41 kevin Exp $
+** $Id: kstddef.h,v 1.13 2000/06/07 00:59:38 kevin Exp $
** $Log: kstddef.h,v $
+** Revision 1.13 2000/06/07 00:59:38 kevin
+** added imagefiles
+**
+** Revision 1.12 2000/06/05 01:32:45 kevin
+** Added C++ compatibility
+**
+** Revision 1.11 2000/06/03 06:29:08 kevin
+** *** empty log message ***
+**
+** Revision 1.10 2000/05/16 04:33:17 kevin
+** Updated documentation
+**
+** Revision 1.9 2000/05/11 01:04:44 kevin
+** Added Microsoft Windows compatibility
+**
+** Revision 1.8 2000/05/08 20:00:48 kevin
+** ANSI C changes
+**
+** Revision 1.7 2000/05/07 12:46:19 kevin
+** made c++ compatible
+**
** Revision 1.6 2000/05/03 19:51:41 kevin
** function renaming for phantoms and phantom elements
**
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
******************************************************************************/
+
/******************************************************************************
*
* FILE IDENTIFICATION
#ifndef STDDEF_H
#define STDDEF_H
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
-#undef SHELL
+#ifdef _WIN32
+#define snprintf _snprintf
+#endif
+
+#if !defined(bool) && !defined(__cplusplus)
+typedef int bool; /* Boolean variable type */
+#endif
#define STR_MAX_LEN 255
#define STR_SIZE STR_MAX_LEN+1
-#ifndef bool
-typedef signed int bool; /* Boolean variable type */
+#if !defined(__cplusplus)
+typedef unsigned char string[STR_SIZE];
#endif
-typedef unsigned char string[STR_SIZE];
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
-#define UNSIGNLONG unsigned long int
-#define UNSIGNCHAR unsigned char
+#undef SHELL
#define TRUE 1
#define FALSE 0
#define ERROR FALSE
#define YES TRUE
#define NO FALSE
-#define ON TRUE
-#define OFF FALSE
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
-#define INTERNAL_FUNC static
-#define INTERNAL_VAR static
-
-/*----------------------------------------------------------------------*/
-
#define NEWLINE '\n'
#define TAB '\t'
#define EOS '\0'
#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 {
/*----------------------------------------------------------------------*/
-/* 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
#define S_IWRITE S_IWUSR
#endif
+/*----------------------------------------------------------------------*/
+
+#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
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
/* allocnum.c */
float *alloc_float(int n);
double *alloc_double(int n);
int *alloc_int(int n);
+
/* fexist.c */
int file_exists(const char *fname);
+
/* kbasename.c */
char *kbasename(const char *filename);
+
/* iclip.c */
int iclip(int n, int lb, int ub);
+
/* s_head.c */
char *str_skip_head(const char *str, const char *charlist);
+
/* s_lower.c */
char *str_lower(char *s);
+
/* s_rmtail.c */
char *str_wrm_tail(char *str);
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);
+
/* 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 */
DATE *td_get_date(DATE *d);
TIME *td_get_time(TIME *t);
char *td_month_name(int n);
char *td_day_name(int n);
+/* netorder.c */
+void *strreverse (void *dest, const void *src, size_t n);
+int read_nint16 (kuint16 *n, int fd);
+int write_nint16 (kuint16 const *n, int fd);
+int read_nint32 (kuint32 *n, int fd);
+int write_nint32 (kuint32 const *n, int fd);
+int read_nfloat32 (float *f, int fd);
+int write_nfloat32 (float const *f, int fd);
+int read_nfloat64 (double *d, int fd);
+int write_nfloat64 (double const *d, int fd);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#endif