precompose_utf8: make precompose_string_if_needed() public

commit 5c327502 (MacOS: precompose_argv_prefix(), 2021-02-03) uses the function precompose_string_if_needed() internally. It is only used from precompose_argv_prefix() and therefore static in compat/precompose_utf8.c Expose this function, it will be used in the next commit. While there, allow passing a NULL pointer, which will return NULL. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Torsten Bögershausen committed Apr 4, 2021 at 08:17 UTC 5020774aef3fc80c89fac2e04d4ed0aeac66cdf0
3 files changed +10 -5
compat/precompose_utf8.c
+4 -5
@@ -60,10 +60,12 @@ void probe_utf8_pathname_composition(void)
60 strbuf_release(&path);
61 }
62
63 -static inline const char *precompose_string_if_needed(const char *in)
63 +const char *precompose_string_if_needed(const char *in)
64 {
65 size_t inlen;
66 size_t outlen;
67 + if (!in)
68 + return NULL;
69 if (has_non_ascii(in, (size_t)-1, &inlen)) {
70 iconv_t ic_prec;
71 char *out;
@@ -96,10 +98,7 @@ const char *precompose_argv_prefix(int argc, const char **argv, const char *pref
98 argv[i] = precompose_string_if_needed(argv[i]);
99 i++;
100 }
99 - if (prefix) {
100 - prefix = precompose_string_if_needed(prefix);
101 - }
102 - return prefix;
101 + return precompose_string_if_needed(prefix);
102 }
103
104
compat/precompose_utf8.h
+1
@@ -29,6 +29,7 @@ typedef struct {
29 } PREC_DIR;
30
31 const char *precompose_argv_prefix(int argc, const char **argv, const char *prefix);
32 +const char *precompose_string_if_needed(const char *in);
33 void probe_utf8_pathname_composition(void);
34
35 PREC_DIR *precompose_utf8_opendir(const char *dirname);
git-compat-util.h
+5
@@ -256,6 +256,11 @@ static inline const char *precompose_argv_prefix(int argc, const char **argv, co
256 {
257 return prefix;
258 }
259 +static inline const char *precompose_string_if_needed(const char *in)
260 +{
261 + return in;
262 +}
263 +
264 #define probe_utf8_pathname_composition()
265 #endif
266