| eval '(exit $?0)' && eval 'exec perl -wS -i "$0" ${1+"$@"}' |
| & eval 'exec perl -wS -i "$0" $argv:q' |
| if 0; |
| |
| # Copyright (C) 2015-2020 by |
| # Werner Lemberg. |
| # |
| # This file is part of the FreeType project, and may only be used, modified, |
| # and distributed under the terms of the FreeType project license, |
| # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
| # indicate that you have read the license and understand and accept it |
| # fully. |
| |
| # [Note: This script is expected to be called by the shell, which in turn |
| # calls perl automatically. The nifty start-up code above is based on |
| # gnulib's `update-copyright' script; it is a more portable replacement for |
| # the shebang, using the first `perl' program in the shell's path instead.] |
| |
| # Usage: |
| # |
| # update-copyright-year file1 [file2 ...] |
| |
| |
| # This script handles copyright entries like |
| # |
| # Copyright 2000 by |
| # foobar |
| # |
| # or |
| # |
| # /* Copyright 2000, 2001, 2004-2007 by */ |
| # /* foobar */ |
| # |
| # and replaces them uniformly with |
| # |
| # Copyright 2000-2015 |
| # foobar |
| # |
| # and |
| # |
| # /* Copyright 2000-2015 by */ |
| # /* foobar */ |
| # |
| # (assuming that the current year is 2015). As can be seen, the line length |
| # is retained if there is non-whitespace after the word `by' on the same |
| # line. |
| |
| use strict; |
| |
| |
| my (undef, undef, undef, |
| undef, undef, $year, |
| undef, undef, undef) = localtime(time); |
| $year += 1900; |
| |
| my $replaced = 0; |
| |
| |
| # Loop over all input files; option `-i' (issued at the very beginning of |
| # this script) makes perl edit them in-place. |
| while (<>) |
| { |
| # Only handle the first copyright notice in a file. |
| if (!$replaced) |
| { |
| # First try: Search multiple copyright years. |
| s { |
| (?<begin>.*) |
| Copyright |
| (?<space1>(\ + |
| | \ +\(C\)\ +)) |
| (?<first>[12][0-9][0-9][0-9]) |
| (?<middle>.+) |
| (?<last>[12][0-9][0-9][0-9]) |
| (?<space2>\ +) |
| by |
| (?<space3>\ *) |
| (?<end>.*) |
| } |
| { |
| # Fill line to the same length (if appropriate); we skip the middle |
| # part but insert `(C)', three spaces, and `-'. |
| my $space = length($+{space1}) - 1 |
| + length($+{middle}) - 1 |
| + length($+{space2}) - 1 |
| + length($+{space3}) |
| - (length("(C)") + 1); |
| |
| print "$+{begin}"; |
| print "Copyright\ (C)\ $+{first}-$year\ by"; |
| print ' ' x $space if length($+{end}); |
| print "$+{end}\n"; |
| $replaced = 1; |
| }ex |
| || |
| # Second try: Search a single copyright year. |
| s { |
| (?<begin>.*) |
| Copyright |
| (?<space1>(\ + |
| | \ +\(C\)\ +)) |
| (?<first>[12][0-9][0-9][0-9]) |
| (?<space2>\ +) |
| by |
| (?<space3>\ *) |
| (?<end>.*) |
| } |
| { |
| # Fill line to the same length (if appropriate); we insert three |
| # spaces, a `-', and the current year. |
| my $space = length($+{space1}) - 1 |
| + length($+{space2}) - 1 |
| + length($+{space3}) |
| - (length($year) + 1); |
| |
| print "$+{begin}"; |
| print "Copyright\ (C)\ $+{first}-$year\ by"; |
| # If $space is negative this inserts nothing. |
| print ' ' x $space if length($+{end}); |
| print "$+{end}\n"; |
| $replaced = 1; |
| }ex |
| || |
| # Otherwise print line unaltered. |
| print; |
| } |
| else |
| { |
| print; |
| } |
| } |
| continue |
| { |
| # Reset $replaced before processing the next file. |
| $replaced = 0 if eof; |
| } |
| |
| # EOF |