From: Vsevolod Myalitsin <ub4nal@mail.ru>
To: git@vger.kernel.org
Cc: ub4nal@mail.ru, ben.knoble@gmail.org, gitster@pobox.me, peff@peff.net
Subject: [PATCH v4 1/3] advice: pass the entire advice_setting to vadvise()
Date: Thu, 10 Sep 2026 11:53:51 +0300 [thread overview]
Message-ID: <20260910085353.109373-2-ub4nal@mail.ru> (raw)
In-Reply-To: <20260910085353.109373-1-ub4nal@mail.ru>
Currently, vadvise() takes the advice level and configuration key as
separate arguments. Pass the entire advice_setting structure instead.
This keeps the advice configuration together and makes it possible for
vadvise() to access additional properties of an advice setting without
changing its interface again.
Signed-off-by: Vsevolod Myalitsin <ub4nal@mail.ru>
---
advice.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/advice.c b/advice.c
index 63bf8b0c5f..b556c8b38e 100644
--- a/advice.c
+++ b/advice.c
@@ -40,10 +40,12 @@ enum advice_level {
ADVICE_LEVEL_ENABLED,
};
-static struct {
+struct advice_setting {
const char *key;
enum advice_level level;
-} advice_setting[] = {
+};
+
+static struct advice_setting advice_setting[] = {
[ADVICE_ADD_EMBEDDED_REPO] = { "addEmbeddedRepo" },
[ADVICE_ADD_EMPTY_PATHSPEC] = { "addEmptyPathspec" },
[ADVICE_ADD_IGNORED_FILE] = { "addIgnoredFile" },
@@ -98,16 +100,17 @@ static const char turn_off_instructions[] =
N_("\n"
"Disable this message with \"git config set advice.%s false\"");
-static void vadvise(const char *advice, int display_instructions,
- const char *key, va_list params)
+static void vadvise(const char *advice,
+ const struct advice_setting *setting, va_list params)
{
struct strbuf buf = STRBUF_INIT;
const char *cp, *np;
strbuf_vaddf(&buf, advice, params);
- if (display_instructions)
- strbuf_addf(&buf, turn_off_instructions, key);
+ if (setting && setting->level == ADVICE_LEVEL_NONE) {
+ strbuf_addf(&buf, turn_off_instructions,
+ setting->key);
for (cp = buf.buf; *cp; cp = np) {
np = strchrnul(cp, '\n');
@@ -126,7 +129,7 @@ void advise(const char *advice, ...)
{
va_list params;
va_start(params, advice);
- vadvise(advice, 0, "", params);
+ vadvise(advice, NULL, params);
va_end(params);
}
@@ -155,8 +158,7 @@ void advise_if_enabled(enum advice_type type, const char *advice, ...)
return;
va_start(params, advice);
- vadvise(advice, !advice_setting[type].level, advice_setting[type].key,
- params);
+ vadvise(advice, &advice_setting[type], params);
va_end(params);
}
--
2.50.1
next prev parent reply other threads:[~2026-09-10 9:11 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2027-08-29 0:49 [PATCH v3] advice: use global config for default branch name Vsevolod Myalitsin
2026-09-09 20:27 ` Jeff King
2026-09-09 21:21 ` Junio C Hamano
2026-09-09 21:22 ` Vsevolod Myalitsin
2026-09-09 22:46 ` Jeff King
2026-09-10 4:43 ` Vsevolod Myalitsin
2026-09-09 20:50 ` Junio C Hamano
2026-09-09 21:30 ` Vsevolod Myalitsin
2026-09-09 22:31 ` Junio C Hamano
2026-09-10 8:53 ` [PATCH v4 0/3] defaultBranchName advice is useless Vsevolod Myalitsin
2026-09-10 8:53 ` Vsevolod Myalitsin [this message]
2026-09-10 17:43 ` [PATCH v4 1/3] advice: pass the entire advice_setting to vadvise() SZEDER Gábor
2026-09-10 8:53 ` [PATCH v4 2/3] advice: introduce advice scoping mechanism Vsevolod Myalitsin
2026-09-10 15:36 ` Junio C Hamano
2026-09-10 15:52 ` Jeff King
2026-09-10 17:54 ` Vsevolod Myalitsin
2026-09-10 19:05 ` Jeff King
2026-09-10 18:35 ` Junio C Hamano
2026-09-10 19:03 ` Jeff King
2026-09-10 19:54 ` Junio C Hamano
2026-09-10 20:11 ` Jeff King
2026-09-10 20:25 ` Junio C Hamano
2026-09-12 8:12 ` Vsevolod Myalitsin
2026-09-13 16:32 ` Junio C Hamano
2026-09-10 8:53 ` [PATCH v4 3/3] advice: use global config for default branch name Vsevolod Myalitsin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260910085353.109373-2-ub4nal@mail.ru \
--to=ub4nal@mail.ru \
--cc=ben.knoble@gmail.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.me \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox