X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/36c64aae05cb31ce8ae6c8ce647c93fafdf6a032..78546f2b0f59b5c8fede1ce5535972716eb17041:/lib/stringbuf.c diff --git a/lib/stringbuf.c b/lib/stringbuf.c index a558073b..3fce7911 100644 --- a/lib/stringbuf.c +++ b/lib/stringbuf.c @@ -1,5 +1,11 @@ #include "stringbuf.h" +void sbinit(StringBuf *buf, char *c, int capacity) { + buf->buf = c; + buf->capacity = capacity; + buf->len = 0; +} + int sbaddchar(StringBuf *buf, char c) { if(buf->len >= buf->capacity - 1) return 0; @@ -25,6 +31,23 @@ int sbaddstr(StringBuf *buf, char *c) { return 1; } +int sbaddstrlen(StringBuf *buf, char *c, size_t len) { + int remaining = buf->capacity - buf->len - 1; + char *p; + int i; + + for(p=c,i=0;ibuf[buf->len++] = *p; + } + + return 1; +} + int sbterminate(StringBuf *buf) { if(buf->capacity - buf->len > 0) { buf->buf[buf->len] = '\0';