On Thu, Sep 05, 2019 at 08:57:43AM -0500, Eric Blake wrote: > On 9/5/19 5:21 AM, Daniel P. Berrangé wrote: > > The pattern > > > > ^[^#].*\;$$ > > > > Was attempting to detect any trailing ';' in python code > > which was not in a comment. This does not allow for the > > comment '#' character to be indented with whitespace. > > > > Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> > > --- > > cfg.mk | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/cfg.mk b/cfg.mk > > index 1f29729949..d10dfa16a1 100644 > > --- a/cfg.mk > > +++ b/cfg.mk > > @@ -815,7 +815,7 @@ sc_require_enum_last_marker: > > > > # In Python files we don't want to end lines with a semicolon like in C > > sc_prohibit_semicolon_at_eol_in_python: > > - @prohibit='^[^#].*\;$$' \ > > + @prohibit='^[^#]*\;$$' \ > > But this new pattern does not prohibit: > > ch = '#'; > > I think you want: > > '^[ \t]*[^#].*\;$$' > > to flag all lines that have any amount of leading whitespace, where the > first non-whitespace is not #, and which end in ;. Unfortunately this doesn't work when face with a line # foo(); The '[ \t]*' matches 0 times. '[^#]' matches on the first leading whitespace character. '.*' then matches ' # foo()'. So we get a bogus warning. This does make me realize how to fix it though - we need to force the '[ \t]*' to always be matched against leading space with: '^[ \t]*[^# \t].*\;$$' This will still give a bogus warning though if the comment is following after a valid statement eg some call # foo(); Luckily we don't have any examples of this pattern, so I could leave it to some other sucker to fix when they need that. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list