From: Junio C Hamano Date: Sat, 31 Mar 2012 18:04:57 GMT Subject: Re: [PATCH] Use SHELL_PATH from build system in run_command.c:prepare_shell_cmd Message-ID: <7vwr60ir3q.fsf@alter.siamese.dyndns.org> In-Reply-To: <7v62dkk6dl.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > Jonathan Nieder writes: > ... >> -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 || \