/**************************************************************************** * ResortMUD Version 5.0 was mainly programmed by Ntanel, Garinan, Josh, * * Badastaz, Digifuzz, Senir, Kratas, Scion, Shogar and Tagith. * * ------------------------------------------------------------------------ * * Copyright (C) 1996 - 2001 Haslage Net Electronics: MudWorld of Lorain, * * Ohio. ALL RIGHTS RESERVED See /doc/RMLicense.txt for more details. * ****************************************************************************/ /*** buffer.h ****/ #define BUFFER_DEBUG typedef struct buffer_type BUFFER; struct buffer_type { char *data; /* The data */ size_t len; /* The current len of the buffer */ size_t size; /* The allocated size of data */ bool overflowed; /* Is the buffer overflowed? */ }; #ifdef BUFFER_DEBUG /* Debugged version */ #define buffer_new(size) __buffer_new (size, __FILE__, __LINE__) #define buffer_strcat(buffer,text) __buffer_strcat (buffer, text, __FILE__, __LINE__) BUFFER *__buffer_new( int size, const char *file, unsigned line ); void __buffer_strcat( BUFFER * buffer, const char *text, const char *file, unsigned line ); #else /* not debugged version */ #define buffer_new(size) __buffer_new (size) #define buffer_strcat(buffer,text) __buffer_strcat (buffer,text) BUFFER *__buffer_new( int size ); void __buffer_strcat( BUFFER * buffer, const char *text ); #endif void buffer_free( BUFFER * buffer ); void buffer_clear( BUFFER * buffer ); int find_mem_size( int min_size ); int bprintf( BUFFER * buffer, char *fmt, ... );