changeset 16317:c38ba07a30d1

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
author Jim Meyering <meyering@redhat.com>
date Fri, 27 Jan 2012 10:19:26 +0100
parents e0f8ddc05b50
children 39ff0ed6c426
files ChangeLog build-aux/update-copyright tests/test-update-copyright.sh
diffstat 3 files changed, 26 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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
--- a/build-aux/update-copyright
+++ b/build-aux/update-copyright
@@ -3,7 +3,7 @@
     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 @@
 #      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 @@
                   }))
                 )+
               /$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.
--- a/tests/test-update-copyright.sh
+++ b/tests/test-update-copyright.sh
@@ -424,6 +424,13 @@
 		# 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*
 
 ## --------- ##