1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-08 12:40:49 -08:00
emacs/mps/code/ossu.h
Richard Brooksby 3d5e2ca85f Adding hopenames back into the master sources, so that they can be included in the union sources along with the id keywords.
This was achieved by partially undoing changelist 24817, including an accidental corruption of eventgen.pl.

Copied from Perforce
 Change: 24877
 ServerID: perforce.ravenbrook.com
2001-12-06 18:14:02 +00:00

93 lines
2.6 KiB
C

/* impl.h.ossu: SUNOS ANSI COMPATABILITY HEADER
*
* $Id$
* $HopeName: MMsrc!ossu.h(trunk.11) $
*
* Copyright (c) 2001 Ravenbrook Limited.
*
* .purpose: This header defines some things which are part of the ANSI
* standard but missing from the C compiler / environment.
*
* .history: This header was imported from the MLWorks runtime system,
* when it had the following id:
* src:OS:SunOS:ansi.h,v 1.2 1994/06/09 14:24:35 nickh
*/
#ifndef ossu_h
#define ossu_h
#include <stdarg.h>
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <time.h>
/* stddef.h */
#ifndef offsetof /* true for platform.sus8lc for example */
#define offsetof(ty,mem) ((size_t)((char*)&((ty*)0)->(mem) - (char*)0))
#endif
/* stdio.h things */
extern int fclose (FILE *stream);
extern int fflush (FILE *stream);
extern int fgetc (FILE *stream);
extern int ungetc (int c, FILE *stram);
extern int fputc (int c, FILE *stream);
extern int printf (const char *format, ...);
extern int fprintf (FILE *stream, const char *format, ...);
extern int vfprintf (FILE *stream, const char *format, va_list arg);
extern int vsprintf (char *s, const char *format, va_list arg);
extern int fputs (const char *s, FILE *stream);
extern int puts(const char *);
extern int fscanf (FILE *stream, const char *format, ...);
extern int sscanf (const char *s, const char *format, ...);
extern int fseek (FILE *stream, long int offset, int whence);
extern size_t fread (void *ptr, size_t size, size_t nmemb, FILE *stream);
extern size_t fwrite (const void *ptr, size_t size, size_t nmemb,
FILE *stream);
/* these functions are used in the macro definitions of putc and getc
but not declared in stdio.h */
extern int _filbuf(FILE *stream);
extern int _flsbuf(unsigned char c, FILE *stream);
/* time.h things */
extern size_t strftime (char *s, size_t maxsize, const char *format,
const struct tm *timeptr);
extern time_t time (time_t *timer);
extern clock_t clock(void);
/* stdlib.h things */
extern int system(const char *string);
extern long strtol(const char *, char **, int);
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
/* @@@@ This doesn't do quite the right thing, but will get by */
#define strtoul(a,b,c) (unsigned long)strtol((a), (b), (c))
/* string.h things */
extern void *memset(void *, int, size_t);
#ifdef MPS_PF_SUS8LC
/* .hack.malloc: builder.lc (LCC) uses Sun's header files. Sun's
* stdlib.h is broken, as it has an incorrect declaration of malloc.
* We fix that here in a very hacky way.
*/
#define malloc(x) (void *)malloc(x)
#endif /* MPS_PF_SUS8LC */
#endif /* ossu_h */