From 8f0e034cf2eef0e554e7016d792de365c38f6d8c Mon Sep 17 00:00:00 2001 From: Dave Beazley Date: Sun, 9 Jul 2000 21:24:14 +0000 Subject: [PATCH] Fixed bug in string replace. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@543 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/DOH/Doh/string.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/DOH/Doh/string.c b/Source/DOH/Doh/string.c index 16de665f9..3246797fe 100644 --- a/Source/DOH/Doh/string.c +++ b/Source/DOH/Doh/string.c @@ -332,6 +332,7 @@ String_write(DOH *so, void *buffer, int len) { int newlen; String *s = (String *) ObjData(so); s->hashkey = -1; + if (s->sp > s->len) s->sp = s->len; newlen = s->sp + len+1; if (newlen > s->maxsize) { s->str = (char *) DohRealloc(s->str,newlen); @@ -599,6 +600,7 @@ int replace_simple(String *str, char *token, char *rep, int flags, int count, ch memmove(t,s,(str->str + str->len) - s + 1); } str->len += expand; + if (str->sp >= str->len) str->sp += expand; /* Fix the end of file pointer */ return rcount; } /* The string is expanding as a result of the replacement */ @@ -687,6 +689,7 @@ int replace_simple(String *str, char *token, char *rep, int flags, int count, ch } c = str->str; str->str = ns; + if (str->sp >= str->len) str->sp += expand; str->len += expand; str->maxsize = newsize; DohFree(c);