promisor-remote: refactor has_control_char()

In a future commit we are going to check if some strings contain
control characters, so let's refactor the logic to do that in a new
has_control_char() helper function.

It cleans up the code a bit anyway.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Christian Couder 2026-04-07 13:52:39 +02:00 committed by Junio C Hamano
parent 64f0f6b88a
commit 16a4372a3d
1 changed files with 14 additions and 10 deletions

View File

@ -642,6 +642,14 @@ static int all_fields_match(struct promisor_info *advertised,
return 1;
}

static bool has_control_char(const char *s)
{
for (const char *c = s; *c; c++)
if (iscntrl(*c))
return true;
return false;
}

static int should_accept_remote(enum accept_promisor accept,
struct promisor_info *advertised,
struct string_list *config_info)
@ -772,18 +780,14 @@ static bool valid_filter(const char *filter, const char *remote_name)
return !res;
}

/* Check that a token doesn't contain any control character */
static bool valid_token(const char *token, const char *remote_name)
{
const char *c = token;

for (; *c; c++)
if (iscntrl(*c)) {
warning(_("invalid token '%s' for remote '%s' "
"will not be stored"),
token, remote_name);
return false;
}
if (has_control_char(token)) {
warning(_("invalid token '%s' for remote '%s' "
"will not be stored"),
token, remote_name);
return false;
}

return true;
}