chainlint.sed: improve ?!SEMI?! placement accuracy
When chainlint.sed detects commands separated by a semicolon rather than by `&&`, it places a ?!SEMI?! 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 ?!SEMI?! annotation to the location of the semicolon 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:
parent
db8c7a1cc0
commit
fbd992b61b
@ -126,7 +126,7 @@ b
|
||||
# "&&" (but not ";" in a string)
|
||||
:oneline
|
||||
/;/{
|
||||
/"[^"]*;[^"]*"/!s/^/?!SEMI?!/
|
||||
/"[^"]*;[^"]*"/!s/;/; ?!SEMI?!/
|
||||
}
|
||||
b
|
||||
|
||||
@ -230,7 +230,7 @@ s/.*\n//
|
||||
# string and not ";;" in one-liner "case...esac")
|
||||
/;/{
|
||||
/;;/!{
|
||||
/"[^"]*;[^"]*"/!s/^/?!SEMI?!/
|
||||
/"[^"]*;[^"]*"/!s/;/; ?!SEMI?!/
|
||||
}
|
||||
}
|
||||
# line ends with pipe "...|" -- valid; not missing "&&"
|
||||
|
@ -1,5 +1,5 @@
|
||||
! (foo && bar) &&
|
||||
! (foo && bar) >baz &&
|
||||
|
||||
?!SEMI?!! (foo; bar) &&
|
||||
?!SEMI?!! (foo; bar) >baz
|
||||
! (foo; ?!SEMI?! bar) &&
|
||||
! (foo; ?!SEMI?! bar) >baz
|
||||
|
@ -2,8 +2,8 @@
|
||||
(foo && bar) |
|
||||
(foo && bar) >baz &&
|
||||
|
||||
?!SEMI?!(foo; bar) &&
|
||||
?!SEMI?!(foo; bar) |
|
||||
?!SEMI?!(foo; bar) >baz &&
|
||||
(foo; ?!SEMI?! bar) &&
|
||||
(foo; ?!SEMI?! bar) |
|
||||
(foo; ?!SEMI?! bar) >baz &&
|
||||
|
||||
(foo "bar; baz")
|
||||
|
@ -1,20 +1,20 @@
|
||||
(
|
||||
?!SEMI?! cat foo ; echo bar ?!AMP?!
|
||||
?!SEMI?! cat foo ; echo bar
|
||||
cat foo ; ?!SEMI?! echo bar ?!AMP?!
|
||||
cat foo ; ?!SEMI?! echo bar
|
||||
>) &&
|
||||
(
|
||||
?!SEMI?! cat foo ; echo bar &&
|
||||
?!SEMI?! cat foo ; echo bar
|
||||
cat foo ; ?!SEMI?! echo bar &&
|
||||
cat foo ; ?!SEMI?! echo bar
|
||||
>) &&
|
||||
(
|
||||
echo "foo; bar" &&
|
||||
?!SEMI?! cat foo; echo bar
|
||||
cat foo; ?!SEMI?! echo bar
|
||||
>) &&
|
||||
(
|
||||
?!SEMI?! foo;
|
||||
foo; ?!SEMI?!
|
||||
>) &&
|
||||
(
|
||||
cd foo &&
|
||||
for i in a b c; do
|
||||
?!SEMI?! echo;
|
||||
echo; ?!SEMI?!
|
||||
> done)
|
||||
|
@ -2,13 +2,13 @@
|
||||
(foo && bar) &&
|
||||
(foo && bar) |
|
||||
(foo && bar) >baz &&
|
||||
?!SEMI?! (foo; bar) &&
|
||||
?!SEMI?! (foo; bar) |
|
||||
?!SEMI?! (foo; bar) >baz &&
|
||||
(foo; ?!SEMI?! bar) &&
|
||||
(foo; ?!SEMI?! bar) |
|
||||
(foo; ?!SEMI?! bar) >baz &&
|
||||
(foo || exit 1) &&
|
||||
(foo || exit 1) |
|
||||
(foo || exit 1) >baz &&
|
||||
(foo && bar) ?!AMP?!
|
||||
?!SEMI?! (foo && bar; baz) ?!AMP?!
|
||||
(foo && bar; ?!SEMI?! baz) ?!AMP?!
|
||||
foobar
|
||||
>)
|
||||
|
Loading…
Reference in New Issue
Block a user