update-copyright: accept new option: UPDATE_COPYRIGHT_USE_INTERVALS=2
authorJim Meyering <meyering@redhat.com>
Fri, 27 Jan 2012 09:19:26 +0000 (10:19 +0100)
committerJim Meyering <meyering@redhat.com>
Fri, 27 Jan 2012 09:29:13 +0000 (10:29 +0100)
* build-aux/update-copyright: When UPDATE_COPYRIGHT_USE_INTERVALS=2,
convert a sequence with gaps to the minimal containing range.
For example, convert 2000, 2004-2007, 2009 to 2000-2009.
* tests/test-update-copyright.sh: Test for this.
The FSF confirmed it is ok to do this, assuming there is at
least one significant change per year in the affected range:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29554/focus=29860

ChangeLog
build-aux/update-copyright
tests/test-update-copyright.sh

index d8efdbe..329cc3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2012-01-27  Jim Meyering  <meyering@redhat.com>
+
+       update-copyright: accept new option: UPDATE_COPYRIGHT_USE_INTERVALS=2
+       * build-aux/update-copyright: When UPDATE_COPYRIGHT_USE_INTERVALS=2,
+       convert a sequence with gaps to the minimal containing range.
+       For example, convert 2000, 2004-2007, 2009 to 2000-2009.
+       * tests/test-update-copyright.sh: Test for this.
+       The FSF confirmed it is ok to do this, assuming there is at
+       least one significant change per year in the affected range:
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29554/focus=29860
+
 2012-01-26  Bruno Haible  <bruno@clisp.org>
 
        pipe2: refine doc about thread-safety
index d86a12b..30a27f2 100755 (executable)
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}'
     if 0;
 # Update an FSF copyright year list to include the current year.
 
-my $VERSION = '2011-01-02.20:59'; # UTC
+my $VERSION = '2012-01-27.09:18'; # UTC
 
 # Copyright (C) 2009-2012 Free Software Foundation, Inc.
 #
@@ -110,6 +110,9 @@ my $VERSION = '2011-01-02.20:59'; # UTC
 #      interval (such as 1990-2008).  If unset or set to 0, all existing
 #      copyright year intervals in a reformatted FSF copyright statement
 #      are expanded instead.
+#      If UPDATE_COPYRIGHT_USE_INTERVALS=2, convert a sequence with gaps
+#      to the minimal containing range.  For example, convert
+#      2000, 2004-2007, 2009 to 2000-2009.
 #   3. For testing purposes, you can set the assumed current year in
 #      UPDATE_COPYRIGHT_YEAR.
 #   4. The default maximum line length for a copyright line is 72.
@@ -221,6 +224,10 @@ if (defined $stmt_re)
                   }))
                 )+
               /$1-$3/gx;
+
+            # When it's 2, emit a single range encompassing all year numbers.
+            $ENV{UPDATE_COPYRIGHT_USE_INTERVALS} == 2
+              and $stmt =~ s/\b(\d{4})\b.*\b(\d{4})\b/$1-$2/;
           }
 
         # Format within margin.
index 379c6a2..80b8c5a 100755 (executable)
@@ -424,6 +424,13 @@ compare - $TMP <<EOF || exit 1
                # Copyright (C) 1987-1988, 1991-2011 Free Software
                # Foundation, Inc.
 EOF
+UPDATE_COPYRIGHT_YEAR=2011 UPDATE_COPYRIGHT_USE_INTERVALS=2 \
+  UPDATE_COPYRIGHT_FORCE=1 update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr
+compare /dev/null $TMP-stdout || exit 1
+compare /dev/null $TMP-stderr || exit 1
+compare - $TMP <<EOF || exit 1
+               # Copyright (C) 1987-2011 Free Software Foundation, Inc.
+EOF
 rm $TMP*
 
 ## --------- ##