mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Add a new check when extension.submoduleEncoding is enabled to detect and prevent case-folding filesystem colisions. When this new check is triggered, a stricter casefolding aware URI encoding is used to percent-encode uppercase characters. By using this check/retry mechanism the uppercase encoding is only applied when necessary, so case-sensitive filesystems are not affected. Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
28 lines
781 B
C
28 lines
781 B
C
#ifndef URL_H
|
|
#define URL_H
|
|
|
|
struct strbuf;
|
|
|
|
int is_url(const char *url);
|
|
int is_urlschemechar(int first_flag, int ch);
|
|
char *url_decode(const char *url);
|
|
char *url_decode_mem(const char *url, int len);
|
|
|
|
/*
|
|
* Similar to the url_decode_{,mem} methods above, but doesn't assume there
|
|
* is a scheme followed by a : at the start of the string. Instead, %-sequences
|
|
* before any : are also parsed.
|
|
*/
|
|
char *url_percent_decode(const char *encoded);
|
|
|
|
char *url_decode_parameter_name(const char **query);
|
|
char *url_decode_parameter_value(const char **query);
|
|
|
|
void end_url_with_slash(struct strbuf *buf, const char *url);
|
|
void str_end_url_with_slash(const char *url, char **dest);
|
|
|
|
int is_rfc3986_unreserved(char ch);
|
|
int is_casefolding_rfc3986_unreserved(char c);
|
|
|
|
#endif /* URL_H */
|