summaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-03-18 15:54:35 -0700
committerRussell Belfer <rb@github.com>2013-03-18 15:54:35 -0700
commit324602514fec5ba04fa236c67d633f9b18ad9845 (patch)
treebdbf4505fd513029e03a4a1aaa027b23baa24e1e /src/util.c
parent41954a49c12a72eda3b3fe02c2752f6831b5dbf9 (diff)
downloadlibgit2-324602514fec5ba04fa236c67d633f9b18ad9845.tar.gz
Fixes and cleanups
Get rid of some dead code, tighten things up a bit, and fix a bug with core::env test.
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c60
1 files changed, 7 insertions, 53 deletions
diff --git a/src/util.c b/src/util.c
index ba867b440..f5b4a1d68 100644
--- a/src/util.c
+++ b/src/util.c
@@ -112,78 +112,32 @@ void git_strarray_free(git_strarray *array)
int git_strarray_copy(git_strarray *tgt, const git_strarray *src)
{
- assert(tgt && src);
-
- memset(tgt, 0, sizeof(*tgt));
- return git_strarray_prepend(tgt, src);
-}
-
-int git_strarray_set(git_strarray *tgt, size_t count, ...)
-{
size_t i;
- va_list ap;
- assert(tgt);
+ assert(tgt && src);
memset(tgt, 0, sizeof(*tgt));
- if (!count)
+ if (!src->count)
return 0;
- tgt->strings = git__calloc(count, sizeof(char *));
+ tgt->strings = git__calloc(src->count, sizeof(char *));
GITERR_CHECK_ALLOC(tgt->strings);
- va_start(ap, count);
- for (i = 0; i < count; ++i) {
- const char *str = va_arg(ap, const char *);
- if (!str)
+ for (i = 0; i < src->count; ++i) {
+ if (!src->strings[i])
continue;
- tgt->strings[tgt->count] = git__strdup(str);
+ tgt->strings[tgt->count] = git__strdup(src->strings[i]);
if (!tgt->strings[tgt->count]) {
git_strarray_free(tgt);
- va_end(ap);
+ memset(tgt, 0, sizeof(*tgt));
return -1;
}
tgt->count++;
}
- va_end(ap);
-
- return 0;
-}
-
-int git_strarray_prepend(git_strarray *tgt, const git_strarray *src)
-{
- size_t i;
- git_strarray merge;
-
- if (!src || !src->count)
- return 0;
-
- merge.count = 0;
- merge.strings = git__calloc(tgt->count + src->count, sizeof(char *));
- GITERR_CHECK_ALLOC(merge.strings);
-
- for (i = 0; i < src->count; ++i) {
- if (!src->strings[i])
- continue;
-
- merge.strings[merge.count] = git__strdup(src->strings[i]);
- if (!merge.strings[merge.count]) {
- git_strarray_free(&merge);
- return -1;
- }
-
- merge.count++;
- }
-
- for (i = 0; i < tgt->count; ++i)
- if (tgt->strings[i])
- merge.strings[merge.count++] = tgt->strings[i];
- git__free(tgt->strings);
- memcpy(tgt, &merge, sizeof(merge));
return 0;
}