Mercurial > hg > octave-nkf > gnulib-hg
changeset 11774:107b7c10b72b
update-copyright: fix bug for 2-digit last year and add tests
* build-aux/update-copyright: Fix bug.
Use UPDATE_COPYRIGHT_YEAR from environment as current year if
specified.
* modules/update-copyright-tests: New
* tests/test-update-copyright.sh: New.
author | Joel E. Denny <jdenny@clemson.edu> |
---|---|
date | Mon, 03 Aug 2009 20:05:50 -0400 |
parents | 803d728925f9 |
children | 43cf918c545e |
files | ChangeLog build-aux/update-copyright modules/update-copyright-tests tests/test-update-copyright.sh |
diffstat | 4 files changed, 342 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-08-03 Joel E. Denny <jdenny@clemson.edu> + + update-copyright: fix bug for 2-digit last year and add tests + * build-aux/update-copyright: Fix bug. + Use UPDATE_COPYRIGHT_YEAR from environment as current year if + specified. + * modules/update-copyright-tests: New + * tests/test-update-copyright.sh: New. + 2009-07-31 Joel E. Denny <jdenny@clemson.edu> update-copyright: handle leading tabs in line prefix
--- a/build-aux/update-copyright +++ b/build-aux/update-copyright @@ -1,7 +1,7 @@ #!/usr/bin/perl -0777 -pi # Update an FSF copyright year list to include the current year. -my $VERSION = '2009-07-31.12:44'; # UTC +my $VERSION = '2009-08-03.23:03'; # UTC # Copyright (C) 2009 Free Software Foundation # @@ -49,7 +49,7 @@ # Copyright (C) 1990-2005, 2007-2009 Free Software Foundation, # Inc. # -# # Copyright (C) 1990-2005, 2007-2009 Free Software +# # Copyright (c) 1990-2005, 2007-2009 Free Software # # Foundation, Inc. # # /* @@ -100,8 +100,11 @@ use strict; use warnings; -my ($sec, $min, $hour, $mday, $month, $year) = localtime (time()); -my $this_year = $year + 1900; +my $this_year = $ENV{UPDATE_COPYRIGHT_YEAR}; +if (!$this_year || $this_year !~ m/^\d\d(\d\d)?$/) { + my ($sec, $min, $hour, $mday, $month, $year) = localtime (time()); + $this_year = $year + 1900; +} my $copyright = 'Copyright \([cC]\)'; my $holder = 'Free Software Foundation, Inc.'; my $prefix_max = 5; @@ -131,9 +134,10 @@ { my $new = $1; my $sep = $2 ? $2 : ""; - my $last_c_year = $3; + my $last_year = $3; # Handle two-digit year numbers like "98" and "99". + my $last_c_year = $last_year; $last_c_year <= 99 and $last_c_year += 1900; @@ -142,15 +146,15 @@ # Update the year. if ($sep eq '-' && $last_c_year + 1 == $this_year) { - $new =~ s/$last_c_year/$this_year/; + $new =~ s/$last_year/$this_year/; } elsif ($sep ne '-' && $last_c_year + 1 == $this_year) { - $new =~ s/$last_c_year/$last_c_year-$this_year/; + $new =~ s/$last_year/$last_c_year-$this_year/; } else { - $new =~ s/$last_c_year/$last_c_year, $this_year/; + $new =~ s/$last_year/$last_c_year, $this_year/; } # Normalize all whitespace including newline-prefix sequences.
new file mode 100644 --- /dev/null +++ b/modules/update-copyright-tests @@ -0,0 +1,12 @@ +Files: +tests/test-update-copyright.sh + +Depends-on: + +configure.ac: +abs_aux_dir=`cd "$ac_aux_dir"; pwd` +AC_SUBST([abs_aux_dir]) + +Makefile.am: +TESTS += test-update-copyright.sh +TESTS_ENVIRONMENT += PATH='$(abs_aux_dir)'$(PATH_SEPARATOR)"$$PATH"
new file mode 100755 --- /dev/null +++ b/tests/test-update-copyright.sh @@ -0,0 +1,309 @@ +#!/bin/sh +# Test suite for update-copyright. +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is part of the GNUlib Library. +# +# 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 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +TMP_BASE=update-copyright.test + +## ----------------------------- ## +## Examples from documentation. ## +## ----------------------------- ## + +TMP=$TMP_BASE-ex +cat > $TMP.1 <<EOF +Copyright (C) 1990-2005, 2007-2009 Free Software Foundation, +Inc. +EOF +cat > $TMP.2 <<EOF +# Copyright (c) 1990-2005, 2007-2009 Free Software +# Foundation, Inc. +EOF +cat > $TMP.3 <<EOF +/* + * Copyright (C) 90,2005,2007-2009 Free Software + * Foundation, Inc. + */ +EOF +cat > $TMP.4 <<EOF +/* Copyright (C) 1990-2005, 2007-2009 Free Software + * Foundation, Inc. */ + +Copyright (C) 1990-2005, 2007-2009 Free Software Foundation, +Inc. +EOF +cat > $TMP.5 <<EOF +Copyright (C) 1990-2005, 2007-2009 Acme, Inc. + +# Copyright (C) 1990-2005, 2007-2009 Free Software +# Foundation, Inc. +EOF + +UPDATE_COPYRIGHT_YEAR=2009 \ + update-copyright $TMP.* 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u - $TMP-stderr <<EOF || exit 1 +$TMP.4: warning: FSF copyright statement not found +$TMP.5: warning: FSF copyright statement not found +EOF +diff -u - $TMP.1 <<EOF || exit 1 +Copyright (C) 1990-2005, 2007-2009 Free Software Foundation, +Inc. +EOF +diff -u - $TMP.2 <<EOF || exit 1 +# Copyright (c) 1990-2005, 2007-2009 Free Software +# Foundation, Inc. +EOF +diff -u - $TMP.3 <<EOF || exit 1 +/* + * Copyright (C) 90,2005,2007-2009 Free Software + * Foundation, Inc. + */ +EOF +diff -u - $TMP.4 <<EOF || exit 1 +/* Copyright (C) 1990-2005, 2007-2009 Free Software + * Foundation, Inc. */ + +Copyright (C) 1990-2005, 2007-2009 Free Software Foundation, +Inc. +EOF +diff -u - $TMP.5 <<EOF || exit 1 +Copyright (C) 1990-2005, 2007-2009 Acme, Inc. + +# Copyright (C) 1990-2005, 2007-2009 Free Software +# Foundation, Inc. +EOF + +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP.* 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u - $TMP-stderr <<EOF || exit 1 +$TMP.4: warning: FSF copyright statement not found +$TMP.5: warning: FSF copyright statement not found +EOF +diff -u - $TMP.1 <<EOF || exit 1 +Copyright (C) 1990-2005, 2007-2010 Free Software Foundation, Inc. +EOF +diff -u - $TMP.2 <<EOF || exit 1 +# Copyright (c) 1990-2005, 2007-2010 Free Software Foundation, Inc. +EOF +diff -u - $TMP.3 <<EOF || exit 1 +/* + * Copyright (C) 90, 2005, 2007-2010 Free Software Foundation, Inc. + */ +EOF +diff -u - $TMP.4 <<EOF || exit 1 +/* Copyright (C) 1990-2005, 2007-2009 Free Software + * Foundation, Inc. */ + +Copyright (C) 1990-2005, 2007-2009 Free Software Foundation, +Inc. +EOF +diff -u - $TMP.5 <<EOF || exit 1 +Copyright (C) 1990-2005, 2007-2009 Acme, Inc. + +# Copyright (C) 1990-2005, 2007-2009 Free Software +# Foundation, Inc. +EOF + +rm $TMP* + +## -------------- ## +## Current year. ## +## -------------- ## + +TMP=$TMP_BASE-current-year +YEAR=`/usr/bin/perl -e 'print [localtime]->[5] + 1900'`; +cat > $TMP <<EOF +'\" Copyright (C) 2006 +'\" Free Software Foundation, +'\" Inc. +EOF +update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u /dev/null $TMP-stderr || exit 1 +diff -u - $TMP <<EOF || exit 1 +'\" Copyright (C) 2006, $YEAR Free Software Foundation, Inc. +EOF +rm $TMP* + +## ------------------ ## +## Surrounding text. ## +## ------------------ ## + +TMP=$TMP_BASE-surrounding-text +cat > $TMP <<EOF + Undisturbed text. +dnl Undisturbed text. +dnl Copyright (C) 89 +dnl Free Software Foundation, Inc. +dnl Undisturbed text. +EOF +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u /dev/null $TMP-stderr || exit 1 +diff -u - $TMP <<EOF || exit 1 + Undisturbed text. +dnl Undisturbed text. +dnl Copyright (C) 1989, 2010 Free Software Foundation, Inc. +dnl Undisturbed text. +EOF +rm $TMP* + +## --------------- ## +## Widest prefix. ## +## --------------- ## + +TMP=$TMP_BASE-widest-prefix +cat > $TMP <<EOF +#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, +#### 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +#### 2008 Free Software Foundation, Inc. +EOF +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u /dev/null $TMP-stderr || exit 1 +diff -u - $TMP <<EOF || exit 1 +#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, +#### 1985, 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, +#### 2006, 2007, 2008, 2010 Free Software Foundation, Inc. +EOF +rm $TMP* + +## ------------------- ## +## Prefix too large. ## +## ------------------- ## + +TMP=$TMP_BASE-prefix-too-large +cat > $TMP <<EOF +#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, +#### 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +#### 2008 Free Software Foundation, Inc. +EOF +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u - $TMP-stderr <<EOF || exit 1 +$TMP: warning: FSF copyright statement not found +EOF +diff -u - $TMP <<EOF || exit 1 +#### Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, +#### 1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +#### 2008 Free Software Foundation, Inc. +EOF +rm $TMP* + +## ------------- ## +## Blank lines. ## +## ------------- ## + +TMP=$TMP_BASE-blank-lines +cat > $TMP <<EOF +#Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, +# +#1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +#2008 Free Software Foundation, Inc. + +Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, + +1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008 Free Software Foundation, Inc. +EOF +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u - $TMP-stderr <<EOF || exit 1 +$TMP: warning: FSF copyright statement not found +EOF +diff -u - $TMP <<EOF || exit 1 +#Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, +# +#1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +#2008 Free Software Foundation, Inc. + +Copyright (C) 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, + +1986, 1987, 1988, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008 Free Software Foundation, Inc. +EOF +rm $TMP* + +## -------------- ## +## Leading tabs. ## +## -------------- ## + +TMP=$TMP_BASE-leading-tabs +cat > $TMP <<EOF + Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 98, + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free + Software Foundation, Inc. +EOF +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u /dev/null $TMP-stderr || exit 1 +diff -u - $TMP <<EOF || exit 1 + Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997, + 98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + 2009-2010 Free Software Foundation, Inc. +EOF +rm $TMP* + +## -------------------- ## +## Unusual whitespace. ## +## -------------------- ## + +TMP=$TMP_BASE-unusual-ws +cat > $TMP <<EOF + # Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997, + # 98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + # 2009 Free Software Foundation, Inc. +EOF +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u /dev/null $TMP-stderr || exit 1 +diff -u - $TMP <<EOF || exit 1 + # Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, + # 1996, 1997, 98, 1999, 2000, 2001, 2002, 2003, 2004, + # 2005, 2006, 2007, 2008, 2009-2010 Free Software + # Foundation, Inc. +EOF +rm $TMP* + +## --------- ## +## DOS EOL. ## +## --------- ## + +TMP=$TMP_BASE-dos-eol +cat > $TMP <<EOF +Rem Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +Rem 98, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +Rem 2009 Free Software Foundation, Inc. +EOF +UPDATE_COPYRIGHT_YEAR=2010 \ + update-copyright $TMP 1> $TMP-stdout 2> $TMP-stderr +diff -u /dev/null $TMP-stdout || exit 1 +diff -u /dev/null $TMP-stderr || exit 1 +diff -u - $TMP <<EOF || exit 1 +Rem Copyright (C) 87, 88, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 98, +Rem 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +Rem 2009-2010 Free Software Foundation, Inc. +EOF +rm $TMP* + +exit 0