mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
bistromathic: beware of portability issues with readline
In some cases readline emits a trailing spaces after the last suggestion, which results in errors such as: ``` -( - atan cos exp ln number sin sqrt$ +( - atan cos exp ln number sin sqrt $ ``` Reported by Christopher Nielsen <mascguy@github.com>. <https://trac.macports.org/ticket/59927#comment:48> <https://trac.macports.org/attachment/ticket/59927/bison-3.7.6-test-10.13.test-suite.log> * examples/test (run): Add support for -t. * examples/c/bistromathic/bistromathic.test: Use it.
This commit is contained in:
@@ -91,18 +91,21 @@ skip ()
|
||||
}
|
||||
|
||||
|
||||
# run [-noerr, -n] EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
|
||||
# ----------------------------------------------------------------------
|
||||
# run [-n, -noerr, -t] EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
|
||||
# --------------------------------------------------------------------------
|
||||
# -n: no final end-of-line in expected-output
|
||||
# -noerr: ignore stderr, otherwise merge it into effective output.
|
||||
# -n: not final end-of-line in expected-output
|
||||
# -t: nuke the possible trailing white spaces in the effective output.
|
||||
run ()
|
||||
{
|
||||
noerr=false
|
||||
echo=echo
|
||||
noerr=false
|
||||
rstrip=false
|
||||
while true; do
|
||||
case $1 in
|
||||
(-noerr) noerr=true; shift;;
|
||||
(-n) echo=printf; shift;;
|
||||
(-noerr) noerr=true; shift;;
|
||||
(-t) rstrip=true; shift;;
|
||||
(*) break;;
|
||||
esac
|
||||
done
|
||||
@@ -129,7 +132,11 @@ run ()
|
||||
|
||||
# Combine effective output and error streams.
|
||||
{
|
||||
cat out_eff
|
||||
if $rstrip; then
|
||||
sed -e 's/ *$//g' out_eff
|
||||
else
|
||||
cat out_eff
|
||||
fi
|
||||
if ! $noerr; then
|
||||
sed -e 's/^/err: /g' \
|
||||
-e 's/Reducing stack by rule .* (line .*):/Reducing stack by rule XX (line XXX):/g' \
|
||||
|
||||
Reference in New Issue
Block a user