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 <cleme...@gmail.com>, William Stein <wst...@gmail.com>, 2008 Mike Hansen <mhan...@gmail.com>, 2009 Emily Kirkman] src/sage/combinat/words/paths.py: GPL (v2 or later) [Copyright: 2009 Sebastien Labbe <sla...@gmail.com>, / 2008 Arnaud bergeron <aberge...@gmail.coms>,] src/sage/sets/finite_set_maps.py: GPL [Copyright: 2010 Florent Hivert <florent.hiv...@univ-rouen.fr>,] src/sage/modular/modform/all.py: GPL [Copyright: 2004-2006 William Stein <wst...@gmail.com>] 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;