commit - 7a2222c7f09e34fad3eb3be24a72f7e10bcbedd4
commit + 2624d1656867df76d9de1103980ebe112bd5d6a9
blob - e56af526574e829f6648d2978d85ee8b14af9cd2
blob + 52aa7491c5c27ef8be99eeaa1d4046e6b92610bf
--- gotadmin/gotadmin.c
+++ gotadmin/gotadmin.c
char scaled_before[FMT_SCALED_STRSIZE];
char scaled_after[FMT_SCALED_STRSIZE];
char scaled_diff[FMT_SCALED_STRSIZE];
- char **extensions;
- int nextensions, i;
int *pack_fds = NULL;
while ((ch = getopt(argc, argv, "anpqr:")) != -1) {
if (error)
goto done;
- got_repo_get_gitconfig_extensions(&extensions, &nextensions,
- repo);
- for (i = 0; i < nextensions; i++) {
- if (strcasecmp(extensions[i], "preciousObjects") == 0) {
- error = got_error_msg(GOT_ERR_GIT_REPO_EXT,
- "the preciousObjects Git extension is enabled; "
- "this implies that objects must not be deleted");
- goto done;
- }
+ if (got_repo_has_extension(repo, "preciousObjects")) {
+ error = got_error_msg(GOT_ERR_GIT_REPO_EXT,
+ "the preciousObjects Git extension is enabled; "
+ "this implies that objects must not be deleted");
+ goto done;
}
if (remove_lonely_packidx) {
blob - b507b207a3c163a0492722f3e42ea689dacbf7e6
blob + 53e99801ab01ad8804d048c5f59a94930e5ef10a
--- include/got_repository.h
+++ include/got_repository.h
/* Obtain repository owner name if parsed from gitconfig, else NULL. */
const char *got_repo_get_gitconfig_owner(struct got_repository *);
-/* Obtain the list of enabled Git extensions parsed from gitconfig. */
-void got_repo_get_gitconfig_extensions(char ***, int *,
- struct got_repository *);
+/* Query if a given Git extension is enabled in gitconfig. */
+int got_repo_has_extension(struct got_repository *, const char *);
/* Information about one remote repository. */
struct got_remote_repo {
blob - b0c3b7094e4b1c970d1cda630bbf40c4862d3c6f
blob + c9f770d505436eed7a5216d43275ed7014742655
--- lib/repository.c
+++ lib/repository.c
return repo->gitconfig_owner;
}
-void
-got_repo_get_gitconfig_extensions(char ***extensions, int *nextensions,
- struct got_repository *repo)
+int
+got_repo_has_extension(struct got_repository *repo, const char *ext)
{
- *extensions = repo->extensions;
- *nextensions = repo->nextensions;
+ int i;
+
+ for (i = 0; i < repo->nextensions; ++i) {
+ if (!strcasecmp(ext, repo->extensions[i]))
+ return 1;
+ }
+
+ return 0;
}
int