X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=interpolate.c;h=fb30694f4741147bba62350f704111d3afbf8133;hb=c379c4b176ce350a8d6c0773a3ad211996d809db;hp=4570c123dce811bab8a89efe4c3b4a9a977e6c5a;hpb=4dafd7d2444051fe0e1eb17e9ded503ad7d9dd25;p=git.git diff --git a/interpolate.c b/interpolate.c index 4570c123d..fb30694f4 100644 --- a/interpolate.c +++ b/interpolate.c @@ -2,11 +2,35 @@ * Copyright 2006 Jon Loeliger */ -#include - +#include "git-compat-util.h" #include "interpolate.h" +void interp_set_entry(struct interp *table, int slot, const char *value) +{ + char *oldval = table[slot].value; + char *newval = NULL; + + if (oldval) + free(oldval); + + if (value) + newval = xstrdup(value); + + table[slot].value = newval; +} + + +void interp_clear_table(struct interp *table, int ninterps) +{ + int i; + + for (i = 0; i < ninterps; i++) { + interp_set_entry(table, i, NULL); + } +} + + /* * Convert a NUL-terminated string in buffer orig * into the supplied buffer, result, whose length is reslen, @@ -31,7 +55,7 @@ int interpolate(char *result, int reslen, const char *src = orig; char *dest = result; int newlen = 0; - char *name, *value; + const char *name, *value; int namelen, valuelen; int i; char c;