From 4c4d35394d1bdb4dc3392482ab002bc111a3378f Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 21 Feb 2012 15:28:46 +0100 Subject: tests: post-process stderr to normalize quotes. * tests/bison.in: Save bison's stderr, and convert gettextized quotes to plain ASCII. --- tests/bison.in | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/bison.in b/tests/bison.in index 5d609bf5..9e1709ac 100644 --- a/tests/bison.in +++ b/tests/bison.in @@ -20,17 +20,29 @@ abs_top_srcdir='@abs_top_srcdir@' abs_top_builddir='@abs_top_builddir@' +: ${PERL=perl} + # Use the shipped files, not those installed. BISON_PKGDATADIR=$abs_top_srcdir/data export BISON_PKGDATADIR -$PREBISON "$abs_top_builddir/src/bison" ${1+"$@"} + +trap 'rm -f /tmp/bison.$$.*; exit $status' 0 1 2 13 15 +$PREBISON "$abs_top_builddir/src/bison" ${1+"$@"} 2>/tmp/bison.$$.err status=$? +# Protect from gettextized quotes. See quotearg.c's gettext_quote for +# the UTF-8 sequences. For context, see +# http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html +# +# In UTF-8 the quoting quote are not ', so bison use them to quote the +# ' character. When using ASCII quotes, bison issues "'". +$PERL -p \ + -e "s{\\xe2\\x80\\x98|\\xe2\\x80\\x99|\\xa1\\ae|\\xa1\\xaf}{'}g;" \ + -e "s{'''}{\"'\"}g;" \ + /tmp/bison.$$.err >&2 # As a special dark magic, if we are actually using this wrapper to # compile Bison's src/parse-gram.y, post-process the synclines to # avoid dependencies on the user's set up (srcdir vs. builddir). -PERL=perl - for i do case $i in @@ -40,8 +52,8 @@ do # post-processes the synclines on y.tab.c itself. Don't let it # do it. Besides, it leaves "parse-gram.y" as the source, # dropping the src/ part. - perl -pi -e 's{"y\.tab\.}{"src/parse-gram.}g;' \ - -e 's{".*/(parse-gram\.y)"}{"src/$1"}g;' \ + $PERL -pi -e 's{"y\.tab\.}{"src/parse-gram.}g;' \ + -e 's{".*/(parse-gram\.y)"}{"src/$1"}g;' \ y.tab.[ch] fi ;; -- cgit v1.2.1