OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-re Date: 05-Apr-2003 22:02:29
Branch: HEAD Handle: 2003040521022900
Modified files:
openpkg-re speclint.pl
Log:
bugfix line tracking and add one more check
Summary:
Revision Changes Path
1.8 +24 -3 openpkg-re/speclint.pl
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-re/speclint.pl
============================================================================
$ cvs diff -u -r1.7 -r1.8 speclint.pl
--- openpkg-re/speclint.pl 5 Apr 2003 19:24:49 -0000 1.7
+++ openpkg-re/speclint.pl 5 Apr 2003 20:02:29 -0000 1.8
@@ -188,6 +188,7 @@
while ($todo =~ m/\r\n/s) {
$done .= $`; $this = $&; $todo = $';
&lint_warning($file, $done, $this, "carriage-return (CR, 0x0d) line-feed
(NL, 0x0a) combination (expected just line-feed)");
+ $done .= $this;
}
# check for multiple blank lines
@@ -195,6 +196,7 @@
while ($todo =~ m/(\r?\n[ \t]*){3,}/s) {
$done .= $`; $this = $&; $todo = $';
&lint_warning($file, $done, $this, "multiple subsequent blank lines
(expected single blank line)");
+ $done .= $this;
}
# check for trailing whitespaces
@@ -207,6 +209,7 @@
else {
&lint_warning($file, $done, $this, "trailing whitespace (expected
none)");
}
+ $done .= $this;
}
# check for bogus line continuations
@@ -214,6 +217,7 @@
while ($todo =~ m/\\[ \t]*\r?\n(?=[ \t]*\r?\n)/s) {
$done .= $`; $this = $&; $todo = $';
&lint_warning($file, $done, $this, "bogus line continuation for following
empty line");
+ $done .= $this;
}
# check for leading whitespaces befor line continuations
@@ -221,6 +225,7 @@
while ($todo =~ m/[ \t]{2,}\\[ \t]*\r?\n/s) {
$done .= $`; $this = $&; $todo = $';
&lint_warning($file, $done, $this, "multiple leading whitespace before line
continuation");
+ $done .= $this;
}
}
@@ -253,6 +258,7 @@
if (length($pad) > 0 && length($text) == 0) {
&lint_warning($file, $done, $this, "empty comment text (expected a
reasonable text)");
}
+ $done .= $this;
}
}
@@ -357,6 +363,7 @@
}
}
push(@seen, $header);
+ $done .= $this;
}
# check for existence of mandatory headers
@@ -431,6 +438,7 @@
my $section = $1;
next if ($section =~ m/^%(if|else|endif)/);
$sections .= "$section,";
+ $done .= $this;
}
my $regex = $require;
$regex =~ s|\s+||sg;
@@ -494,6 +502,7 @@
"directive \"$cmd\" (expected exactly 2 arguments)");
}
}
+ $done .= $this;
}
# check correct if/endif nesting
@@ -512,6 +521,7 @@
}
pop(@stack);
}
+ $done .= $this;
}
my $line;
while (defined($line = pop(@stack))) {
@@ -529,11 +539,11 @@
my ($file, $spec) = @_;
my $done = ''; my $this = ''; my $todo = $spec;
- while ($todo =~
m/\n(%(?:description|prep|build|install|files|clean|pre|post|preun|postun))([^\n]*)\n(.*?\n)(?=%(?:description|prep|build|install|files|clean|pre|post|preun|postun)|$)/s)
{
+ while ($todo =~
m/(?<=\n)(%(?:description|prep|build|install|files|clean|pre|post|preun|postun))([^\n]*)\n(.*?\n)(?=%(?:description|prep|build|install|files|clean|pre|post|preun|postun)|$)/s)
{
$done .= $`; $this = $&; $todo = $';
my ($section, $args, $script) = ($1, $2, $3);
- &check_script_common($file, $section, $args, $script);
+ &check_script_common($file, $done, $this, $section, $args, $script);
if ($section eq 'description') {
}
@@ -553,10 +563,21 @@
}
elsif ($section eq 'postun') {
}
+ $done .= $this;
}
}
sub check_script_common {
- my ($file, $section, $args, $script) = @_;
+ my ($file, $outer_done, $outer_this, $section, $args, $script) = @_;
+
+ # shell style: redirections
+ if ($section !~ m/^(description|files)$/) {
+ my $done = $outer_done; my $this = ''; my $todo = $outer_this;
+ while ($todo =~ m/[ \t]+[><][ \t]+\S+/s) {
+ $done .= $`; $this = $&; $todo = $';
+ &lint_warning($file, $done, $this, "whitespace after shell redirection
(expected none)");
+ $done .= $this;
+ }
+ }
}
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]