X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/642f240e229cb561b401ca8b897621c4c4b37fdc..f038e56cdc211396f54f138e95693d0906d6fafa:/build-aux/update-b4-copyright diff --git a/build-aux/update-b4-copyright b/build-aux/update-b4-copyright index af43407d..5ba7dd66 100755 --- a/build-aux/update-b4-copyright +++ b/build-aux/update-b4-copyright @@ -3,8 +3,8 @@ # Update b4_copyright invocations or b4_copyright_years definitions to # include the current year. -# Copyright (C) 2009 Free Software Foundation, Inc. -# +# Copyright (C) 2009-2013 Free Software Foundation, Inc. + # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) @@ -42,7 +42,7 @@ my $old_re = <<'EOF' (?: ,\s* ( - \[\s* (?:\d{4}(,\s*|-))* (\d{4}) \s*] + \[\s* (?:\d{4}(?:,\s*|-))* (\d{4}) \s*] ) )? \) @@ -54,8 +54,7 @@ while (/($old_re)/gx) my $start = pos() - length ($1); my $b4_copyright_line = $2; my $year_lines = $3; - my $sep = $4 ? $4 : ""; - my $final_year = $5; + my $final_year = $4; $year_lines .= ')'; # If there was a second argument, it contains years, so update them. @@ -65,18 +64,7 @@ while (/($old_re)/gx) if ($final_year != $this_year) { # Update the year. - if ($sep eq '-' && $final_year + 1 == $this_year) - { - $year_lines =~ s/$final_year/$this_year/; - } - elsif ($sep ne '-' && $final_year + 1 == $this_year) - { - $year_lines =~ s/$final_year/$final_year-$this_year/; - } - else - { - $year_lines =~ s/$final_year/$final_year, $this_year/; - } + $year_lines =~ s/$final_year/$final_year, $this_year/; } # Normalize all whitespace. @@ -85,6 +73,20 @@ while (/($old_re)/gx) # Put spaces after commas. $year_lines =~ s/, ?/, /g; + # Compress to intervals. + $year_lines =~ + s/ + (\d{4}) + (?: + (,\ |-) + ((??{ + if ($2 eq '-') { '\d{4}'; } + elsif (!$3) { $1 + 1; } + else { $3 + 1; } + })) + )+ + /$1-$3/gx; + # Format within margin. my $year_lines_new; my $indent = index ($b4_copyright_line, '[');