1*134e1779SJakub Wojciech Klama /* 2*134e1779SJakub Wojciech Klama * Copyright 2016 Jakub Klama <jceel@FreeBSD.org> 3*134e1779SJakub Wojciech Klama * All rights reserved 4*134e1779SJakub Wojciech Klama * 5*134e1779SJakub Wojciech Klama * Redistribution and use in source and binary forms, with or without 6*134e1779SJakub Wojciech Klama * modification, are permitted providing that the following conditions 7*134e1779SJakub Wojciech Klama * are met: 8*134e1779SJakub Wojciech Klama * 1. Redistributions of source code must retain the above copyright 9*134e1779SJakub Wojciech Klama * notice, this list of conditions and the following disclaimer. 10*134e1779SJakub Wojciech Klama * 2. Redistributions in binary form must reproduce the above copyright 11*134e1779SJakub Wojciech Klama * notice, this list of conditions and the following disclaimer in the 12*134e1779SJakub Wojciech Klama * documentation and/or other materials provided with the distribution. 13*134e1779SJakub Wojciech Klama * 14*134e1779SJakub Wojciech Klama * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15*134e1779SJakub Wojciech Klama * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16*134e1779SJakub Wojciech Klama * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*134e1779SJakub Wojciech Klama * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 18*134e1779SJakub Wojciech Klama * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*134e1779SJakub Wojciech Klama * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*134e1779SJakub Wojciech Klama * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*134e1779SJakub Wojciech Klama * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 22*134e1779SJakub Wojciech Klama * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 23*134e1779SJakub Wojciech Klama * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24*134e1779SJakub Wojciech Klama * POSSIBILITY OF SUCH DAMAGE. 25*134e1779SJakub Wojciech Klama * 26*134e1779SJakub Wojciech Klama */ 27*134e1779SJakub Wojciech Klama 28*134e1779SJakub Wojciech Klama /* 29*134e1779SJakub Wojciech Klama * Minimal libsbuf reimplementation for Mac OS X. 30*134e1779SJakub Wojciech Klama */ 31*134e1779SJakub Wojciech Klama 32*134e1779SJakub Wojciech Klama #ifndef LIB9P_SBUF_H 33*134e1779SJakub Wojciech Klama #define LIB9P_SBUF_H 34*134e1779SJakub Wojciech Klama 35*134e1779SJakub Wojciech Klama #include <stdarg.h> 36*134e1779SJakub Wojciech Klama 37*134e1779SJakub Wojciech Klama struct sbuf 38*134e1779SJakub Wojciech Klama { 39*134e1779SJakub Wojciech Klama char *s_buf; 40*134e1779SJakub Wojciech Klama int s_size; 41*134e1779SJakub Wojciech Klama int s_capacity; 42*134e1779SJakub Wojciech Klama int s_position; 43*134e1779SJakub Wojciech Klama }; 44*134e1779SJakub Wojciech Klama 45*134e1779SJakub Wojciech Klama struct sbuf *sbuf_new_auto(void); 46*134e1779SJakub Wojciech Klama int sbuf_cat(struct sbuf *s, const char *str); 47*134e1779SJakub Wojciech Klama int sbuf_printf(struct sbuf *s, const char *fmt, ...); 48*134e1779SJakub Wojciech Klama int sbuf_vprintf(struct sbuf *s, const char *fmt, va_list args); 49*134e1779SJakub Wojciech Klama int sbuf_done(struct sbuf *s); 50*134e1779SJakub Wojciech Klama void sbuf_delete(struct sbuf *s); 51*134e1779SJakub Wojciech Klama int sbuf_finish(struct sbuf *s); 52*134e1779SJakub Wojciech Klama char *sbuf_data(struct sbuf *s); 53*134e1779SJakub Wojciech Klama 54*134e1779SJakub Wojciech Klama #endif /* LIB9P_SBUF_H */ 55*134e1779SJakub Wojciech Klama 56