MCPcopy Create free account
hub / github.com/git/git / precompose_string_if_needed

Function precompose_string_if_needed

compat/precompose_utf8.c:70–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

68}
69
70const char *precompose_string_if_needed(const char *in)
71{
72 size_t inlen;
73 size_t outlen;
74 struct repo_config_values *cfg = repo_config_values(the_repository);
75
76 if (!in)
77 return NULL;
78 if (has_non_ascii(in, (size_t)-1, &inlen)) {
79 iconv_t ic_prec;
80 char *out;
81 if (cfg->precomposed_unicode < 0)
82 repo_config_get_bool(the_repository, "core.precomposeunicode", &cfg->precomposed_unicode);
83 if (cfg->precomposed_unicode != 1)
84 return in;
85 ic_prec = iconv_open(repo_encoding, path_encoding);
86 if (ic_prec == (iconv_t) -1)
87 return in;
88
89 out = reencode_string_iconv(in, inlen, ic_prec, 0, &outlen);
90 if (out) {
91 if (outlen == inlen && !memcmp(in, out, outlen))
92 free(out); /* no need to return identical */
93 else
94 in = out;
95 }
96 iconv_close(ic_prec);
97
98 }
99 return in;
100}
101
102const char *precompose_argv_prefix(int argc, const char **argv, const char *prefix)
103{

Callers 2

precompose_argv_prefixFunction · 0.70
my_add_pathFunction · 0.50

Calls 4

repo_config_get_boolFunction · 0.85
reencode_string_iconvFunction · 0.85
repo_config_valuesClass · 0.70
has_non_asciiFunction · 0.70

Tested by

no test coverage detected