> using ^ as an anchor doesn't seem that much better than %
> 
> autoconf uses & and |, but they tend to do it for vars where it's
> unlikely those will show up (like path vars)
> 
> how about something like:
>       @s=$$(printf '\001'); \
>       sed -e "s$$s!MACHINE!$$s$(Machine)$$s" ...

Good idea, just the $s has to be made ${s}. I'm attaching the updated
version.

Thanks
-- 
        Vlad
# Our compiler flags contain percent sign which get mixed up with percent sign
# seprators used by sed.

--- Makefile.in 2016-12-06 14:52:25.890038489 +0100
+++ Makefile.in 2016-12-06 14:52:15.493002959 +0100
@@ -584,10 +584,11 @@ $(Program):  .build $(OBJECTS) $(BUILTIN
        @echo
 
 bashbug: $(SUPPORT_SRC)bashbug.sh config.h Makefile $(VERSPROG)
-       @sed -e "s%!MACHINE!%$(Machine)%" -e "s%!OS!%$(OS)%" \
-            -e "s%!CFLAGS!%$(CCFLAGS)%" -e "s%!CC!%$(CC)%" \
-            -e "s%!RELEASE!%$(Version)%" -e "s%!PATCHLEVEL!%$(PatchLevel)%" \
-            -e "s%!MACHTYPE!%$(MACHTYPE)%" -e "s%!RELSTATUS!%$(RELSTATUS)%" \
+       @s=$$(printf '\001'); \
+       sed -e "s$${s}!MACHINE!$${s}$(Machine)$${s}" -e 
"s$${s}!OS!$${s}$(OS)$${s}" \
+           -e "s$${s}!CFLAGS!$${s}$(CCFLAGS)$${s}" -e 
"s$${s}!CC!$${s}$(CC)$${s}" \
+           -e "s$${s}!RELEASE!$${s}$(Version)$${s}" -e 
"s$${s}!PATCHLEVEL!$${s}$(PatchLevel)$${s}" \
+           -e "s$${s}!MACHTYPE!$${s}$(MACHTYPE)$${s}" -e 
"s$${s}!RELSTATUS!$${s}$(RELSTATUS)$${s}" \
             $(SUPPORT_SRC)bashbug.sh > $@
        @chmod a+rx bashbug
 

Reply via email to