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

VERSION
    Version 0.003013

SYNOPSIS
        use String::Copyright;

        my $copyright = copyright(<<'END');
        copr. © 1999,2000 Foo Barbaz <fb@acme.corp> and Acme Corp.
        Copyright (c) 2001,2004 Foo (work address) <foo@zorg.corp>
        Copyright 2003, Foo B. and friends
        © 2000, 2002 Foo Barbaz <foo@bar.baz>
        END

        print $copyright;

        # Copyright 1999-2000 Foo Barbaz <fb@acme.com> and Acme Corp.
        # Copyright 2000, 2002 Foo Barbaz and Acme Corp.
        # Copyright 2001, 2004 Foo (work address) <foo@zorg.org>
        # Copyright 2003 Foo B. and friends

DESCRIPTION
    String::Copyright identifies copyright statements in a string and
    serializes them in a 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 => \&GNU_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 `<dr@jones.dk>`

COPYRIGHT AND LICENSE
    This program is based on the script "licensecheck" from the KDE SDK,
    originally introduced by Stefan Westerfeld `<stefan@space.twc.de>`.

      Copyright © 2007, 2008 Adam D. Barratt

      Copyright © 2005-2012, 2016, 2018, 2020-2021 Jonas Smedegaard

      Copyright © 2018, 2020-2021 Purism SPC

    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Affero 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 Affero General Public
    License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see <https://www.gnu.org/licenses/>.