system_path: move RUNTIME_PREFIX to a sub-function
The system_path() function has an #ifdef in the middle of it. Let's move the conditional logic into a sub-function. This isolates it more, which will make it easier to change and add to. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3d9c5b5c44
commit
39b2f6af6e
33
exec_cmd.c
33
exec_cmd.c
@ -7,19 +7,12 @@
|
|||||||
static const char *argv_exec_path;
|
static const char *argv_exec_path;
|
||||||
static const char *argv0_path;
|
static const char *argv0_path;
|
||||||
|
|
||||||
char *system_path(const char *path)
|
#ifdef RUNTIME_PREFIX
|
||||||
|
|
||||||
|
static const char *system_prefix(void)
|
||||||
{
|
{
|
||||||
#ifdef RUNTIME_PREFIX
|
|
||||||
static const char *prefix;
|
static const char *prefix;
|
||||||
#else
|
|
||||||
static const char *prefix = PREFIX;
|
|
||||||
#endif
|
|
||||||
struct strbuf d = STRBUF_INIT;
|
|
||||||
|
|
||||||
if (is_absolute_path(path))
|
|
||||||
return xstrdup(path);
|
|
||||||
|
|
||||||
#ifdef RUNTIME_PREFIX
|
|
||||||
assert(argv0_path);
|
assert(argv0_path);
|
||||||
assert(is_absolute_path(argv0_path));
|
assert(is_absolute_path(argv0_path));
|
||||||
|
|
||||||
@ -32,9 +25,25 @@ char *system_path(const char *path)
|
|||||||
"but prefix computation failed. "
|
"but prefix computation failed. "
|
||||||
"Using static fallback '%s'.\n", prefix);
|
"Using static fallback '%s'.\n", prefix);
|
||||||
}
|
}
|
||||||
#endif
|
return prefix;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
strbuf_addf(&d, "%s/%s", prefix, path);
|
static const char *system_prefix(void)
|
||||||
|
{
|
||||||
|
return PREFIX;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* RUNTIME_PREFIX */
|
||||||
|
|
||||||
|
char *system_path(const char *path)
|
||||||
|
{
|
||||||
|
struct strbuf d = STRBUF_INIT;
|
||||||
|
|
||||||
|
if (is_absolute_path(path))
|
||||||
|
return xstrdup(path);
|
||||||
|
|
||||||
|
strbuf_addf(&d, "%s/%s", system_prefix(), path);
|
||||||
return strbuf_detach(&d, NULL);
|
return strbuf_detach(&d, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user