Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2023-03-18 00:03:09 +0300
committerJunio C Hamano <gitster@pobox.com>2023-03-18 00:03:09 +0300
commitd0732a8120d9cc62d8b6efa4ec48966f890f84b7 (patch)
treedbcfe3bfaac195410e72cf228e1ecc8f40bcd2d0 /ls-refs.c
parent88cc8ed8bc7d4bc9521b426e95ae2a38d3aec13a (diff)
parent506ebaac96b7d9a42853c16d0523fd493b7991da (diff)
Merge branch 'jk/unused-post-2.39-part2'
More work towards -Wunused. * jk/unused-post-2.39-part2: (21 commits) help: mark unused parameter in git_unknown_cmd_config() run_processes_parallel: mark unused callback parameters userformat_want_item(): mark unused parameter for_each_commit_graft(): mark unused callback parameter rewrite_parents(): mark unused callback parameter fetch-pack: mark unused parameter in callback function notes: mark unused callback parameters prio-queue: mark unused parameters in comparison functions for_each_object: mark unused callback parameters list-objects: mark unused callback parameters mark unused parameters in signal handlers run-command: mark error routine parameters as unused mark "pointless" data pointers in callbacks ref-filter: mark unused callback parameters http-backend: mark unused parameters in virtual functions http-backend: mark argc/argv unused object-name: mark unused parameters in disambiguate callbacks serve: mark unused parameters in virtual functions serve: use repository pointer to get config ls-refs: drop config caching ...
Diffstat (limited to 'ls-refs.c')
-rw-r--r--ls-refs.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/ls-refs.c b/ls-refs.c
index f4c6b9b762..8091b0cca8 100644
--- a/ls-refs.c
+++ b/ls-refs.c
@@ -9,38 +9,32 @@
#include "config.h"
#include "string-list.h"
-static int config_read;
-static int advertise_unborn;
-static int allow_unborn;
-
-static void ensure_config_read(void)
+static enum {
+ UNBORN_IGNORE = 0,
+ UNBORN_ALLOW,
+ UNBORN_ADVERTISE /* implies ALLOW */
+} unborn_config(struct repository *r)
{
const char *str = NULL;
- if (config_read)
- return;
-
- if (repo_config_get_string_tmp(the_repository, "lsrefs.unborn", &str)) {
+ if (repo_config_get_string_tmp(r, "lsrefs.unborn", &str)) {
/*
* If there is no such config, advertise and allow it by
* default.
*/
- advertise_unborn = 1;
- allow_unborn = 1;
+ return UNBORN_ADVERTISE;
} else {
if (!strcmp(str, "advertise")) {
- advertise_unborn = 1;
- allow_unborn = 1;
+ return UNBORN_ADVERTISE;
} else if (!strcmp(str, "allow")) {
- allow_unborn = 1;
+ return UNBORN_ALLOW;
} else if (!strcmp(str, "ignore")) {
- /* do nothing */
+ return UNBORN_IGNORE;
} else {
die(_("invalid value for '%s': '%s'"),
"lsrefs.unborn", str);
}
}
- config_read = 1;
}
/*
@@ -160,7 +154,6 @@ int ls_refs(struct repository *r, struct packet_reader *request)
strbuf_init(&data.buf, 0);
string_list_init_dup(&data.hidden_refs);
- ensure_config_read();
git_config(ls_refs_config, &data);
while (packet_reader_read(request) == PACKET_READ_NORMAL) {
@@ -176,7 +169,7 @@ int ls_refs(struct repository *r, struct packet_reader *request)
strvec_push(&data.prefixes, out);
}
else if (!strcmp("unborn", arg))
- data.unborn = allow_unborn;
+ data.unborn = !!unborn_config(r);
else
die(_("unexpected line: '%s'"), arg);
}
@@ -207,11 +200,8 @@ int ls_refs(struct repository *r, struct packet_reader *request)
int ls_refs_advertise(struct repository *r, struct strbuf *value)
{
- if (value) {
- ensure_config_read();
- if (advertise_unborn)
- strbuf_addstr(value, "unborn");
- }
+ if (value && unborn_config(r) == UNBORN_ADVERTISE)
+ strbuf_addstr(value, "unborn");
return 1;
}