1/* 2** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. 3** Distributed under the terms of the Haiku License. 4*/ 5#ifndef LINE_BUFFER_H 6#define LINE_BUFFER_H 7 8 9#include <OS.h> 10 11 12struct line_buffer { 13 int32 first; 14 size_t in; 15 size_t size; 16 char *buffer; 17}; 18 19status_t init_line_buffer(struct line_buffer &buffer, size_t size); 20status_t uninit_line_buffer(struct line_buffer &buffer); 21status_t clear_line_buffer(struct line_buffer &buffer); 22int32 line_buffer_readable(struct line_buffer &buffer); 23int32 line_buffer_readable_line(struct line_buffer &buffer, char eol, char eof); 24int32 line_buffer_writable(struct line_buffer &buffer); 25ssize_t line_buffer_user_read(struct line_buffer &buffer, char *data, 26 size_t length, char eof = 0, bool* hitEOF = NULL); 27status_t line_buffer_getc(struct line_buffer &buffer, char *_c); 28status_t line_buffer_putc(struct line_buffer &buffer, char c); 29status_t line_buffer_ungetc(struct line_buffer &buffer, char *c); 30bool line_buffer_tail_getc(struct line_buffer &buffer, char *c); 31 32#endif /* LINE_BUFFER_H */ 33