* Copyright (c) 1988, 1989, 1990, 1993
* The Regents of the University of California. All rights reserved.
* Copyright (c) 1989 by Berkeley Softworks
* This code is derived from software contributed to Berkeley by
* %sccs.include.redist.c%
* @(#)buf.h 8.1 (Berkeley) %G%
* Header for users of the buf library.
typedef unsigned char Byte
;
int size
; /* Current size of the buffer */
int left
; /* Space left (== size - (inPtr - buffer)) */
Byte
*buffer
; /* The buffer itself */
Byte
*inPtr
; /* Place to write to */
Byte
*outPtr
; /* Place to read from */
/* Buf_AddByte adds a single byte to a buffer. */
#define Buf_AddByte(bp, byte) \
(void) (--(bp)->left <= 0 ? Buf_OvAddByte(bp, byte), 1 : \
(*(bp)->inPtr++ = (byte), *(bp)->inPtr = 0), 1)
void Buf_AddBytes
__P((Buffer
, int, Byte
*));
void Buf_Destroy
__P((Buffer
, Boolean
));
void Buf_Discard
__P((Buffer
, int));
Byte
*Buf_GetAll
__P((Buffer
, int *));
int Buf_GetByte
__P((Buffer
));
int Buf_GetBytes
__P((Buffer
, int, Byte
*));
Buffer Buf_Init
__P((int));
void Buf_OvAddByte
__P((Buffer
, int));
int Buf_Size
__P((Buffer
));
void Buf_UngetByte
__P((Buffer
, int));
void Buf_UngetBytes
__P((Buffer
, int, Byte
*));