Expanding system paths relative to git_exec_path can be used for
creating an installation that can be moved to a different directory
without re-compiling. We use this approach for template_dir and the
system wide gitconfig. The Windows installer (msysgit) is an example
for such a setup.
This commit moves common code to a new function system_path(). System
paths that are to be interpreted relative to git_exec_path are passed to
system_path() and the return value is used instead of the original path.
system_path() prefixes a relative path with git_exec_path and leaves
absolute paths unmodified. For example, we now write
template_dir = system_path(DEFAULT_GIT_TEMPLATE_DIR);
[j6t: moved from path.c to exec_cmd.c]
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 lines
378 B
C
12 lines
378 B
C
#ifndef GIT_EXEC_CMD_H
|
|
#define GIT_EXEC_CMD_H
|
|
|
|
extern void git_set_argv_exec_path(const char *exec_path);
|
|
extern const char* git_exec_path(void);
|
|
extern void setup_path(const char *);
|
|
extern int execv_git_cmd(const char **argv); /* NULL terminated */
|
|
extern int execl_git_cmd(const char *cmd, ...);
|
|
extern const char *system_path(const char *path);
|
|
|
|
#endif /* GIT_EXEC_CMD_H */
|