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

[PATCH v2 3/3] Avoid multiple PREFIX definitions

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Apr 21, 2018, 11:18 UTC
Message-ID
<nycvar.QRO.7.76.6.1804211316370.4241@ZVAVAG-6OXH6DA.rhebcr.pbec.zvpebfbsg.pbz>
In-Reply-To
<cover.1524309209.git.johannes.schindelin@gmx.de>
From: Philip Oakley <philipoakley@iee.org>
The short and sweet PREFIX can be confused when used in many places.

Rename both usages to better describe their purpose. EXEC_CMD_PREFIX is used in full to disambiguate it from the nearby GIT_EXEC_PATH.

The PREFIX in sideband.c, while nominally independant of the exec_cmd PREFIX, does reside within libgit[1], so the definitions would clash when taken together with a PREFIX given on the command line for use by exec_cmd.c.

Noticed when compiling Git for Windows using MSVC/Visual Studio [1] which reports the conflict beteeen the command line definition and the definition in sideband.c within the libgit project.

[1] the libgit functions are brought into a single sub-project within the Visual Studio construction script provided in contrib, and hence uses a single command for both exec_cmd.c and sideband.c.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 Makefile   |  2 +-
 exec-cmd.c |  4 ++--
 sideband.c | 10 +++++-----
 3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
index 111e93d3bea..49cec672242 100644
--- a/Makefile
+++ b/Makefile
@@ -2271,7 +2271,7 @@ exec-cmd.sp exec-cmd.s exec-cmd.o: EXTRA_CPPFLAGS = \
 	'-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
 	'-DGIT_LOCALE_PATH="$(localedir_relative_SQ)"' \
 	'-DBINDIR="$(bindir_relative_SQ)"' \
-	'-DPREFIX="$(prefix_SQ)"'
+	'-DFALLBACK_RUNTIME_PREFIX="$(prefix_SQ)"'
 
 builtin/init-db.sp builtin/init-db.s builtin/init-db.o: GIT-PREFIX
 builtin/init-db.sp builtin/init-db.s builtin/init-db.o: EXTRA_CPPFLAGS = \
diff --git a/exec-cmd.c b/exec-cmd.c
index 3b0a039083a..02d31ee8971 100644
--- a/exec-cmd.c
+++ b/exec-cmd.c
@@ -48,7 +48,7 @@ static const char *system_prefix(void)
 	    !(prefix = strip_path_suffix(executable_dirname, GIT_EXEC_PATH)) &&
 	    !(prefix = strip_path_suffix(executable_dirname, BINDIR)) &&
 	    !(prefix = strip_path_suffix(executable_dirname, "git"))) {
-		prefix = PREFIX;
+		prefix = FALLBACK_RUNTIME_PREFIX;
 		trace_printf("RUNTIME_PREFIX requested, "
 				"but prefix computation failed.  "
 				"Using static fallback '%s'.\n", prefix);
@@ -243,7 +243,7 @@ void git_resolve_executable_dir(const char *argv0)
  */
 static const char *system_prefix(void)
 {
-	return PREFIX;
+	return FALLBACK_RUNTIME_PREFIX;
 }
 
 /*
diff --git a/sideband.c b/sideband.c
index 6d7f943e438..325bf0e974a 100644
--- a/sideband.c
+++ b/sideband.c
@@ -13,7 +13,7 @@
  * the remote died unexpectedly.  A flush() concludes the stream.
  */
 
-#define PREFIX "remote: "
+#define DISPLAY_PREFIX "remote: "
 
 #define ANSI_SUFFIX "\033[K"
 #define DUMB_SUFFIX "        "
@@ -49,7 +49,7 @@ int recv_sideband(const char *me, int in_stream, int out)
 		switch (band) {
 		case 3:
 			strbuf_addf(&outbuf, "%s%s%s", outbuf.len ? "\n" : "",
-				    PREFIX, buf + 1);
+				    DISPLAY_PREFIX, buf + 1);
 			retval = SIDEBAND_REMOTE_ERROR;
 			break;
 		case 2:
@@ -67,7 +67,7 @@ int recv_sideband(const char *me, int in_stream, int out)
 				int linelen = brk - b;
 
 				if (!outbuf.len)
-					strbuf_addstr(&outbuf, PREFIX);
+					strbuf_addstr(&outbuf, DISPLAY_PREFIX);
 				if (linelen > 0) {
 					strbuf_addf(&outbuf, "%.*s%s%c",
 						    linelen, b, suffix, *brk);
@@ -81,8 +81,8 @@ int recv_sideband(const char *me, int in_stream, int out)
 			}
 
 			if (*b)
-				strbuf_addf(&outbuf, "%s%s",
-					    outbuf.len ? "" : PREFIX, b);
+				strbuf_addf(&outbuf, "%s%s", outbuf.len ?
+					    "" : DISPLAY_PREFIX, b);
 			break;
 		case 1:
 			write_or_die(out, buf + 1, len);
-- 
2.17.0.windows.1.15.gaa56ade3205
Previous: Johannes SchindelinNext: Junio C Hamano
Message 15 of 21 in “Some add-on patches on top of dj/runtime-prefix”
  1. 0/3 Some add-on patches on top of dj/runtime-prefixJohannes Schindelin, Apr 20, 2018
  2. 1/3 gettext: avoid initialization if the locale dir is not presentJohannes Schindelin, Apr 20, 2018
  3. Ævar Arnfjörð BjarmasonApr 20, 2018
  4. Martin ÅgrenApr 20, 2018
  5. Ævar Arnfjörð BjarmasonApr 20, 2018
  6. Johannes SchindelinApr 20, 2018
  7. Ævar Arnfjörð BjarmasonApr 21, 2018
  8. Johannes SchindelinApr 21, 2018
  9. 2/3 git_setup_gettext: plug memory leakJohannes Schindelin, Apr 20, 2018
  10. 3/3 Avoid multiple PREFIX definitionsJohannes Schindelin, Apr 20, 2018
  11. Philip OakleyApr 22, 2018
  12. 0/3 Some add-on patches on top of dj/runtime-prefixJohannes Schindelin, Apr 21, 2018
  13. 1/3 gettext: avoid initialization if the locale dir is not presentJohannes Schindelin, Apr 21, 2018
  14. 2/3 git_setup_gettext: plug memory leakJohannes Schindelin, Apr 21, 2018
  15. 3/3 Avoid multiple PREFIX definitionsJohannes Schindelin, Apr 21, 2018
  16. Junio C HamanoApr 24, 2018
  17. Junio C HamanoApr 24, 2018
  18. Junio C HamanoApr 24, 2018
  19. Johannes SchindelinApr 24, 2018
  20. Junio C HamanoApr 25, 2018
  21. Johannes SchindelinApr 25, 2018

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.