scripts/spdxcheck.py: fix C++ comment style detection
authorAurélien Cedeyn <aurelien.cedeyn@gmail.com>
Wed, 20 Feb 2019 21:18:34 +0000 (22:18 +0100)
committerJonathan Corbet <corbet@lwn.net>
Fri, 22 Feb 2019 15:47:05 +0000 (08:47 -0700)
With the last commit to support the SuperH boot code files, we have the
following regression:

$ ./scripts/checkpatch.pl -f <(echo '/* SPDX-License-Identifier: MIT */')
WARNING: 'SPDX-License-Identifier: MIT */' is not supported in LICENSES/..
+/* SPDX-License-Identifier: MIT */

total: 0 errors, 1 warnings, 1 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/dev/fd/63 has style problems, please review.

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.

This is not obvious, but spdxcheck.py is launched in checkpatch.pl with :
    ...
    } elsif ($rawline =~ /(SPDX-License-Identifier: .*)/) {
        my $spdx_license = $1;
        if (!is_SPDX_License_valid($spdx_license)) {
            WARN("SPDX_LICENSE_TAG",
                 "'$spdx_license' is not supported in LICENSES/...\n" . \
                 $herecurr);
        }
    ...
    sub is_SPDX_License_valid {
        my ($license) = @_;
        ...
        my $status = `cd "$root_path"; echo "$license" |
                      python scripts/spdxcheck.py -`;
        ...
    }

The first chars before 'SPDX-License-Identifier:' are ignored.
This commit fixes this regression.

Fixes:959b49687838 (scripts/spdxcheck.py: Handle special quotation mark comments)
Signed-off-by:Aurélien Cedeyn <aurelien.cedeyn@gmail.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
scripts/spdxcheck.py

index 3fb020c..4fe392e 100755 (executable)
@@ -177,7 +177,7 @@ class id_parser(object):
                     continue
                 expr = line.split(':')[1].strip()
                 # Remove trailing comment closure
-                if line.startswith('/*'):
+                if line.strip().endswith('*/'):
                     expr = expr.rstrip('*/').strip()
                 # Special case for SH magic boot code files
                 if line.startswith('LIST \"'):