Makefile: quote $INSTLIBDIR when passing it to sed

f6a0ad4b (Makefile: generate Perl header from template file, 2018-04-10) moved code for generating the 'use lib' lines at the top of perl scripts from the $(SCRIPT_PERL_GEN) rule to a separate GIT-PERL-HEADER rule. This rule first populates INSTLIBDIR and then substitutes it into the GIT-PERL-HEADER using sed: INSTLIBDIR=... something ... sed -e 's=@@INSTLIBDIR@@='$$INSTLIBDIR'=g' $< > $@ Because $INSTLIBDIR is not surrounded by double quotes, the shell splits it at each space, causing errors if INSTLIBDIR contains an $IFS character: sed: 1: "s=@@INSTLIBDIR@@=/usr/l ...": unescaped newline inside substitute pattern Add back the missing double-quotes to make it work again. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Nieder committed Apr 23, 2018 at 16:25 UTC 64f982b8a791a8e9e612a103d05e5f01a08fce0f
1 file changed +1 -1
Makefile
+1 -1
@@ -2108,7 +2108,7 @@ GIT-PERL-HEADER: $(PERL_HEADER_TEMPLATE) GIT-PERL-DEFINES Makefile
2108 INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \
2109 INSTLIBDIR="$$INSTLIBDIR$${INSTLIBDIR_EXTRA:+:$$INSTLIBDIR_EXTRA}" && \
2110 sed -e 's=@@PATHSEP@@=$(pathsep)=g' \
2111 - -e 's=@@INSTLIBDIR@@='$$INSTLIBDIR'=g' \
2111 + -e "s=@@INSTLIBDIR@@=$$INSTLIBDIR=g" \
2112 -e 's=@@PERLLIBDIR_REL@@=$(perllibdir_relative_SQ)=g' \
2113 -e 's=@@GITEXECDIR_REL@@=$(gitexecdir_relative_SQ)=g' \
2114 -e 's=@@LOCALEDIR_REL@@=$(localedir_relative_SQ)=g' \