From fb3b2e627f6f717ef9b32d381a445012b1617ada Mon Sep 17 00:00:00 2001 From: Adrian Ratiu Date: Mon, 6 Oct 2025 14:25:16 +0300 Subject: [PATCH] strbuf: bring back is_rfc3986_unreserved is_rfc3986_unreserved() was moved to credential-store.c and was made static by f89854362c (credential-store: move related functions to credential-store file, 2023-06-06) under a correct assumption, at the time, that it was the only place using it. However now we need it to apply URL-encoding to submodule names when constructing gitdir paths, to avoid conflicts, so bring it back. Signed-off-by: Adrian Ratiu Signed-off-by: Junio C Hamano --- builtin/credential-store.c | 6 ------ strbuf.c | 6 ++++++ strbuf.h | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/builtin/credential-store.c b/builtin/credential-store.c index b74e06cc93..0acaf1cc82 100644 --- a/builtin/credential-store.c +++ b/builtin/credential-store.c @@ -76,12 +76,6 @@ static void rewrite_credential_file(const char *fn, struct credential *c, die_errno("unable to write credential store"); } -static int is_rfc3986_unreserved(char ch) -{ - return isalnum(ch) || - ch == '-' || ch == '_' || ch == '.' || ch == '~'; -} - static int is_rfc3986_reserved_or_unreserved(char ch) { if (is_rfc3986_unreserved(ch)) diff --git a/strbuf.c b/strbuf.c index 6c3851a7f8..e8d84cbb6d 100644 --- a/strbuf.c +++ b/strbuf.c @@ -817,6 +817,12 @@ void strbuf_addstr_xml_quoted(struct strbuf *buf, const char *s) } } +int is_rfc3986_unreserved(char ch) +{ + return isalnum(ch) || + ch == '-' || ch == '_' || ch == '.' || ch == '~'; +} + static void strbuf_add_urlencode(struct strbuf *sb, const char *s, size_t len, char_predicate allow_unencoded_fn) { diff --git a/strbuf.h b/strbuf.h index a580ac6084..5139269039 100644 --- a/strbuf.h +++ b/strbuf.h @@ -640,6 +640,8 @@ static inline void strbuf_complete_line(struct strbuf *sb) typedef int (*char_predicate)(char ch); +int is_rfc3986_unreserved(char ch); + void strbuf_addstr_urlencode(struct strbuf *sb, const char *name, char_predicate allow_unencoded_fn);