[PATCH 2/2] Makefile: quote $INSTLIBDIR when passing it to sed
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Apr 23, 2018, 23:25 UTC
- Message-ID
- <20180423232535.GD25128@aiede.svl.corp.google.com>
- In-Reply-To
- <20180423232326.GB25128@aiede.svl.corp.google.com>
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> --- Thanks for reading.
Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index 8f4cb506ff..727eca5d0a 100644 --- a/Makefile +++ b/Makefile @@ -2108,7 +2108,7 @@ GIT-PERL-HEADER: $(PERL_HEADER_TEMPLATE) GIT-PERL-DEFINES Makefile INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \ INSTLIBDIR="$$INSTLIBDIR$${INSTLIBDIR_EXTRA:+:$$INSTLIBDIR_EXTRA}" && \ sed -e 's=@@PATHSEP@@=$(pathsep)=g' \ - -e 's=@@INSTLIBDIR@@='$$INSTLIBDIR'=g' \ + -e 's=@@INSTLIBDIR@@='"$$INSTLIBDIR"'=g' \ -e 's=@@PERLLIBDIR_REL@@=$(perllibdir_relative_SQ)=g' \ -e 's=@@GITEXECDIR_REL@@=$(gitexecdir_relative_SQ)=g' \ -e 's=@@LOCALEDIR_REL@@=$(localedir_relative_SQ)=g' \
-- 2.17.0.441.gb46fe60e1d