buddha/bin/
buddha/cnf/
buddha/doc/cwg/
buddha/lib/
buddha/lib/etc/
buddha/lib/house/
buddha/lib/misc/
buddha/lib/pfiles/
buddha/lib/plralias/ZZZ/
buddha/lib/plrobjs/
buddha/lib/plrobjs/ZZZ/
buddha/lib/world/
buddha/lib/world/gld/
buddha/src/
buddha/src/doc/
/*
	diskio.h	Fast file buffering

	Version 1.2b	This is beta software.  Use at your own risk.
*/

#ifndef _DISKIO_H_
#define _DISKIO_H_

#define FB_READ		(1 << 0)	/* read from disk	*/
#define FB_WRITE	(1 << 1)	/* write to disk	*/
#define FB_APPEND	(1 << 2)	/* write with append	*/

#define FB_STARTSIZE	4192	/* 4k starting buffer for writes */

#ifndef IS_SET
#define IS_SET(flag, bits)	((flag) & (bits))
#endif

#ifndef TRUE
#define TRUE	1
#endif

#ifndef FALSE
#define FALSE	0
#endif

typedef struct {
  char *buf;		/* start of buffer			*/
  char *ptr;		/* current location pointer		*/
  int size;		/* size in bytes of buffer		*/
  int flags;		/* read/write/append, future expansion	*/
  char *name;		/* filename (for delayed writing)	*/
} FBFILE;

void	tag_argument(char *argument, char *tag);
int	fbgetline(FBFILE *fbfl, char *line);
FBFILE	*fbopen(char *fname, int mode);
int	fbclose(FBFILE *fbfl);
int	fbprintf(FBFILE *fbfl, const char *format, ...);
void	fbrewind(FBFILE *fbfl);
int	fbcat(char *fromfilename, FBFILE *tofile);
char	*fbgetstring(FBFILE *fl);

#endif