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 коммит произвёл Junio C Hamano
Родитель f30c1d5eb1
Коммит db8c7a1cc0
23 изменённых файлов: 38 добавлений и 38 удалений

Просмотреть файл

@ -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/^/>/

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -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
>)

Просмотреть файл

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

Просмотреть файл

@ -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)

Просмотреть файл

@ -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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -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
>)

Просмотреть файл

@ -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
>) &&
(

Просмотреть файл

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

Просмотреть файл

@ -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
>)

Просмотреть файл

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

Просмотреть файл

@ -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
>)

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -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
>)

Просмотреть файл

@ -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