X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fstring.c;h=29a87c57233f832f20be1264420bb79abc3fec46;hb=0ed25f66ccc56d56b3b5b7d64f4537bafbb42697;hp=81aacb94b1f6bd6f9767251a75df5a0994b0e393;hpb=459fca581ce9f1215a96885852b912558cdc9c63;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/string.c b/src/src/string.c index 81aacb94b..29a87c572 100644 --- a/src/src/string.c +++ b/src/src/string.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2017 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* Miscellaneous string-handling functions. Some are not required for @@ -914,7 +914,7 @@ sep_is_special = iscntrl(sep); /* Handle the case when a buffer is provided. */ -if (buffer != NULL) +if (buffer) { int p = 0; for (; *s != 0; s++) @@ -960,6 +960,7 @@ else } while (g->ptr > 0 && isspace(g->s[g->ptr-1])) g->ptr--; buffer = string_from_gstring(g); + gstring_reset_unused(g); } /* Update the current pointer and return the new string */ @@ -1073,11 +1074,23 @@ g->s[g->ptr] = '\0'; return g->s; } +void +gstring_reset_unused(gstring * g) +{ +store_reset(g->s + (g->size = g->ptr + 1)); +} + /************************************************* * Add chars to string * *************************************************/ -void +/* Arguments: + g the grawable-string + p current end of data + count amount to grow by +*/ + +static void gstring_grow(gstring * g, int p, int count) { int oldsize = g->size;