AcePerl
view release on metacpan or search on metacpan
acelib/wh/mystdlib.h view on Meta::CPAN
#define R_OK 4
#define F_OK X_OK /* if i exist in WIN32, then i might be executable? */
#include <io.h> /* for access() in dotter.c */
typedef int uid_t ; /* UNIX/RPC types not currently used in WIN32 */
/* O/S specific file system pathname conventions:
general syntax conventions symbolically defined */
/* In WIN32/DOS... */
#define PATH_DELIMITER ';'
#define DRIVE_DELIMITER ':' /* Not used in UNIX */
#define DRIVE_DELIMITER_STR ":" /* Not used in UNIX */
#define SUBDIR_DELIMITER '\\'
#define SUBDIR_DELIMITER_STR "\\"
char *DosToPosix(char *path) ; /* defined in filsubs.c */
#define UNIX_PATHNAME(z) DosToPosix(z)
/**************** some NON-WIN32 equivalents ******************/
#else /* UNIX-like, NOT WIN32 */
#define PATH_DELIMITER ':'
#define SUBDIR_DELIMITER '/'
#define SUBDIR_DELIMITER_STR "/"
#define UNIX_PATHNAME(z) z /* Already a UNIX filename? */
#endif
/************** #endif !defined(WIN32) *************************/
/*<<--neil 16Sep92: to avoid using values.h*/
#define ACEDB_MAXINT 2147483647
#define ACEDB_MINDOUBLE 1.0e-305
#define ACEDB_LN_MINDOUBLE -700
/* The next few are designed to determine how the compiler aligns structures,
not what we can get away with; change only if extreme circumstances */
#define INT_ALIGNMENT (sizeof(struct{char c; int i; }) - sizeof(int))
#define DOUBLE_ALIGNMENT (sizeof(struct {char c; double d; }) - sizeof(double))
#define SHORT_ALIGNMENT (sizeof(struct {char c; short s; }) - sizeof(short))
#define FLOAT_ALIGNMENT (sizeof(struct {char c; float f; }) - sizeof(float))
#define PTR_ALIGNMENT (sizeof(struct {char c; void *p; }) - sizeof(void *))
/* Constants for store alignment */
/* These are defined as follows:
MALLOC_ALIGNMENT
Alignment of most restrictive data type, the system malloc will
return addresses aligned to this, and we do the same in messalloc.
STACK_ALIGNMENT
Alignment of data objects on a Stack; this should really be
the same as MALLOC_ALIGNMENT, but for most 32 bit pointer machines
we align stacks to 4 bytes to save memory.
STACK_DOUBLE_ALIGNMENT
Alignment of doubles required on stack, if this is greater than
STACK_ALIGNMENT, we read and write doubles on a stack by steam.
Put specific exceptions first, the defaults below should cope
with most cases. Oh, one more thing, STACK_ALIGNMENT and
STACK_DOUBLE ALIGNMENT are used on pre-processor constant
expressions so no sizeofs, sorry.
*/
/* 680x0 processors can fix up unaligned accesses so we trade off speed
against memory usage on a Mac. I have no idea if this is a good
trade-off, I only program real computers - srk */
#if defined(NEXT) || defined(MACINTOSH)
# define STACK_ALIGNMENT 2
# define STACK_DOUBLE_ALIGNMENT 2
# define MALLOC_ALIGNMENT 4
#endif
/* Alpha pointers are 8 bytes, so align the stack to that */
#if defined(ALPHA) || defined(ALIGNMENT_64_BIT)
# define STACK_ALIGNMENT 8
#endif
#if !defined(STACK_ALIGNMENT)
# define STACK_ALIGNMENT 4
#endif
#if !defined(STACK_DOUBLE_ALIGNMENT)
# define STACK_DOUBLE_ALIGNMENT 8
#endif
#if !defined(MALLOC_ALIGNMENT)
# define MALLOC_ALIGNMENT DOUBLE_ALIGNMENT
#endif
#if defined(POSIX) || defined(LINUX) || defined(SOLARIS) || defined(SGI) || \
defined(HP) || defined(WIN32) || defined(INTEL_SOLARIS)
#ifdef WIN32
#include <mbctype.h>
#endif /* WIN32 */
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#if !defined(WIN32)
#include <unistd.h>
#include <sys/param.h>
#endif /* !WIN32 */
#if defined(HP)
#include <sys/unistd.h>
( run in 1.414 second using v1.01-cache-2.11-cpan-d8267643d1d )