commit - ccbbf026bf5917a8d66564fcce9184b29412432b
commit + b0ac38bb75347d8463628704f64f5ff0349272a6
blob - de99e60620ea466b3e56f258e643d00a974595d6
blob + 079b3c530a2c1681a497b2d74a8c077a1528b18a
--- gotctl/Makefile
+++ gotctl/Makefile
.include "../got-version.mk"
PROG= gotctl
-SRCS= gotctl.c error.c imsg.c pollfd.c sha1.c
+SRCS= gotctl.c error.c imsg.c inflate.c object_parse.c path.c \
+ pollfd.c sha1.c
MAN = ${PROG}.8
blob - c4456b3590ca82fd05071e3b28f8372a45371af0
blob + 8cce24717276094756bd1d95fbe9d738ab14a8da
--- gotsh/Makefile
+++ gotsh/Makefile
PROG= gotsh
SRCS= gotsh.c error.c pkt.c sha1.c serve.c path.c gitproto.c \
- imsg.c pollfd.c reference_parse.c
+ imsg.c inflate.c object_parse.c pollfd.c reference_parse.c
MAN = ${PROG}.1
blob - d46762d0f8fd908e9beebe23dd87ff3740db4068
blob + b58507426a87ab346368bdad7903b8c08adb9de1
--- lib/read_gitconfig.c
+++ lib/read_gitconfig.c
got_repo_read_gitconfig(int *gitconfig_repository_format_version,
char **gitconfig_author_name, char **gitconfig_author_email,
struct got_remote_repo **remotes, int *nremotes,
- char **gitconfig_owner, char ***extensions, int *nextensions,
- const char *gitconfig_path)
+ char **gitconfig_owner, char ***extnames, char ***extvals,
+ int *nextensions, const char *gitconfig_path)
{
const struct got_error *err = NULL;
struct got_gitconfig *gitconfig = NULL;
const char *author, *email, *owner;
*gitconfig_repository_format_version = 0;
- if (extensions)
- *extensions = NULL;
+ if (extnames)
+ *extnames = NULL;
+ if (extvals)
+ *extvals = NULL;
if (nextensions)
*nextensions = 0;
*gitconfig_author_name = NULL;
"core", "repositoryformatversion", 0);
tags = got_gitconfig_get_tag_list(gitconfig, "extensions");
- if (extensions && nextensions && tags) {
+ if (extnames && extvals && nextensions && tags) {
size_t numext = 0;
TAILQ_FOREACH(node, &tags->fields, link) {
char *ext = node->field;
if (get_boolean_val(val))
numext++;
}
- *extensions = calloc(numext, sizeof(char *));
- if (*extensions == NULL) {
+ *extnames = calloc(numext, sizeof(char *));
+ if (*extnames == NULL) {
err = got_error_from_errno("calloc");
goto done;
}
+ *extvals = calloc(numext, sizeof(char *));
+ if (*extvals == NULL) {
+ err = got_error_from_errno("calloc");
+ goto done;
+ }
TAILQ_FOREACH(node, &tags->fields, link) {
char *ext = node->field;
char *val = got_gitconfig_get_str(gitconfig,
"extensions", ext);
if (get_boolean_val(val)) {
- char *extstr = strdup(ext);
+ char *extstr = NULL, *valstr = NULL;
+
+ extstr = strdup(ext);
if (extstr == NULL) {
err = got_error_from_errno("strdup");
goto done;
}
- (*extensions)[(*nextensions)] = extstr;
+ valstr = strdup(val);
+ if (valstr == NULL) {
+ err = got_error_from_errno("strdup");
+ goto done;
+ }
+ (*extnames)[(*nextensions)] = extstr;
+ (*extvals)[(*nextensions)] = valstr;
(*nextensions)++;
}
}
if (gitconfig)
got_gitconfig_close(gitconfig);
if (err) {
- if (extensions && nextensions) {
- for (i = 0; i < (*nextensions); i++)
- free((*extensions)[i]);
- free(*extensions);
- *extensions = NULL;
+ if (extnames && extvals && nextensions) {
+ for (i = 0; i < (*nextensions); i++) {
+ free((*extnames)[i]);
+ free((*extvals)[i]);
+ }
+ free(*extnames);
+ *extnames = NULL;
+ free(*extvals);
+ *extvals = NULL;
*nextensions = 0;
}
if (remotes && nremotes) {