[BACK]Return to buf.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / make

Annotation of src/usr.bin/make/buf.h, Revision 1.1

1.1     ! deraadt     1: /*     $NetBSD: buf.h,v 1.5 1995/06/14 15:18:53 christos Exp $ */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
        !             5:  * Copyright (c) 1988, 1989 by Adam de Boor
        !             6:  * Copyright (c) 1989 by Berkeley Softworks
        !             7:  * All rights reserved.
        !             8:  *
        !             9:  * This code is derived from software contributed to Berkeley by
        !            10:  * Adam de Boor.
        !            11:  *
        !            12:  * Redistribution and use in source and binary forms, with or without
        !            13:  * modification, are permitted provided that the following conditions
        !            14:  * are met:
        !            15:  * 1. Redistributions of source code must retain the above copyright
        !            16:  *    notice, this list of conditions and the following disclaimer.
        !            17:  * 2. Redistributions in binary form must reproduce the above copyright
        !            18:  *    notice, this list of conditions and the following disclaimer in the
        !            19:  *    documentation and/or other materials provided with the distribution.
        !            20:  * 3. All advertising materials mentioning features or use of this software
        !            21:  *    must display the following acknowledgement:
        !            22:  *     This product includes software developed by the University of
        !            23:  *     California, Berkeley and its contributors.
        !            24:  * 4. Neither the name of the University nor the names of its contributors
        !            25:  *    may be used to endorse or promote products derived from this software
        !            26:  *    without specific prior written permission.
        !            27:  *
        !            28:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        !            29:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            30:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            31:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        !            32:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            33:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            34:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            35:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            36:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            37:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            38:  * SUCH DAMAGE.
        !            39:  *
        !            40:  *     from: @(#)buf.h 5.4 (Berkeley) 12/28/90
        !            41:  */
        !            42:
        !            43: /*-
        !            44:  * buf.h --
        !            45:  *     Header for users of the buf library.
        !            46:  */
        !            47:
        !            48: #ifndef _BUF_H
        !            49: #define _BUF_H
        !            50:
        !            51: #include    "sprite.h"
        !            52:
        !            53: typedef char Byte;
        !            54:
        !            55: typedef struct Buffer {
        !            56:     int            size;       /* Current size of the buffer */
        !            57:     int     left;      /* Space left (== size - (inPtr - buffer)) */
        !            58:     Byte    *buffer;   /* The buffer itself */
        !            59:     Byte    *inPtr;    /* Place to write to */
        !            60:     Byte    *outPtr;   /* Place to read from */
        !            61: } *Buffer;
        !            62:
        !            63: /* Buf_AddByte adds a single byte to a buffer. */
        !            64: #define        Buf_AddByte(bp, byte) \
        !            65:        (void) (--(bp)->left <= 0 ? Buf_OvAddByte(bp, byte), 1 : \
        !            66:                (*(bp)->inPtr++ = (byte), *(bp)->inPtr = 0), 1)
        !            67:
        !            68: #define BUF_ERROR 256
        !            69:
        !            70: void Buf_OvAddByte __P((Buffer, int));
        !            71: void Buf_AddBytes __P((Buffer, int, Byte *));
        !            72: void Buf_UngetByte __P((Buffer, int));
        !            73: void Buf_UngetBytes __P((Buffer, int, Byte *));
        !            74: int Buf_GetByte __P((Buffer));
        !            75: int Buf_GetBytes __P((Buffer, int, Byte *));
        !            76: Byte *Buf_GetAll __P((Buffer, int *));
        !            77: void Buf_Discard __P((Buffer, int));
        !            78: int Buf_Size __P((Buffer));
        !            79: Buffer Buf_Init __P((int));
        !            80: void Buf_Destroy __P((Buffer, Boolean));
        !            81:
        !            82: #endif /* _BUF_H */