git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/7] Add calls to git_extract_argv0_path() in programs that call git_config_*

From
Steffen Prohaska <prohaska@zib.de>
Date
Aug 17, 2008, 12:44 UTC
Message-ID
<1218977083-14526-6-git-send-email-prohaska@zib.de>
In-Reply-To
<1218977083-14526-5-git-send-email-prohaska@zib.de>

Programs that use git_config need to find the global configuration. When runtime prefix computation is enabled, this requires that git_extract_argv0_path() is called early in the program's main().

This commit adds the necessary calls in the programs that use git_config.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
---
 daemon.c      |    3 +++
 fast-import.c |    4 ++++
 hash-object.c |    4 ++++
 index-pack.c  |    4 ++++
 unpack-file.c |    4 ++++
 var.c         |    4 ++++
 6 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/daemon.c b/daemon.c
index 8dcde73..172854e 100644
--- a/daemon.c
+++ b/daemon.c
@@ -1055,6 +1055,9 @@ int main(int argc, char **argv)
 	gid_t gid = 0;
 	int i;
 
+	if (argv[0] && *argv[0])
+		git_extract_argv0_path(argv[0]);
+
 	/* Without this we cannot rely on waitpid() to tell
 	 * what happened to our children.
 	 */
diff --git a/fast-import.c b/fast-import.c
index 7089e6f..7789d60 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -150,6 +150,7 @@ Format of STDIN stream:
 #include "refs.h"
 #include "csum-file.h"
 #include "quote.h"
+#include "exec_cmd.h"
 
 #define PACK_ID_BITS 16
 #define MAX_PACK_ID ((1<<PACK_ID_BITS)-1)
@@ -2394,6 +2395,9 @@ int main(int argc, const char **argv)
 {
 	unsigned int i, show_stats = 1;
 
+	if (argv[0] && *argv[0])
+		git_extract_argv0_path(argv[0]);
+
 	setup_git_directory();
 	git_config(git_pack_config, NULL);
 	if (!pack_compression_seen && core_compression_seen)
diff --git a/hash-object.c b/hash-object.c
index 46c06a9..0f77a46 100644
--- a/hash-object.c
+++ b/hash-object.c
@@ -7,6 +7,7 @@
 #include "cache.h"
 #include "blob.h"
 #include "quote.h"
+#include "exec_cmd.h"
 
 static void hash_object(const char *path, enum object_type type, int write_object)
 {
@@ -65,6 +66,9 @@ int main(int argc, char **argv)
 	int hashstdin = 0;
 	int stdin_paths = 0;
 
+	if (argv[0] && *argv[0])
+		git_extract_argv0_path(argv[0]);
+
 	git_config(git_default_config, NULL);
 
 	for (i = 1 ; i < argc; i++) {
diff --git a/index-pack.c b/index-pack.c
index 52064be..bd5983b 100644
--- a/index-pack.c
+++ b/index-pack.c
@@ -8,6 +8,7 @@
 #include "tree.h"
 #include "progress.h"
 #include "fsck.h"
+#include "exec_cmd.h"
 
 static const char index_pack_usage[] =
 "git index-pack [-v] [-o <index-file>] [{ ---keep | --keep=<msg> }] [--strict] { <pack-file> | --stdin [--fix-thin] [<pack-file>] }";
@@ -877,6 +878,9 @@ int main(int argc, char **argv)
 	struct pack_idx_entry **idx_objects;
 	unsigned char sha1[20];
 
+	if (argv[0] && *argv[0])
+		git_extract_argv0_path(argv[0]);
+
 	git_config(git_index_pack_config, NULL);
 
 	for (i = 1; i < argc; i++) {
diff --git a/unpack-file.c b/unpack-file.c
index bcdc8bb..f8bfda7 100644
--- a/unpack-file.c
+++ b/unpack-file.c
@@ -1,5 +1,6 @@
 #include "cache.h"
 #include "blob.h"
+#include "exec_cmd.h"
 
 static char *create_temp_file(unsigned char *sha1)
 {
@@ -25,6 +26,9 @@ int main(int argc, char **argv)
 {
 	unsigned char sha1[20];
 
+	if (argv[0] && *argv[0])
+		git_extract_argv0_path(argv[0]);
+
 	if (argc != 2)
 		usage("git-unpack-file <sha1>");
 	if (get_sha1(argv[1], sha1))
diff --git a/var.c b/var.c
index f1eb314..33457dc 100644
--- a/var.c
+++ b/var.c
@@ -4,6 +4,7 @@
  * Copyright (C) Eric Biederman, 2005
  */
 #include "cache.h"
+#include "exec_cmd.h"
 
 static const char var_usage[] = "git var [-l | <variable>]";
 
@@ -56,6 +57,9 @@ int main(int argc, char **argv)
 		usage(var_usage);
 	}
 
+	if (argv[0] && *argv[0])
+		git_extract_argv0_path(argv[0]);
+
 	setup_git_directory_gently(&nongit);
 	val = NULL;
 
-- 
1.6.0.rc3.22.g053fd
Previous: Steffen ProhaskaNext: Steffen Prohaska
Message 6 of 16 in “prefix discovery at runtime (on Windows)”
  1. 0/7 prefix discovery at runtime (on Windows)Steffen Prohaska, Aug 17, 2008
  2. 1/7 Windows: Add workaround for MSYS' path conversionSteffen Prohaska, Aug 17, 2008
  3. 2/7 system_path(): Add prefix computation at runtime if RUNTIME_PREFIX setSteffen Prohaska, Aug 17, 2008
  4. 3/7 Refactor git_set_argv0_path() to git_extract_argv0_path()Steffen Prohaska, Aug 17, 2008
  5. 4/7 Glean libexec path from argv[0] for git-upload-pack and git-receive-pack.Steffen Prohaska, Aug 17, 2008
  6. 5/7 Add calls to git_extract_argv0_path() in programs that call git_config_*Steffen Prohaska, Aug 17, 2008
  7. 6/7 Modify setup_path() to only add git_exec_path() to PATHSteffen Prohaska, Aug 17, 2008
  8. 7/7 Windows: Revert to default paths and convert them by RUNTIME_PREFIXSteffen Prohaska, Aug 17, 2008
  9. Johannes SixtAug 17, 2008
  10. Johannes SixtAug 17, 2008
  11. Steffen ProhaskaAug 18, 2008
  12. Johannes SixtAug 17, 2008
  13. Steffen ProhaskaSep 21, 2008
  14. Junio C HamanoAug 17, 2008
  15. Junio C HamanoSep 8, 2008
  16. Johannes SchindelinSep 9, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.