/*1* Copyright 2016 Jakub Klama <[email protected]>2* All rights reserved3*4* Redistribution and use in source and binary forms, with or without5* modification, are permitted providing that the following conditions6* are met:7* 1. Redistributions of source code must retain the above copyright8* notice, this list of conditions and the following disclaimer.9* 2. Redistributions in binary form must reproduce the above copyright10* notice, this list of conditions and the following disclaimer in the11* documentation and/or other materials provided with the distribution.12*13* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR14* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED15* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE16* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY17* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL18* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS19* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)20* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,21* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING22* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE23* POSSIBILITY OF SUCH DAMAGE.24*25*/2627/*28* Minimal libsbuf reimplementation for Mac OS X.29*/3031#ifndef LIB9P_SBUF_H32#define LIB9P_SBUF_H3334#include <stdarg.h>3536struct sbuf37{38char *s_buf;39int s_size;40int s_capacity;41int s_position;42};4344struct sbuf *sbuf_new_auto(void);45int sbuf_cat(struct sbuf *s, const char *str);46int sbuf_printf(struct sbuf *s, const char *fmt, ...);47int sbuf_vprintf(struct sbuf *s, const char *fmt, va_list args);48int sbuf_done(struct sbuf *s);49void sbuf_delete(struct sbuf *s);50int sbuf_finish(struct sbuf *s);51char *sbuf_data(struct sbuf *s);5253#endif /* LIB9P_SBUF_H */54555657