summaryrefslogtreecommitdiff
path: root/exec_cmd.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-09-06 08:30:28 -0400
committerJunio C Hamano <gitster@pobox.com>2017-09-07 09:41:11 +0900
commit39b2f6af6e009c2c087eeec293e98222eb396263 (patch)
tree0c2f0fcf29fbca762aa8146ed9a06f2c9684474b /exec_cmd.c
parent3d9c5b5c4461957fbbc0479e037990db04ebb740 (diff)
downloadgit-39b2f6af6e009c2c087eeec293e98222eb396263.tar.gz
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>
Diffstat (limited to 'exec_cmd.c')
-rw-r--r--exec_cmd.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/exec_cmd.c b/exec_cmd.c
index fb94aeba9c..61092e9715 100644
--- a/exec_cmd.c
+++ b/exec_cmd.c
@@ -7,19 +7,12 @@
static const char *argv_exec_path;
static const char *argv0_path;
-char *system_path(const char *path)
-{
#ifdef RUNTIME_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);
+static const char *system_prefix(void)
+{
+ static const char *prefix;
-#ifdef RUNTIME_PREFIX
assert(argv0_path);
assert(is_absolute_path(argv0_path));
@@ -32,9 +25,25 @@ char *system_path(const char *path)
"but prefix computation failed. "
"Using static fallback '%s'.\n", prefix);
}
-#endif
+ return prefix;
+}
+#else
+
+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", prefix, path);
+ strbuf_addf(&d, "%s/%s", system_prefix(), path);
return strbuf_detach(&d, NULL);
}