#include <stdio.h>
#include <stdarg.h>
-#include <malloc.h>
+#include <stdlib.h>
#include <string.h>
#include "membuf.h"
// buflen is alway "+1" bigger then
// what is shown here, the +1 is for
// the NULL string terminator
-#define DEFAULT_BUFSIZE 100
+#define DEFAULT_BUFSIZE 100
size_t maxlen; // allocated size
size_t curlen; // where we are inserting at
char *_strtoklast;
#define space_avail(pBuf) (pBuf->maxlen - pBuf->curlen)
#define dataend(pBuf) (((char *)(pBuf->buf)) + pBuf->curlen)
-size_t
+size_t
membuf_len(struct membuf *pBuf)
{
return pBuf->curlen;
if (pBuf) {
pBuf->_strtoklast = NULL;
*pLast = pBuf;
- return strtok_r(((char *)(pBuf->buf)), sep, &(pBuf->_strtoklast));
+ // this should be "strtok_r()" but windows lacks */
+ return strtok(((char *)(pBuf->buf)), sep);
} else {
// recover our pBuf
pBuf = *((struct membuf **)(pLast));
- return strtok_r(NULL, sep, &(pBuf->_strtoklast));
+ // this should be "strtok_r()" but windows lacks */
+ return strtok( NULL, sep);
}
}
-
+
struct membuf *
// do work
r = vsnprintf(dataend(pBuf),
sa,
- fmt,
+ fmt,
ap);
if ((r > 0) && (((size_t)(r)) < sa)) {
// Success!