On Fri, Dec 21, 2007 at 06:12:02PM +0000, Andy Whitcroft wrote: > On Tue, Dec 18, 2007 at 06:46:41AM +0100, Borislav Petkov wrote: > > On Mon, Dec 17, 2007 at 08:11:05AM +0100, Borislav Petkov wrote: > > > > A slightly microoptimized version 1.1: > > > > --- > > From: Borislav Petkov <[EMAIL PROTECTED]> > > > > > > Check the patch level of the single hunks in a patch file, however only when > > checkpatch.pl is called from within the kernel tree. > > > > Signed-off-by: Borislav Petkov <[EMAIL PROTECTED]> > > -- > > > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > > index 579f50f..3eda27b 100755 > > --- a/scripts/checkpatch.pl > > +++ b/scripts/checkpatch.pl > > @@ -653,6 +653,18 @@ sub CHK { > > } > > } > > > > +sub check_patchlevel { > > + > > + if ($tree) { > > + my ($path) = @_; > > + $path =~ s![^/]*/!!; > > + > > + if (!stat($path)) { > > + WARN("Check the patchlevel (hint: patch option -p)"); > > + } > > + } > > Hmmm that will trigger on all patches which create new files if I am > grokking you correctly. > > I would have thought this would pretty easy to check from the form of > the names. Hmmm.
Yep, I thought that too. Still, this way of checking the patch level using the relative file pathname in the kernel tree seemed pretty straightforward so i sent it. Off the top of my head, we could check for "/dev/null" on the "---" line and skip that hunk... like so: --- From: Borislav Petkov <[EMAIL PROTECTED]> Check the patch level of the diff hunks in a patch text file. It works only when checkpatch.pl is called from within the kernel tree. The only case it misses is when the patch creates a new file and the patchlevel is wrong. However, this cannot be checked for reliably using this approach of stat()ing the relative url of the patched file. scripts/checkpatch.pl | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 579f50f..0fe80fb 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -653,6 +653,22 @@ sub CHK { } } +sub check_patchlevel { + + if ($tree) { + my ($path, $prev) = @_; + +# don't do any checking if it's a newly created file + return if $prev =~ m!/dev/null!; + + $path =~ s![^/]*/!!; + + if (!stat($path)) { + WARN("Check the patchlevel (hint: patch option -p)"); + } + } +} + sub process { my $filename = shift; my @lines = @_; @@ -713,10 +729,16 @@ sub process { #extract the filename as it passes if ($line=~/^\+\+\+\s+(\S+)/) { $realfile=$1; + + if ($realfile) { + check_patchlevel($realfile, $lines[$linenr-2]); + } + $realfile =~ [EMAIL PROTECTED]/]*/@@; $in_comment = 0; next; } + #extract the line range in the file after the patch is applied if ($line=~/[EMAIL PROTECTED]@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? [EMAIL PROTECTED]@/) { $is_patch = 1; -- Regards/Gruß, Boris. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/