Fix bad '... \\' escape in ghcversion.h generation
authorHerbert Valerio Riedel <hvr@gnu.org>
Mon, 19 Jan 2015 11:18:02 +0000 (12:18 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Mon, 19 Jan 2015 11:18:02 +0000 (12:18 +0100)
Today I learned about the peculiarities of escaping within
single-quotes:

Turns out,

  echo 'foo \\'

emits

  foo \\

rather than escaping the '\'. Curiously, if you need to escape a '
within single-quotes, here's how to do it

  echo 'foo '\'' bar'

which will emit

  foo ' bar

This fixes #10002

includes/ghc.mk

index c7cec6c..7a255db 100644 (file)
@@ -71,12 +71,12 @@ $(includes_H_VERSION) : mk/project.mk | $$(dir $$@)/.
          echo "#define __GLASGOW_HASKELL_PATCHLEVEL2__ $(ProjectPatchLevel2)" >> $@; \
        fi
        @echo >> $@
-       @echo '#define MIN_VERSION_GLASGOW_HASKELL(ma,mi,pl1,pl2) (\\'     >> $@
-       @echo '   ((ma)*100+(mi)) <  __GLASGOW_HASKELL__ || \\'            >> $@
-       @echo '   ((ma)*100+(mi)) == __GLASGOW_HASKELL__    \\'            >> $@
-       @echo '          && (pl1) <  __GLASGOW_HASKELL_PATCHLEVEL1__ || \\'>> $@
-       @echo '   ((ma)*100+(mi)) == __GLASGOW_HASKELL__    \\'            >> $@
-       @echo '          && (pl1) == __GLASGOW_HASKELL_PATCHLEVEL1__ \\'   >> $@
+       @echo '#define MIN_VERSION_GLASGOW_HASKELL(ma,mi,pl1,pl2) (\     >> $@
+       @echo '   ((ma)*100+(mi)) <  __GLASGOW_HASKELL__ || \            >> $@
+       @echo '   ((ma)*100+(mi)) == __GLASGOW_HASKELL__    \            >> $@
+       @echo '          && (pl1) <  __GLASGOW_HASKELL_PATCHLEVEL1__ || \>> $@
+       @echo '   ((ma)*100+(mi)) == __GLASGOW_HASKELL__    \            >> $@
+       @echo '          && (pl1) == __GLASGOW_HASKELL_PATCHLEVEL1__ \   >> $@
        @echo '          && (pl2) <= __GLASGOW_HASKELL_PATCHLEVEL2__ )'    >> $@
        @echo >> $@
        @echo "#endif /* __GHCVERSION_H__ */"          >> $@