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

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 <>
Signed-off-by: Junio C Hamano <>
Torsten Bögershausen 2021-04-04 08:17:45 +02:00 committed by Junio C Hamano
parent 5c327502db
commit 5020774aef
3 changed files with 10 additions and 5 deletions

View File

@ -60,10 +60,12 @@ void probe_utf8_pathname_composition(void)
static inline const char *precompose_string_if_needed(const char *in)
const char *precompose_string_if_needed(const char *in)
size_t inlen;
size_t outlen;
if (!in)
return NULL;
if (has_non_ascii(in, (size_t)-1, &inlen)) {
iconv_t ic_prec;
char *out;
@ -96,10 +98,7 @@ const char *precompose_argv_prefix(int argc, const char **argv, const char *pref
argv[i] = precompose_string_if_needed(argv[i]);
if (prefix) {
prefix = precompose_string_if_needed(prefix);
return prefix;
return precompose_string_if_needed(prefix);

View File

@ -29,6 +29,7 @@ typedef struct {
const char *precompose_argv_prefix(int argc, const char **argv, const char *prefix);
const char *precompose_string_if_needed(const char *in);
void probe_utf8_pathname_composition(void);
PREC_DIR *precompose_utf8_opendir(const char *dirname);

View File

@ -256,6 +256,11 @@ static inline const char *precompose_argv_prefix(int argc, const char **argv, co
return prefix;
static inline const char *precompose_string_if_needed(const char *in)
return in;
#define probe_utf8_pathname_composition()