Merge branch 'jk/system-path-cleanup'

Code clean-up.

* jk/system-path-cleanup:
  git_extract_argv0_path: do nothing without RUNTIME_PREFIX
  system_path: move RUNTIME_PREFIX to a sub-function
maint
Junio C Hamano 2017-09-19 10:47:55 +09:00
commit f2ab3a10b5
1 changed files with 28 additions and 14 deletions

View File

@ -5,21 +5,14 @@
#define MAX_ARGS 32 #define MAX_ARGS 32


static const char *argv_exec_path; static const char *argv_exec_path;

#ifdef RUNTIME_PREFIX
static const char *argv0_path; static const char *argv0_path;


char *system_path(const char *path) 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,10 +25,7 @@ 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;

strbuf_addf(&d, "%s/%s", prefix, path);
return strbuf_detach(&d, NULL);
} }


void git_extract_argv0_path(const char *argv0) void git_extract_argv0_path(const char *argv0)
@ -51,6 +41,30 @@ void git_extract_argv0_path(const char *argv0)
argv0_path = xstrndup(argv0, slash - argv0); argv0_path = xstrndup(argv0, slash - argv0);
} }


#else

static const char *system_prefix(void)
{
return PREFIX;
}

void git_extract_argv0_path(const char *argv0)
{
}

#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);
}

void git_set_argv_exec_path(const char *exec_path) void git_set_argv_exec_path(const char *exec_path)
{ {
argv_exec_path = exec_path; argv_exec_path = exec_path;