Ximin Luo:
> Control: tags -1 + patch
> Control: reassign -1 libstring-copyright-perl
> Control: affects -1 + licensecheck
>
> Looks like I can do this by editing /usr/share/perl5/String/Copyright.pm as
> follows:
>
> # stringify objects
> $copyright = "$copyright";
> + $copyright =~ s/(,|\band)\s*\n(?:#|\/\/|\/\*)?\s*/$1 /g;
>
> Please test and apply if it's good!
>
This breaks some of my test cases; attached is an updated patch. It gives good
results for Sage:
$ licensecheck -l200 --copyright src/sage/plot/arrow.py
src/sage/combinat/words/paths.py src/sage/sets/finite_set_maps.py
src/sage/modular/modform/all.py
src/sage/plot/arrow.py: GPL
[Copyright: 2006 Alex Clemesha <[email protected]>, William Stein
<[email protected]>, 2008 Mike Hansen <[email protected]>, 2009 Emily Kirkman]
src/sage/combinat/words/paths.py: GPL (v2 or later)
[Copyright: 2009 Sebastien Labbe <[email protected]>, / 2008 Arnaud bergeron
<[email protected]>,]
src/sage/sets/finite_set_maps.py: GPL
[Copyright: 2010 Florent Hivert <[email protected]>,]
src/sage/modular/modform/all.py: GPL
[Copyright: 2004-2006 William Stein <[email protected]>]
It's a little complicated - it uses replacement expressions. If you can think
of a better way of doing it, please let me know!
X
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git
--- /usr/share/perl5/String/Copyright.pm.old 2016-11-30 20:08:44.000000000 +0100
+++ /usr/share/perl5/String/Copyright.pm 2017-07-05 20:05:18.696872938 +0200
@@ -104,7 +104,7 @@
my $comma_re
= qr/$blank_re*,$blank_or_break_re|$blank_or_break_re,?$blank_re*/;
my $dash_re
- = qr/$blank_re*[-Ëââââââââï¹£ï¼]$blank_or_break_re*/;
+ = qr/$blank_re*[-Ëââââââââï¹£ï¼]+$blank_or_break_re*/;
my $owner_intro_re = qr/\bby$blank_or_break_re/;
my $owner_prefix_re = qr/[(*<@[{]/;
my $owner_initial_re = qr/[^\s!\"#$%&'()*+,.\/:;<=>?@[\\\]^_`{|}~]/;
@@ -135,6 +135,8 @@
my $years_re = qr/$yearspan_re(?:$comma_re$yearspan_re)*/;
my $owners_re = qr/$owner_prefix_re*$owner_initial_re\S*(?:$blank_re*\S+)*/;
+my $line_preamble_re
+ = qr/(?:#|\/\/|\/\*)?\s*/;
my $signs_and_more_re
= qr/(?:$chatter_re.*|$signs_re(?::$blank_or_break_re|$comma_re)$broken_sign_re?($years_re?$comma_re?$owner_intro_re?$owners_re?)|(?:\n|\z))/;
@@ -155,6 +157,12 @@
# stringify objects
$copyright = "$copyright";
+ # concatenate multi-line notices together
+ my $old_copyright;
+ do {
+ $old_copyright = $copyright;
+ $copyright =~ s/((?:^|\n)$line_preamble_re)($signs_and_more_re(?:,|\band))\n($line_preamble_re)/(length $4 > length $1)?"$1$2 ":"$1$2\n$4"/eg;
+ } while ($copyright ne $old_copyright);
# TODO: also parse @_ - but each separately!
my @block;