diff options
Diffstat (limited to 'mstring.c')
-rw-r--r-- | mstring.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/mstring.c b/mstring.c index 3bdb122973a4..1110a7b89f39 100644 --- a/mstring.c +++ b/mstring.c @@ -1,4 +1,4 @@ -/* $Id: mstring.c,v 1.7 2016/12/02 17:57:21 tom Exp $ */ +/* $Id: mstring.c,v 1.9 2019/11/19 23:54:53 tom Exp $ */ #include <stdlib.h> #include <stdio.h> @@ -12,13 +12,11 @@ #define HEAD 24 #define TAIL 8 -#if defined(YYBTYACC) - static char *buf_ptr; static size_t buf_len; void -msprintf(struct mstring *s, const char *fmt,...) +msprintf(struct mstring *s, const char *fmt, ...) { va_list args; size_t len; @@ -91,7 +89,6 @@ msprintf(struct mstring *s, const char *fmt,...) memcpy(s->ptr, buf_ptr, len); s->ptr += len; } -#endif int mputchar(struct mstring *s, int ch) @@ -136,6 +133,20 @@ msnew(void) return n; } +struct mstring * +msrenew(char *value) +{ + struct mstring *r = 0; + if (value != 0) + { + r = msnew(); + r->base = value; + r->end = value + strlen(value); + r->ptr = r->end; + } + return r; +} + char * msdone(struct mstring *s) { @@ -198,10 +209,8 @@ strnshash(const char *s) void mstring_leaks(void) { -#if defined(YYBTYACC) free(buf_ptr); buf_ptr = 0; buf_len = 0; -#endif } #endif |