summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a47551c)
raw | patch | inline | side by side (parent: a47551c)
author | René Scharfe <rene.scharfe@lsrfire.ath.cx> | |
Sat, 22 Nov 2008 23:16:59 +0000 (00:16 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Mon, 24 Nov 2008 03:56:57 +0000 (19:56 -0800) |
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile | patch | blob | history | |
interpolate.c | [deleted file] | patch | blob | history |
interpolate.h | [deleted file] | patch | blob | history |
diff --git a/Makefile b/Makefile
index 35adafa011bdc8b3728bea942d86fba96a90fe6a..54e07452464c46854c0772221250c1cfe4d44a8b 100644 (file)
--- a/Makefile
+++ b/Makefile
LIB_OBJS += hash.o
LIB_OBJS += help.o
LIB_OBJS += ident.o
-LIB_OBJS += interpolate.o
LIB_OBJS += levenshtein.o
LIB_OBJS += list-objects.o
LIB_OBJS += ll-merge.o
diff --git a/interpolate.c b/interpolate.c
--- a/interpolate.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2006 Jon Loeliger
- */
-
-#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;
-
- 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,
- * performing substitutions on %-named sub-strings from
- * the table, interps, with ninterps entries.
- *
- * Example interps:
- * {
- * { "%H", "example.org"},
- * { "%port", "123"},
- * { "%%", "%"},
- * }
- *
- * Returns the length of the substituted string (not including the final \0).
- * Like with snprintf, if the result is >= reslen, then it overflowed.
- */
-
-unsigned long interpolate(char *result, unsigned long reslen,
- const char *orig,
- const struct interp *interps, int ninterps)
-{
- const char *src = orig;
- char *dest = result;
- unsigned long newlen = 0;
- const char *name, *value;
- unsigned long namelen, valuelen;
- int i;
- char c;
-
- while ((c = *src)) {
- if (c == '%') {
- /* Try to match an interpolation string. */
- for (i = 0; i < ninterps; i++) {
- name = interps[i].name;
- namelen = strlen(name);
- if (strncmp(src, name, namelen) == 0)
- break;
- }
-
- /* Check for valid interpolation. */
- if (i < ninterps) {
- value = interps[i].value;
- if (!value) {
- src += namelen;
- continue;
- }
-
- valuelen = strlen(value);
- if (newlen + valuelen < reslen) {
- /* Substitute. */
- memcpy(dest, value, valuelen);
- dest += valuelen;
- }
- newlen += valuelen;
- src += namelen;
- continue;
- }
- }
- /* Straight copy one non-interpolation character. */
- if (newlen + 1 < reslen)
- *dest++ = *src;
- src++;
- newlen++;
- }
-
- /* XXX: the previous loop always keep room for the ending NUL,
- we just need to check if there was room for a NUL in the first place */
- if (reslen > 0)
- *dest = '\0';
- return newlen;
-}
diff --git a/interpolate.h b/interpolate.h
--- a/interpolate.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2006 Jon Loeliger
- */
-
-#ifndef INTERPOLATE_H
-#define INTERPOLATE_H
-
-/*
- * Convert a NUL-terminated string in buffer orig,
- * performing substitutions on %-named sub-strings from
- * the interpretation table.
- */
-
-struct interp {
- const char *name;
- char *value;
-};
-
-extern void interp_set_entry(struct interp *table, int slot, const char *value);
-extern void interp_clear_table(struct interp *table, int ninterps);
-
-extern unsigned long interpolate(char *result, unsigned long reslen,
- const char *orig,
- const struct interp *interps, int ninterps);
-
-#endif /* INTERPOLATE_H */