ftp.nice.ch/Attic/openStep/implementation/gnustep/sources/objcX-0.87.tgz#/objcX-0.87/streams/streams.h

This is streams.h in view mode; [Download] [Up]

/*
    streams - Definitions and macros for streams package 

    Copyright (C) 1994. Adam Fedor

    streams.h,v 1.5 1995/12/13 22:36:06 fedor Exp

    Right now this is just a simple package based on stdio meant to 
    provide compile compatability with NeXT's streams package.

 */
#ifndef _streams_h_
#define _streams_h_

#include <stdio.h>
#include <unistd.h>

#ifdef HAVE_LIBGCC
typedef struct {
    FILE *stream;
    char *buf;
    int	 size;
} NXStream
#else
#define NXStream        FILE
#endif

/* Not in NeXTStep? */
extern char *NXGetTempFilename( char *name, int pos);

/* 
    Read/write modes -- Hopefully these are the same as the typedstream
    modes "OBJC_...".
*/
#define NX_READONLY     1
#define NX_WRITEONLY    2
#define NX_READWRITE    4

/* Seek modes */
#define NX_FROMSTART    SEEK_SET
#define NX_FROMCURRENT	SEEK_CUR
#define NX_FROMEND	SEEK_END

#define NXGetc          fgetc
/*!!! FIXME !!!  ungetc needs that character to push back */
#define NXUngetc(s)   	ungetc(' ', s)
#define NXPutc(s,c)     fputc(c, s)

#define NXFlush(s)	fflush(s)
#define NXSeek(s,o,m)	fseek(s,o,m)
#define NXTell          ftell

#define NXRead(s,b,n)   fread(b, 1, n, s)
#define NXWrite(s,b,n)  fwrite(b, 1, n, s)

#define NXPrintf        fprintf
#define NXVPrintf	vfprintf

#define NXScanf         fscanf
#define NXClose         fclose

/*
    We have to provide functions for these because of a descrepancy in
    the type of the argument "mode"
*/
extern NXStream *NXOpenFile(int fd, int mode);
extern NXStream *NXOpenMemory(const char *addr, int size, int mode);
extern NXStream *NXMapFile(const char *name, int mode);
extern int NXSaveToFile(NXStream *s, const char *name);
extern void NXGetMemoryBuffer(NXStream *s, char **addr, int *len, int *maxlen);
extern void NXCloseMemory(NXStream *s, int option);

#define NX_FREEBUFFER           0       /* constants for NXCloseMemory */
#define NX_TRUNCATEBUFFER       1
#define NX_SAVEBUFFER           2

#define NXAtEOS		feof

extern void useredit(const char *filename);

#endif /* _streams_h */

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.