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>

Christian Couder committed Apr 7, 2026 at 13:52 UTC 16a4372a3df7579429b7bc23e984bd797a4b7b8d
1 file changed +14 -10
promisor-remote.c
+14 -10
@@ -642,6 +642,14 @@ static int all_fields_match(struct promisor_info *advertised,
642 return 1;
643 }
644
645 +static bool has_control_char(const char *s)
646 +{
647 + for (const char *c = s; *c; c++)
648 + if (iscntrl(*c))
649 + return true;
650 + return false;
651 +}
652 +
653 static int should_accept_remote(enum accept_promisor accept,
654 struct promisor_info *advertised,
655 struct string_list *config_info)
@@ -772,18 +780,14 @@ static bool valid_filter(const char *filter, const char *remote_name)
780 return !res;
781 }
782
775 -/* Check that a token doesn't contain any control character */
783 static bool valid_token(const char *token, const char *remote_name)
784 {
778 - const char *c = token;
779 -
780 - for (; *c; c++)
781 - if (iscntrl(*c)) {
782 - warning(_("invalid token '%s' for remote '%s' "
783 - "will not be stored"),
784 - token, remote_name);
785 - return false;
786 - }
785 + if (has_control_char(token)) {
786 + warning(_("invalid token '%s' for remote '%s' "
787 + "will not be stored"),
788 + token, remote_name);
789 + return false;
790 + }
791
792 return true;
793 }