Term::ANSIColor version 4.00 (A simple ANSI text attribute control module) This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. Please see the section LICENSE below for more information. I welcome bug reports and patches for this package at rra@stanford.edu or via the CPAN bug tracker at . However, please be aware that I tend to be extremely busy and to get a lot of mail. I'll save your mail and get to it as soon as I can, but depending on how busy I am it may take me a couple of months. BLURB Term::ANSIColor provides constants and simple functions for sending ANSI text attributes, most notably colors. It can be used to set the current text attributes or to apply a set of attributes to a string and reset the current text attributes at the end of that string. DESCRIPTION This module grew out of a thread on comp.lang.perl.misc where several of us were throwing around different ways to print colored text from Perl scripts and Zenin posted his old library to do that. I (Russ) disagreed with the implementation and offered my own (the color() and colored() functions implemented in this package), Zenin convinced me that the constants had their place as well, and we started figuring out the best ways of implementing both. While ANSI color escape codes are fairly simple, it can be hard to remember the codes for all of the attributes and the code resulting from hard-coding them into your script is definitely difficult to read. This module is designed to fix those problems, as well as provide a convenient interface to do a few things for you automatically (like resetting attributes after the text you print out so that you don't accidentally leave attributes set). Despite its name, this module can also handle non-color ANSI text attributes (bold, underline, reverse video, and blink). It uses either of two interfaces, one of which uses "constants" for each different attribute and the other of which uses two subs which take strings of attributes as arguments. See the POD documentation for complete details, features, and usage. This module is distributed as part of the Perl core distribution as of Perl 5.6.0. You only need to install this module if you want a newer version than came with Perl or if you have an old version of Perl. REQUIREMENTS Term::ANSIColor is written in pure Perl and has no module dependencies that aren't found in Perl core. It should work with any version of Perl after 5.6, although it hasn't been tested with old versions in some time. The test suite requires Perl and Test::More (part of Perl since 5.6.2). It also makes use of additional Perl modules for some tests. These tests will be skipped automatically if the modules aren't available. To run the full set of default tests, you will need the Perl modules: Perl::Critic Test::MinimumVersion Test::Pod Test::Pod::Coverage Test::Strict Test::Synopsis Test::Warn and their dependencies. These modules are all available from CPAN. Some parts of the test suite are suppressed by default because those tests are normally only useful for the maintainer. This includes tests of POD spelling and Perl coding style. To enable those tests, set the environment variable RRA_MAINTAINER_TESTS to a true value. For these tests, the additional Perl modules: Devel::Cover Test::Perl::Critic Test::Spelling and their dependencies as well as a spell-checking program (several are supported by Test::Spelling) are required. These modules are all available from CPAN. INSTALLATION WARNING: Installation of this package will replace the Term::ANSIColor that came with Perl. You may want to save a backup copy of the standard version first. Follow the standard installation procedure for Perl modules, which is to type the following commands: perl Makefile.PL make make test make install You'll probably need to do the last as root. If instead you wish to install the module by hand, simply copy it into a directory named Term in your Perl library directory. HOMEPAGE AND SOURCE REPOSITORY The Term::ANSIColor web page at: http://www.eyrie.org/~eagle/software/ansicolor/ will always have the current version of this package, the current documentation, and pointers to any additional resources. Term::ANSIColor is maintained using Git. You can access the current source by cloning the repository at: git://git.eyrie.org/perl/ansicolor.git or view the repository on the web at: http://git.eyrie.org/?p=perl/ansicolor.git For bug tracking, this package uses the CPAN bug tracker at: https://rt.cpan.org/ Look for the Term-ANSIColor distribution. THANKS To Jon Lennox for looking at early versions of this module, providing feedback, and offering suggestions for improvement. To Jesse Taylor for writing the first significant script to use this module (colorized calsplit), thus offering innumerable opportunities to test and debug. To Jean Delvare for providing documentation of what the various attributes do on various different terminal emulators, and for noting that attribute 2 is dark. To Edward Avis for the implementation of uncolor. To Rani Pinchuk for the idea of ANSI_COLORS_DISABLED and an initial implementation. To ATricket for the information about what PuTTY, Windows telnet, and OpenSSH under Cygwin support. To Richard Maus for pointing out DARK was missing from the exported constants list and CYAN and WHITE were missing from the documentation. To Autrijus Tang for noticing a problem with string comparisons in the test suite. To Daniel Lindsley for the information about what Mac OS X Terminal supports. To Joe Smith for the test files that exercise a wide variety of VT100 escape sequences including the ECMA-48 color control codes. To James Bowlin for catching a bug in colored when $EACHLINE is set that caused it to not color lines consisting solely of 0. To Helge Kreutzmann for pointing out the need for warnings in the documentation about background colors that span newlines. To Baron Schwartz for pointing out that cyan and white were missing from the documentation. To Michael R. Wolf for pointing out that Wikipedia and the ECMA standard use faint instead of dark as the name of attribute 2. To openmethods.com voice solutions for contributing PUSHCOLOR, POPCOLOR, and LOCALCOLOR support. To Tim Bellinghausen for the AUTOLOAD taint fix for Perl 5.10. To Paul Miller for the idea and initial implementation of colorstrip. To Jakob Ilves for sixteen-color support and the initial documentation of bright color issues. To Revilo Reegiles for reporting problems with the colored function and non-array references with stringification defined, and providing a test case. To Kent Fredric for the request for italic and the report of a terminal emulator that supports it. To Simon Wistow for reporting that Term::ANSIColor was inadvertantly clobbering $@ when generating constant subs. To Kurt Starsinic for the initial implementation of 256-color support. To Magnus Woldrich for Term::ExtendedColor and for research on which emulators support 256 colors. To Stephen Thirlwall for the initial implementation of custom color support. To Larry Wall, as always, for Perl. LICENSE The Term-ANSIColor distribution as a whole is covered by the following copyright statement and license: Copyright 1996 Zenin Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2008, 2009, 2010, 2011, 2012 Russ Allbery Copyright 2012 Kurt Starsinic This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. This means that you may choose between the two licenses that Perl is released under: the GNU GPL and the Artistic License. Please see your Perl distribution for the details and copies of the licenses. PUSH/POP support submitted 2007 by openmethods.com voice solutions All individual files without an explicit exception below are released under this license. Some files may have additional copyright holders as noted in those files. There is detailed information about the licensing of each file in the LICENSE file in this distribution. Some files in this distribution are individually released under different licenses, all of which are compatible with the above general package license but which may require preservation of additional notices. All required notices are preserved in the LICENSE file.