chainlint.sed: improve ?!AMP?! placement accuracy

When chainlint.sed detects a broken &&-chain, it places an ?!AMP?!
annotation at the beginning of the line. However, this is an unusual
location for programmers accustomed to error messages (from compilers,
for instance) indicating the exact point of the problem. Therefore,
relocate the ?!AMP?! annotation to the end of the line in order to
better direct the programmer's attention to the source of the problem.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Eric Sunshine 2021-12-13 01:30:50 -05:00 committed by Junio C Hamano
parent f30c1d5eb1
commit db8c7a1cc0
23 changed files with 38 additions and 38 deletions

View file

@ -236,7 +236,7 @@ s/.*\n//
# line ends with pipe "...|" -- valid; not missing "&&"
/|[ ]*$/bcont
# missing end-of-line "&&" -- mark suspect
/&&[ ]*$/!s/^/?!AMP?!/
/&&[ ]*$/!s/$/ ?!AMP?!/
:cont
# retrieve and print previous line
x
@ -303,7 +303,7 @@ bcase
# that line legitimately lacks "&&"
:else
x
s/?!AMP?!//
s/ ?!AMP?!$//
x
bcont
@ -311,7 +311,7 @@ bcont
# "suspect" from final contained line since that line legitimately lacks "&&"
:done
x
s/?!AMP?!//
s/ ?!AMP?!$//
x
# is 'done' or 'fi' cuddled with ")" to close subshell?
/done.*)/bclose
@ -354,7 +354,7 @@ bblock
# since that line legitimately lacks "&&" and exit subshell loop
:clssolo
x
s/?!AMP?!//
s/ ?!AMP?!$//
p
x
s/^/>/

View file

@ -4,6 +4,6 @@
baz
>) &&
(
?!AMP?! bar=$((42 + 1))
bar=$((42 + 1)) ?!AMP?!
baz
>)

View file

@ -7,6 +7,6 @@
bar &&
{
echo c
?!AMP?! }
} ?!AMP?!
baz
>)

View file

@ -1,6 +1,6 @@
(
foo &&
?!AMP?! bar
bar ?!AMP?!
baz &&
wop
>)

View file

@ -9,11 +9,11 @@
case "$x" in
x) foo ;;
*) bar ;;
?!AMP?! esac
esac ?!AMP?!
foobar
>) &&
(
case "$x" in 1) true;; esac &&
?!AMP?! case "$y" in 2) false;; esac
case "$y" in 2) false;; esac ?!AMP?!
foobar
>)

View file

@ -4,6 +4,6 @@
baz
>) &&
(
?!AMP?! bar=$(gobble blocks)
bar=$(gobble blocks) ?!AMP?!
baz
>)

View file

@ -4,7 +4,7 @@ cd foo &&
>) &&
(
?!AMP?!cd foo
cd foo ?!AMP?!
bar
>) &&
@ -17,5 +17,5 @@ cd foo &&
> bar) &&
(
?!AMP?!cd foo
cd foo ?!AMP?!
> bar)

View file

@ -1,9 +1,9 @@
(
for i in a b c
do
?!AMP?! echo $i
echo $i ?!AMP?!
cat
?!AMP?! done
done ?!AMP?!
for i in a b c; do
echo $i &&
cat $i

View file

@ -1,5 +1,5 @@
(
x=$(bobble &&
?!AMP?!>> wiffle)
>> wiffle) ?!AMP?!
echo $x
>)

View file

@ -1,4 +1,4 @@
(
?!AMP?! cat && echo "multi-line string"
cat && echo "multi-line string" ?!AMP?!
bap
>)

View file

@ -3,10 +3,10 @@
do
if false
then
?!AMP?! echo "err"
echo "err" ?!AMP?!
exit 1
?!AMP?! fi
fi ?!AMP?!
foo
?!AMP?! done
done ?!AMP?!
bar
>)

View file

@ -1,7 +1,7 @@
(
if test -n ""
then
?!AMP?! echo very
echo very ?!AMP?!
echo empty
elif test -z ""
then
@ -9,7 +9,7 @@
else
echo foo &&
cat
?!AMP?! fi
fi ?!AMP?!
echo poodle
>) &&
(

View file

@ -1,6 +1,6 @@
(
foobar &&
?!AMP?! barfoo
barfoo ?!AMP?!
flibble "not a # comment"
>) &&

View file

@ -3,10 +3,10 @@
then
while true
do
?!AMP?! echo "pop"
echo "pop" ?!AMP?!
echo "glup"
?!AMP?! done
done ?!AMP?!
foo
?!AMP?! fi
fi ?!AMP?!
bar
>)

View file

@ -1,6 +1,6 @@
(
x="line 1 line 2 line 3" &&
?!AMP?! y="line 1 line2"
y="line 1 line2" ?!AMP?!
foobar
>) &&
(

View file

@ -4,16 +4,16 @@
>> ) &&
(cd foo &&
bar
?!AMP?!>> )
>> ) ?!AMP?!
(
cd foo &&
>> bar) &&
(
cd foo &&
?!AMP?!>> bar)
>> bar) ?!AMP?!
(cd foo &&
>> bar) &&
(cd foo &&
?!AMP?!>> bar)
>> bar) ?!AMP?!
foobar
>)

View file

@ -2,6 +2,6 @@ cat >foop &&
(
cat &&
?!AMP?! cat
cat ?!AMP?!
foobar
>)

View file

@ -6,6 +6,6 @@
# minor numbers of cows (or do they?)
baz &&
snaff
?!AMP?!>> )
>> ) ?!AMP?!
fuzzy
>)

View file

@ -3,6 +3,6 @@
bar |
baz &&
fish |
?!AMP?! cow
cow ?!AMP?!
sunder
>)

View file

@ -1,5 +1,5 @@
(
?!AMP?!?!SEMI?! cat foo ; echo bar
?!SEMI?! cat foo ; echo bar ?!AMP?!
?!SEMI?! cat foo ; echo bar
>) &&
(

View file

@ -1,6 +1,6 @@
(
echo wobba gorgo snoot wafta snurb &&
?!AMP?! cat >bip
cat >bip ?!AMP?!
echo >bop
>) &&
(

View file

@ -8,7 +8,7 @@
(foo || exit 1) &&
(foo || exit 1) |
(foo || exit 1) >baz &&
?!AMP?! (foo && bar)
?!AMP?!?!SEMI?! (foo && bar; baz)
(foo && bar) ?!AMP?!
?!SEMI?! (foo && bar; baz) ?!AMP?!
foobar
>)

View file

@ -1,9 +1,9 @@
(
while true
do
?!AMP?! echo foo
echo foo ?!AMP?!
cat
?!AMP?! done
done ?!AMP?!
while true; do
echo foo &&
cat bar