NAME
   String::Copyright - Representation of text-based copyright statements

VERSION
   Version 0.003003

SYNOPSIS
       use String::Copyright;

       my $copyright = copyright(<<'END');
       copr. © 1999,2000 Foo Barbaz <[email protected]> and Acme Corp.
       Copyright (c) 2001,2004 Foo (work address) <[email protected]>
       Copyright 2003, Foo B. and friends
       © 2000, 2002 Foo Barbaz <[email protected]>
       END

       print $copyright;

       # Copyright 1999-2000 Foo Barbaz <[email protected]> and Acme Corp.
       # Copyright 2000, 2002 Foo Barbaz and Acme Corp.
       # Copyright 2001, 2004 Foo (work address) <[email protected]>
       # Copyright 2003 Foo B. and friends

       print $copyright->normalize(
         alias  => {
           [ '[email protected]' => [ '[email protected]', '[email protected]'] ] }
         mangle => {
           [ 's/Foo Barbaz\K(?= and .*)$/ <[email protected]>/' ] }
       );

       # Copyright 1999-2000, 2002-2003 Acme Corp.
       # Copyright 1999-2004 Foo Barbaz <[email protected]>
       # Copyright 2003 Foo B. and friends

DESCRIPTION
   String::Copyright Parses common styles of copyright statements and
   serializes in normalized format.

OPTIONS
   Options can be set as an argument to the 'use' statement.

 threshold, threshold_before, threshold_after
       use String::Copyright { threshold_after => 5 };

   Stop parsing after this many lines whithout copyright information, before
   or after having found any copyright information at all. `threshold` sets
   both `threshold_before` and `threshold_after`.

   By default unset: All lines are parsed.

 format( \&sub )
       use String::Copyright { format => \&NGU_style } };

       sub GNU_style {
           my ( $years, $owners ) = @_;

           return 'Copyright (C) ' . join '  ', $years || '', $owners || '';
       }

FUNCTIONS
   Exports one function: `copyright`. This module uses Exporter::Tiny to
   export functions, which allows for flexible import options; see the
   Exporter::Tiny documentation for details.

SEE ALSO
   *   Encode

   *   Exporter::Tiny

BUGS/CAVEATS/etc
   String::Copyright operates on strings, not bytes. Data encoded as UTF-8,
   Latin1 or other formats need to be decoded to strings before use.

   Only ASCII characters and © (copyright sign) are directly processed.

   If copyright sign is mis-detected or accents or multi-byte characters
   display wrong, then most likely the data was not decoded into a string.

   If ranges or lists of years are not tidied, then maybe it contained
   non-ASCII whitespace or digits.

AUTHOR
   Jonas Smedegaard `<[email protected]>`

COPYRIGHT AND LICENSE
   Derived from App::Licensecheck originally part of the KDE SDK, originally
   introduced by Stefan Westerfeld `<[email protected]>`; and on the script
   licensecheck2dep5 part of Debian CDBS tool, written by Jonas Smedegaard.

     Copyright © 2007, 2008 Adam D. Barratt

     Copyright © 2005-2012, 2016 Jonas Smedegaard

   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, 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 <https://www.gnu.org/licenses/>.