Re: [PATCH] Use SHELL_PATH from build system in run_command.c:prepare_shell_cmd
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:26
Junio C Hamano [off-list ref] writes:
Jonathan Nieder [off-list ref] writes: ...quoted
-run-command.o: EXTRA_CPPFLAGS = -DSHELL_PATH='"$(SHELL_PATH_SQ)"' +run-command.sp run-command.s run-command.o: EXTRA_CPPFLAGS = \ + '-DSHELL_PATH="$(SHELL_PATH_SQ)"' $(BUILT_INS): git$X $(QUIET_BUILT_IN)$(RM) $@ && \Actually, I do not think this is sufficient, and it happens that you and I are in the best position to realize it ;-). Look at what is done in the Makefile for DEFAULT_EDITOR and DEFAULT_PAGER, and compare with what the above is doing, and think why the EDITOR/PAGER needs to have another level of quoting.
In other words, something like this squashed into Ben's patch...
diff --git i/Makefile w/Makefile
index dea1f15..abee43e 100644
--- i/Makefile
+++ w/Makefile@@ -1849,6 +1849,13 @@ DEFAULT_PAGER_CQ_SQ = $(subst ','\'',$(DEFAULT_PAGER_CQ)) BASIC_CFLAGS += -DDEFAULT_PAGER='$(DEFAULT_PAGER_CQ_SQ)' endif +ifdef SHELL_PATH +SHELL_PATH_CQ = "$(subst ",\",$(subst \,\\,$(SHELL_PATH)))" +SHELL_PATH_CQ_SQ = $(subst ','\'',$(SHELL_PATH_CQ)) + +BASIC_CFLAGS += -DSHELL_PATH='$(SHELL_PATH_CQ_SQ)' +endif + ALL_CFLAGS += $(BASIC_CFLAGS) ALL_LDFLAGS += $(BASIC_LDFLAGS)
@@ -1913,8 +1920,6 @@ builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \ '-DGIT_MAN_PATH="$(mandir_SQ)"' \ '-DGIT_INFO_PATH="$(infodir_SQ)"' -run-command.o: EXTRA_CPPFLAGS = -DSHELL_PATH='"$(SHELL_PATH_SQ)"' - $(BUILT_INS): git$X $(QUIET_BUILT_IN)$(RM) $@ && \ ln git$X $@ 2>/dev/null || \