+2013-01-03 Jim Meyering <jim@meyering.net>
+
+ update-copyright: avoid copyright notice date corruption
+ Given a sequence of copyright year numbers in which the final
+ one was a two-digit number that happened to be a substring of
+ a preceding four-digit year number, we would mistakenly update
+ the substring (from two- to four-digit) rather than the two-digit
+ number at the end, which, combined with the addition of the current
+ 4-digit year number would yield two 5-digit year numbers, e.g.,
+ here, it would convert the first "99" to "1999, 2013" rather than
+ the final one:
+ 1991, 99
+ 11999, 20131, 1999
+ * build-aux/update-copyright: Tighten a regexp.
+ * tests/test-update-copyright.sh: Add a test case to trigger the bug.
+ Reported by Joseph Myers in
+ http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/32281
+
2013-01-01 Paul Eggert <eggert@cs.ucla.edu>
regex: omit needless signed-pointer casts
if 0;
# Update an FSF copyright year list to include the current year.
-my $VERSION = '2012-02-05.21:39'; # UTC
+my $VERSION = '2013-01-03.09:41'; # UTC
# Copyright (C) 2009-2013 Free Software Foundation, Inc.
#
if ($final_year != $this_year)
{
# Update the year.
- $stmt =~ s/$final_year_orig/$final_year, $this_year/;
+ $stmt =~ s/\b$final_year_orig\b/$final_year, $this_year/;
}
if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'})
{
/* Copyright 1987, 1988, 1991, 1992 Free Software Foundation, Inc. ***
* End of comments. */
EOF
+cat > $TMP.two-digit-final-is-substr-of-first <<EOF
+ /* Copyright 1991, 99 Free Software Foundation, Inc. */
+EOF
UPDATE_COPYRIGHT_YEAR=2010 \
update-copyright $TMP.* 1> $TMP-stdout 2> $TMP-stderr
compare /dev/null $TMP-stdout || exit 1
Inc. ***
* End of comments. */
EOF
+compare - $TMP.two-digit-final-is-substr-of-first <<EOF || exit 1
+ /* Copyright 1991, 1999, 2010 Free Software Foundation, Inc. */
+EOF
rm $TMP*
exit 0