=head1 NAME

Log::Report::Util - helpful routines to Log::Report

=head1 INHERITANCE

 Log::Report::Util
   is a Exporter

=head1 DESCRIPTION

This module collects a few functions and definitions which are
shared between different components in the L<Log::Report|Log::Report>
infrastructure.

=head1 FUNCTIONS

B<escape_chars>(STRING)

=over 4

Replace all escape characters into their readable counterpart.  For
instance, a new-line is replaced by backslash-n.

=back

B<expand_reasons>(REASONS)

=over 4

Returns a sub-set of all existing message reason labels, based on the
content REASONS string. The following rules apply:
 REASONS = BLOCK [ ',' BLOCKS]
 BLOCK   = '-' TO | FROM '-' TO | ONE | SOURCE
 FROM,TO,ONE = 'TRACE' | 'ASSERT' | ,,, | 'PANIC'
 SOURCE  = 'USER' | 'PROGRAM' | 'SYSTEM' | 'ALL'

The SOURCE specification group all reasons which are usually related to
the problem: report about problems caused by the user, reported by
the program, or with system interaction.

example: of expended REASONS

 WARNING-FAULT # == WARNING,MISTAKE,ERROR,FAULT
 -INFO         # == TRACE-INFO
 ALERT-        # == ALERT,FAILURE,PANIC
 USER          # == MISTAKE,ERROR
 ALL           # == TRACE-PANIC

=back

B<parse_locale>(STRING)

=over 4

Decompose a locale string.

For simplicity of the caller's code, the capatization of the returned
fields is standardized to the preferred, although the match is case-
insensitive as required by the RFC. The territory in returned in capitals
(ISO3166), the language is lower-case (ISO639), the script as upper-case
first, the character-set as lower-case, and the modifier and variant unchanged.

In LIST context, four elements are returned: language, territory,
character-set (codeset), and modifier.  Those four are important for the
usual unix translationg infrastructure.  Only the "country" is obligatory,
the others can be C<undef>.  It may also return C<C> and C<POSIX>.

In SCALAR context, a HASH is returned which can contain more information:
language, script, territory, variant, codeset, and modifiers.  The
variant (RFC3066 is probably never used)

=back

B<unescape_chars>(STRING)

=over 4

Replace all backslash-something escapes by their escape character.
For instance, backslash-t is replaced by a tab character.

=back

=head1 SEE ALSO

This module is part of Log-Report distribution version 0.23,
built on April 24, 2009. Website: F<http://perl.overmeer.net/log-report/>

=head1 LICENSE

Copyrights 2007-2009 by Mark Overmeer. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://www.perl.com/perl/misc/Artistic.html>

