aboutsummaryrefslogtreecommitdiff
path: root/manuals/ponysay.texinfo
diff options
context:
space:
mode:
authorjaseg <s@jaseg.de>2013-03-31 22:55:50 +0200
committerjaseg <s@jaseg.de>2013-03-31 22:55:50 +0200
commit2ce4b2ed726b3be47094431f6d55c05d668529cc (patch)
tree994e268d3c3fa8e40ecc9814c7040039e6698180 /manuals/ponysay.texinfo
parent35652e6d98d25facc8675667996924d0ad5adbe1 (diff)
downloadponysay-2ce4b2ed726b3be47094431f6d55c05d668529cc.tar.gz
ponysay-2ce4b2ed726b3be47094431f6d55c05d668529cc.tar.bz2
ponysay-2ce4b2ed726b3be47094431f6d55c05d668529cc.zip
Repo orga fixes, README updated.
Diffstat (limited to 'manuals/ponysay.texinfo')
-rw-r--r--manuals/ponysay.texinfo2677
1 files changed, 0 insertions, 2677 deletions
diff --git a/manuals/ponysay.texinfo b/manuals/ponysay.texinfo
deleted file mode 100644
index 32cebc6..0000000
--- a/manuals/ponysay.texinfo
+++ /dev/null
@@ -1,2677 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-
-@c %**start of header
-@setfilename ponysay.info
-@settitle Ponysay
-@afourpaper
-@documentencoding UTF-8
-@documentlanguage en
-@finalout
-@c %**end of header
-@set VERSION 2.9.1
-
-@defindex op
-@synindex op vr
-@synindex cp pg
-
-
-@copying
-This manual is for ponysay
-(version @value{VERSION}),
-
-Copyright @copyright{} 2012 Mattias Andrée
-
-@quotation
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts. A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-@end quotation
-@end copying
-
-@ifnottex
-@node Top
-@top Ponysay: ponies for your terminal
-@insertcopying
-@end ifnottex
-
-@titlepage
-@title Ponysay
-@c@subtitle Cowsay reimplementation for ponies.
-@c@subtitle Ponies for your terminal.
-@c@subtitle Infesting your terminal with ponies.
-@c@subtitle Surviving the zombiepony takeover.
-@subtitle Making your terminal about 20 % cooler.
-@subtitle Covers ponysay version @value{VERSION}.
-@c ** start of front page image **
-@c If print make a pdf or hard copy with the front cover
-@c you may or may not want to remove this.
-@image{infoimage,423.5px}
-@c ** end of front page image **
-@author by Mattias Andrée (maandree)
-
-@page
-@vskip 0pt plus 1filll
-@insertcopying
-@page
-@*@*
-@center{`For me! For my friends! @b{For EQUESTRIA!}'}
-@end titlepage
-
-@contents
-
-
-@menu
-* Overview:: Brief overview of @command{ponysay}.
-* Invoking ponysay:: How to run @command{ponysay}.
-* Advanced usage:: Advanced usage of @command{ponysay}.
-* Environment variables:: Getting more from @command{ponysay} with environment variables.
-* Optional features:: Get the most out of @command{ponysay} with optional features.
-* Limitations:: Known limitations that may not be that easy to overcome.
-* Problems and requests:: Report issues and making requests.
-* Dependencies:: Ponysay's dependencies.
-* Installing:: How to install @command{ponysay}.
-* Inner workings:: Useful information for those whom want to help hack @command{ponysay}.
-* Contributing:: Useful information for those whom want to help improve the world.
-* Distributing:: Useful information for OS package repository package maintainers.
-* Terminology:: Terminology.
-* Change log:: Differences between the version of @command{ponysay}.
-* Ponysay contributors:: Ponysay contributors.
-* Ponysay license:: Ponysay license.
-* GNU Free Documentation License:: Copying and sharing this manual.
-* Concept and program index:: Concept and program index.
-* Variable and option index:: Variable and option index.
-@end menu
-
-
-
-
-@node Overview
-@chapter Overview
-@cindex overview
-
-@command{ponysay} displays an image of a My Little Pony pony saying a message provided
-by the user in a terminal, or a quote from the show My Little Pony: Friendship is Magic
-(MLP:FiM). Historically @command{ponysay} was a wrapper for cowsay, but has since
-version 2.1 become an independent reimplementation of @command{cowsay}.
-
-If a message is not provided, e.g. by piping, it accepts standard input. The pony
-quoting the given message is printed on standard output.
-
-@command{ponythink} is to @command{ponysay} as @command{cowthink} is to
-@command{cowsay}.
-
-@command{ponysay} is generally used to decorate your terminal with a random pony, when
-you start the terminal. But if you know anypony how does like ponies [fat chance] you
-can always make screen-shots of @command{ponysay --q} executions and communication that
-way over e-mail.
-
-
-
-
-@node Invoking ponysay
-@chapter Invoking @command{ponysay}
-@cindex invoking
-@cindex options
-@cindex arguments
-@pindex @command{ponythink}
-
-The format for running the @command{ponysay} program is:
-
-@example
-ponysay [@var{option}...] [--] [@var{message}]
-ponythink [@var{option}...] [--] [@var{message}]
-@end example
-
-Running @command{ponysay} will print a speech balloon, @command{ponythink} will
-print a thought balloon. Otherwise @command{ponysay} and @command{ponythink} is
-the same thing.
-
-@command{ponysay} supports the following options:
-
-@table @option
-
-@item --
-@opindex @option{--}
-Parse the following arguments as parts of @code{@var{message}}.
-
-@item -h
-@itemx --help
-@opindex @option{-h}
-@opindex @option{--help}
-Show summary of options.
-
-@item -v
-@itemx --verion
-@opindex @option{-v}
-@opindex @option{--version}
-Show version of program.
-
-@item -f PONY
-@itemx --file PONY
-@itemx --pony PONY
-@opindex @option{-f}
-@opindex @option{--file}
-@opindex @option{--pony}
-Specify the pony that should printed, this can either be a file name or a pony
-name printed by @command{ponysay -l}. This option can be used multiple times to
-specify a set of ponies from which one will be selected randomly. If no pony is
-specified one will be selected randomly.
-
-@cindex @command{util-say}
-@cindex .png
-@cindex png images
-@cindex images, png
-@cindex portable network graphics
-If you have @command{util-say} installed, you can use .png-files as the arguments
-for this options.
-
-In versions earlier than version 2.0, the if the pony were a file name it had to
-include a `@code{/}'. This is not longer required and any existing pony name
-supersedes file names.
-
-@item -F PONY
-@itemx ++file PONY
-@itemx ++pony PONY
-@opindex @option{-F}
-@opindex @option{++file}
-@opindex @option{++pony}
-Just as @option{-F}, but it uses extra (non-MLP:FiM) ponies instead of standard
-(MLP:FiM) ponies
-
-@item -q PONY
-@itemx --quote PONY
-@opindex @option{-q}
-@opindex @option{--quote}
-@cindex quotes
-@cindex pony quotes
-By using this option, a pony will be printed with quotes from her in My Little Pony:
-Friendship is Magic. The pony will be selected randomly, unless at least one pony
-is added as an argument to @option{-q}. If one or more ponies are added as an argument
-to @option{-q}, the pony will be selected randomly from that set of ponies.
-This option requires the extension @command{ponyquotes4ponysay}, which is included
-by default since version 1.2.
-
-The argument can be a file name, but only if it ends with @file{.pony}.
-
-@item --f [PONY...]
-@itemx --files [PONY...]
-@itemx --ponies [PONY...]
-@opindex @option{--f}
-@opindex @option{--files}
-@opindex @option{--ponies}
-Variadic variant of @option{-f}, meaning that all arguments added after this one
-will parsed as an argument to this option. Additionally, those options are added
-to @option{-f}.
-
-@item --F [PONY...]
-@itemx ++files [PONY...]
-@itemx ++ponies [PONY...]
-@opindex @option{--F}
-@opindex @option{++files}
-@opindex @option{++ponies}
-Variadic variant of @option{-F}, meaning that all arguments added after this one
-will parsed as an argument to this option. Additionally, those options are added
-to @option{-F}.
-
-An important feature of this options, is that you can but it in the end of the
-command line, without any argument to get a random non-MLP:FiM pony.
-
-@item --q [PONY...]
-@itemx --quotes [PONY...]
-@opindex @option{--q}
-@opindex @option{--quotes}
-@cindex quotes
-@cindex pony quotes
-Variadic variant of @option{-q}, meaning that all arguments added after this one
-will parsed as an argument to this option. Additionally, those options are added
-to @option{-q}.
-
-An important feature of this options, is that you can but it in the end of the
-command line, without any argument to get a quote from any pony with a quote.
-
-@item -b STYLE
-@itemx --bubble STYLE
-@itemx --balloon STYLE
-@opindex @option{-b}
-@opindex @option{--bubble}
-@opindex @option{--balloon}
-Specify the balloon style that should used, this can either be a file name or a
-balloon name printed by @option{ponysay -B}. This option can be used multiple
-times to specify a set of styles from which one will be selected randomly. If no
-balloon style is specified a fallback style will be used.
-
-@item -W COLUMN
-@itemx --wrap COLUMN
-@opindex @option{-W}
-@opindex @option{--wrap}
-Specify the screen column where the message should be wrapped, this is by default 40,
-as with @command{cowsay}. The balloon's extra width is taken into consideration.
-
-If the argument is not a number, but starts instead with @code{n} (for ‘none’ or
-‘no’), no wrapping is done, and if it starts with @code{i} (for ‘inherit’) the width
-of the terminal is used.
-
-@code{n} and @code{i} is case insensitive, so you may use @code{N} and @code{I}
-instead. Additionally, typo correction is for QWERTY and Dvorak is built in to
-@command{ponysay}; the nearest key, either to the left or to the right, depending
-on which hand is used to press the key, is also allowed.
-
-@item -c
-@itemx --compress
-@opindex @option{-c}
-@opindex @option{--compress}
-@pindex @command{figlet}
-@pindex @command{TOIlet}
-Compress the message in the same way @command{cowsay} does, that is basically
-without multiple spaces, and only paragraphs separations. Using this options
-will mean that you cannot display @command{figlet} and @command{TOIlet} style
-messages.
-
-@item -l
-@itemx --list
-@opindex @option{-l}
-@opindex @option{--list}
-Lists all installed ponies. The ponies which have quotes, i.e. can be used with
-the @option{-q} option, will be marked by being printed in bold or bright (depending
-on the terminal.)
-
-@item -L
-@itemx --altlist
-@itemx --symlist
-@opindex @option{-L}
-@opindex @option{--symlist}
-@opindex @option{--altlist}
-Lists all installed ponies. The ponies which have quotes, i.e. can be used with
-the @option{-q} option, will be marked by being printed in bold or bright (depending
-on the terminal.) This options differs from @option{-l} by printing alternative
-names (symbolic links) inside brackets after their target ponies.
-
-@item +l
-@itemx ++list
-@opindex @option{+l}
-@opindex @option{++list}
-Just as @option{-l}, except it lists extra (non-MLP:FiM) ponies instead of standard
-(MLP:FiM) ponies.
-
-@item +L
-@itemx ++symlist
-@itemx ++altlist
-@opindex @option{+L}
-@opindex @option{++symlist}
-@opindex @option{++altlist}
-Just as @option{-L}, except it lists extra (non-MLP:FiM) ponies instead of standard
-(MLP:FiM) ponies.
-
-@item -B
-@itemx --balloonlist
-@opindex @option{-B}
-@opindex @option{--bubblelist}
-@opindex @option{--balloonlist}
-Prints a list of all balloon styles.
-
-@item -A
-@itemx --all
-@opindex @option{-A}
-@opindex @option{--all}
-List all ponies, MLP:FiM and non-MLP:FiM, in this case the first list are MLP:FiM
-and the second are non-MLP:FiM.
-
-@item +A
-@itemx ++all
-@itemx --symall
-@itemx --altall
-@opindex @option{+A}
-@opindex @option{++all}
-@opindex @option{--symall}
-@opindex @option{--altall}
-List all ponies names, including alternatives, these from MLP:FiM and non-MLP:FiM.
-The first list are the MLP:FiM and the second one are non-MLP:FiM.
-
-@item -o
-@itemx --pony-only
-@itemx --ponyonly
-@opindex @option{-o}
-@opindex @option{--pony-only}
-@opindex @option{--ponyonly}
-Print just the pony, nothing else like the speech balloon. Naturally the
-@command{ponysay} will not wait for a message from stdin.
-
-@item -X
-@itemx --256-colours
-@itemx --256colours
-@itemx --x-colours
-@opindex @option{-X}
-@opindex @option{--256-colours}
-@opindex @option{--256colours}
-@opindex @option{--x-colours}
-Use @command{xterm}'s 256-colour support (supported by most X11 terminals), despite
-your terminal's actual compatibilies.
-
-@item -V
-@itemx --tty-colours
-@itemx --ttycolours
-@itemx --vt-colours
-@opindex @option{-V}
-@opindex @option{--tty-colours}
-@opindex @option{--ttycolours}
-@opindex @option{--vt-colours}
-Use Linux VT's compatbilies without KMS utilisation, despite your terminal's actual
-compatibilies.
-
-@item -K
-@itemx --kms-colours
-@itemx --kmscolours
-@opindex @option{-K}
-@opindex @option{--kms-colours}
-@opindex @option{--kmscolours}
-Use Linux VT's compatbilies with KMS utilisation, despite your terminal's actual
-compatibilies.
-
-@item +c
-@itemx --colour ANSI-COLOUR
-@opindex @option{+c}
-@opindex @option{--colour}
-Colour the balloon, including link and message (the parts that are not individually
-specified.) The argument, should be a ANSI colour sequence without leading CSI and
-without a tailing ‘m’, for example @code{1;31} will make it in red and bold (or bright
-depending on the terminal.)
-
-@item --colour-bubble
-@itemx --colour-balloon ANSI-COLOUR
-@opindex @option{--colour-bubble}
-@opindex @option{--colour-balloon}
-Just like @option{--colour}, but it only colours the balloon, without the message
-or link.
-
-@item --colour-link ANSI-COLOUR
-@opindex @option{--colour-link}
-Just like @option{--colour}, but it only colours the balloon link.
-
-@item --colour-msg
-@itemx --colour-message ANSI-COLOUR
-@opindex @option{--colour-msg}
-@opindex @option{--colour-message}
-Just like @option{--colour}, but it only colours the message.
-
-@item --colour-pony ANSI-COLOUR
-@opindex @option{--colour-pony}
-Just like @option{--colour}, but it colours the pony. This colouring has no
-effect ony regular pony files, as it has its own colouring.
-
-@item --colour-wrap
-@itemx --colour-hyphen ANSI-COLOUR
-@opindex @option{--colour-wrap}
-@opindex @option{--colour-hyphen}
-Just like @option{--colour}, but it colours hyphen added by the word wrapping.
-By default this is red (@code{31}), if you want uncoloured use @code{0},
-without @code{0} or @code{39}, the default @code{31} is presistent.
-
-@end table
-
-@opindex @var{message}
-If neither @option{-q} is used nor any @var{message} is specified, @command{ponysay}
-will read the message from stdin (standard input); however, if no arguments are used
-and nothing is piped to stdin, a help message will be printed. If you want to use
-@command{ponysay} without arguments and enter the message by hand, you can run
-@code{cat | ponysay}.
-
-@cindex @file{best.pony}
-If no pony is selected, @command{ponysay} will look for a @file{best.pony} file,
-this file should be a symbolic link to the pony you want as a default. If it is not
-a symbolic link, @option{-q} cannot determine which quotes to use.
-
-
-
-@node Advanced usage
-@chapter Advanced usage of @command{ponysay}.
-@cindex advanced usage
-
-@menu
-* Extra information:: Displaying extra information.
-* Fortune cookies:: Displaying with fortune cookies.
-* Ponification:: Ponify your fortune cookies.
-* Running on TTY:: Running on TTY (Linux VT).
-* Running on screen:: Running on @command{screen}.
-@end menu
-
-
-
-@node Extra information
-@section Extra information
-@cindex file descriptor 3
-@cindex extra information
-@cindex verbose mode
-@pindex @command{tee}
-If file descriptor 3 is definied when @command{ponysay} is executed, extra information
-is printed to it. The printed information includes the name of the pony file, the name
-of the balloon style file, and if definied in the pony file, file meta data and comment.
-
-In most shells, a file descriptor 3 can defined using @command{3> FILE}, and linked to
-stderr using @command{3>&2}. For example, you can print the information to @file{~/info}
-by running @command{ponysay I\'m just the cutest pony! 3> ~/info}.
-
-The message is not stored this way, for that you can use @command{tee}. However, if you
-use @option{-q} the quote file is printed to file descriptor 3.
-
-
-@node Fortune cookies
-@section Fortune cookies
-@pindex @command{fortune}
-@cindex startup
-@cindex on startup
-@cindex @file{.bashrc}
-@cindex @file{~/.bashrc}
-
-If you have @command{fortune} installed -- this program may be named
-@command{fortune-mod} in your GNU/Linux distributions package repository -- you can
-run @code{fortune | ponysay} to get a random pony reading a random fortune cookie.
-
-By adding @code{fortune | ponysay} to the end [easiest way] of your
-@file{~/.bashrc} -- or equivalent for your shell if you do not use GNU Bash
-(standard shell for most distributions now a days) -- you will get the effect
-described in the previous paragraph every time you open a terminal.
-
-
-@node Ponification
-@section Ponification
-@cindex ponification
-@cindex text ponification
-@pindex @command{ponypipe}
-
-You can ponify messages (i.e. replaces words search as `everyone' with `everypony') by
-using @code{fortune | ponypipe} instead of using @command{fortune}. @command{ponypipe}
-can be downloaded from @url{https://github.com/maandree/ponypipe}.
-Alternatively you can use @command{pinkie} (or @command{pinkiepie}), which can be
-downloaded from @url{https://github.com/maandree/pinkie-pie}, which is just
-@code{fortune | ponypipe}. There is also a large @command{sed} script, similar to
-@command{ponypipe}: @url{http://www.reddit.com/r/mylittlelinux/comments/srixi/using_ponysay_with_a_ponified_fortune_warning/}
-However I think @command{ponypipe} as better at replacing words than the @command{sed}
-script, but I haven't used the script so I wouldn't know for sure.
-
-
-@node Running on TTY
-@section Running on TTY
-@cindex tty
-@pindex linux vt
-@cindex @file{.bashrc}
-@cindex @file{~/.bashrc}
-
-If you use TTY and have a custom colour palette, you should also add to your
-@file{~/.bashrc}, before @code{fortune | ponysay}:
-@cartouche
-@example
-[ "$TERM" = "linux" ] &&
- function ponysay
- @{ exec ponysay "$@@"
- #RESET PALETTE HERE
- @}
-@end example
-@end cartouche
-
-You should read more about this in @ref{KMS ponies}.
-
-
-@node Running on screen
-@section Running on @command{screen}
-@pindex @command{screen}
-@cindex @file{.bashrc}
-@cindex @file{~/.bashrc}
-
-@command{screen} will adapt ANSI colour escape sequences to your terminal's
-capabilities. This means that if your terminal reports itself as @code{xterm}
-in @env{$TERM} ponies will lose their colours; they will only use the lower 16
-colours instead of the top 240 colours. By default, almost all X terminals,
-including @command{xterm} and @command{mate-terminal} reports themselves as
-@code{xterm} in @env{$TERM}, and some reports their actual name in @env{$COLORTERM}.
-So before opening @command{screen} you use set @env{$TERM} to @code{xterm-256color},
-if you are using a terminal with support for @code{xterm}'s 256 colours; this
-can be done by adding to your @file{~/.bashrc}:
-@cartouche
-@example
-[ "$TERM" = "xterm" ] &&
- function screen
- @{ export TERM="xterm-256color"
- exec screen "$@@"
- @}
-@end example
-@end cartouche
-
-
-
-@node Environment variables
-@chapter Environment variables
-@cindex environment variables
-@cindex truncation
-
-@command{ponysay} supports the follow environment variables:
-
-@table @env
-@item PONYSAY_BOTTOM
-@vindex @env{PONYSAY_BOTTOM}
-@cindex tty
-Under TTY (Linux VT), if the output is larger the the screen's height, only
-the beginning is printed, leaving two blank lines. If you want the bottom
-to be printed rather the the beginning you can export @env{PONYSAY_BOTTOM}
-with the value @code{yes}, @code{y} or @code{1}.
-
-@item PONYSAY_SHELL_LINES
-@vindex @env{PONYSAY_SHELL_LINES}
-@cindex tty
-Under TTY (Linux VT), if the output is larger than the screen's height, two
-lines are left blank. If you want more, or less, blank lines you can export
-@env{PONYSAY_SHELL_LINES} with the value of how many blank lines you want.
-Naturally this takes effect eve n if the output is not actually larger than
-the screen.
-
-@item PONYSAY_FULL_WIDTH
-@vindex @env{PONYSAY_FULL_WIDTH}
-You can export @env{PONYSAY_FULL_WIDTH} with the value @code{yes}, @code{y}
-or @code{1}, if you do not want the output to be truncated on the width to
-fit the terminal.
-
-@item PONYSAY_TRUNCATE_HEIGHT
-@vindex @env{PONYSAY_TRUNCATE_HEIGHT}
-Export @env{PONYSAY_TRUNCATE_HEIGHT} with the value @code{yes}, @code{y}
-or @code{1}, if you want to truncate the output on the height even if you
-are not running @command{ponysay} under TTY.
-
-@item PONYSAY_UCS_ME
-@vindex @env{PONYSAY_UCS_ME}
-@cindex ucs
-@cindex universal character set
-@cindex unicode
-@cindex ascii
-Export @env{PONYSAY_UCS_ME} with the value @code{yes}, @code{y} or @code{1},
-if you want [simulated] symlink to pony files using Universal Character Set
-in their names. Otherwise pony files uses only ASCII. If you want to remove
-the ASCII:ised names export @env{PONYSAY_UCS_ME} with the value @code{harder},
-@code{h} or @code{2} instead.
-
-If you have not enabled this, UCS names are not usable, suggested or listed.
-If you use @code{yes} UCS names will be usable, suggested and listed. If you
-use @code{harder} ASCII:ised names will not be suggested or listed, but they
-will still be usable.
-
-@item @env{PONYSAY_KMS_PALETTE}
-@itemx @env{PONYSAY_KMS_PALETTE_CMD}
-@vindex @env{PONYSAY_KMS_PALETTE}
-@vindex @env{PONYSAY_KMS_PALETTE_CMD}
-@cindex tty
-@pindex linux vt
-@cindex kmsponies
-@cindex kms
-@cindex kernel mode setting
-
-@env{PONYSAY_KMS_PALETTE} or @env{PONYSAY_KMS_PALETTE_CMD} is used to tell
-ponysay how your TTY palette looks, this feature lets you get the best images
-in TTY if you have Kernel Mode Setting (KMS) support.
-
-See @ref{KMS ponies} for information on how to use this.
-@end table
-
-
-
-@node Optional features
-@chapter Optional features
-@cindex features, optional
-@cindex optional features
-@cindex optional dependencies
-
-@menu
-* KMS ponies:: Improved TTY support under KMS support.
-@end menu
-
-
-@node KMS ponies
-@section KMS ponies
-@cindex kmsponies
-@cindex tty
-@pindex linux vt
-@cindex kms
-@cindex kernel mode setting
-@cindex environment variables
-@vindex @env{PONYSAY_KMS_PALETTE}
-@vindex @env{PONYSAY_KMS_PALETTE_CMD}
-@cindex @file{.bashrc}
-@cindex @file{~/.bashrc}
-@cindex cache
-@cindex @file{/var/cache/ponysay}
-@cindex @file{~/.cache/ponysay}
-
-KMS ponies is an optional feature that required that you have @command{util-say>=2}
-(@command{util-say<2} for @command{ponysay<2.1}) installed. It lets TTY users that
-have a custom TTY colour palette and KMS support get best TTY images that can be
-display at the current state of the art. KMS is supported on most computers, but due
-to lack of published specifications Nvidia drivers does not support KMS.
-@command{util-say} can be downloaded at @url{https://github.com/maandree/util-say}.
-
-To use this feature your @file{~/.bashrc} (or equivalent for your shell) must keep
-track of your colour palette; it is not possible for a program to ask to terminal.
-Either the shell should export a palette string to @env{$PONYSAY_KMS_PALETTE} or you
-should export a command to can get the palette string to
-@env{$PONYSAY_KMS_PALETTE_CMD}. The palette string should be the stream which sets
-the colour palette to the terminal when @command{echo}:ed; preferably, to increase
-speed and reduce cache usage, it should be consistent every time it is exported for
-every colours palette. So you may want to keep it sorted, always be in either upper
-case or lower case, and not contain an character that is not used to set the colour
-palette.
-
-Assuming you have a function in your @file{~/.bashrc}, to reset the colour palette
-to what you set it to last time in the terminal, named @command{reset-palette},
-your @file{~/.bashrc} should, for example, contain:
-@cartouche
-@example
-[ "$TERM" = "linux" ] &&
- function ponysay
- @{ export PONYSAY_KMS_PALETTE="$(reset-palette)"
- exec ponysay "$@@"
- @}
-@end example
-@end cartouche
-
-KMS ponies uses @file{/var/cache/ponysay/} or, if missing, @file{~/.cache/ponysay/}
-for cache space.
-
-
-
-@node Limitations
-@chapter Limitations
-@cindex limitations
-
-@menu
-* Terminals:: Limitations on terminals.
-* Cowsay:: Limitations on cowsay.
-@end menu
-
-
-@node Terminals
-@section Terminals
-@cindex terminals
-@cindex fonts
-@cindex broken ponies
-
-@pindex xterm
-@pindex putty
-Ponysay works perfectly on @command{xterm}, @command{xterm} like terminals including
-@command{putty}, settings may however need to be customised for Unicode Character Set
-(UCS) support, but less well, depending on font, on VTE based terminals including
-@command{mate-terminal}.
-
-@cindex kms
-@cindex kernel mode setting
-@cindex tty
-@pindex linux vt
-On Linux's native terminal Linux VT (TTY) it works less well, and not good at all
-without Kernel Mode Setting (KMS) support. See @url{https://github.com/erkin/ponysay/issues/1}
-for more information. @command{ponysay} clears the screen before printing to TTY, this
-is because if your graphics driver supports KMS, the colours will be messed by when the
-ponies position moves on the screen, this is also reason why the output is truncated on
-the height in TTY by default.
-
-Most terminals have support for 256 colours, we do however only use the top 240
-colours; this is because the lower 16 colours are usually, in contrast to the top 240,
-customised. We assume that the top 240 colours have their standard values. In TTY with
-KMS support we dot have any actual limit (except for @math{2^{24}} + full
-transparency.)
-
-@pindex xterm
-@pindex urxvt
-@pindex putty
-@pindex rxvt
-@pindex mrxvt
-@pindex Eterm
-@pindex aterm
-@command{ponysay} works perfectly on @command{xterm}, @command{urxvt} and
-@command{putty}, but @command{rxvt}, @command{mrxvt} and @command{Eterm} do not have
-UTF-8 support and are currently not supported. Additionally @command{aterm} have
-neither UTF-8 support nor 256 colour support, and is therefore not yet supported.
-
-@pindex 9term
-Due to extreme limitations in @command{9term} @command{ponysay} will never be able to
-run on it.
-
-
-@node Cowsay
-@section Cowsay
-@pindex @command{cowsay}
-
-This section describes the limitation of @command{cowsay}, but since version 2.1
-@command{cowsay} is no longer used because of it. So none of the following limitations
-are present anymore.
-
-When @command{cowsay} determines the length of a word it measures in number of bytes
-(in UTF-8), therefore non-ASCII words will malformat the balloon with the message.
-
-Further, @command{cowsay} does not recognise ANSI escape sequences, therefore, using
-colours and text styling in messages will also malformat the balloon with the message.
-
-@command{cowsay} does not support balloon, including the link between the message and
-the pony, customisation, other than using @command{cowthink}. However you can modify
-@command{cowsay} (written Perl, so you can edit the installed files) to make the
-balloon look different, maybe using box drawing characters.
-
-@command{cowsay} does not support setting the minimum size of the balloon, both
-directions on the balloon–pony links. or any other placement of the balloon than at
-the top to the left.
-
-
-
-@node Problems and requests
-@chapter Problems and requests
-
-@menu
-* Problems:: Reporting bugs.
-* Requests:: Requesting ponies.
-@end menu
-
-
-@node Problems
-@section Reporting bugs
-@cindex bugs
-
-If you find a bug in @command{ponysay}, install the last version
-from @url{https://github.com/erkin/ponysay}, and if it is still
-present, please report it at @url{https://github.com/erkin/ponysay/issues}.
-Please be as descriptive as possible, as it will help us verify it
-solve it faster.
-
-
-@node Requests
-@section Requesting ponies
-@cindex pony requests
-
-If you want I specific pony added, ask us at
-@url{https://github.com/erkin/ponysay/issues} and we will add it.
-To speed the up the process, if possible, supply good pictures. Full visibly,
-transparent background, and pixelated are the properties that makes a picture good.
-
-
-
-@node Dependencies
-@chapter Dependencies
-@cindex dependencies
-@cindex optional dependencies
-
-We have provided a script that should run one most, if not all shells, named
-@file{./dependency-test.sh} that will help you track down any missing package.
-
-@menu
-* Required runtime dependencies:: Required runtime dependencies.
-* Optional runtime dependencies:: Optional runtime dependencies.
-* Package building dependencies:: Package building dependencies.
-* Dependencies for pony providers:: Dependencies for pony providers.
-@end menu
-
-
-@node Required runtime dependencies
-@section Required runtime dependencies
-
-@table @command
-@item coreutils
-@command{stty} is used to determine the size of the terminal.
-@item python>=3@footnote{Sometimes distributed as @command{python3} rather than @command{python}.}
-@command{ponysay} is written in pure Python 3.
-@end table
-
-@node Optional runtime dependencies
-@section Optional runtime dependencies
-@cindex extensions
-@cindex optional dependencies
-
-@table @command
-@item util-say>=2
-@pindex @command{util-say}
-@cindex kms
-@cindex tty
-@pindex linux vt
-For improved TTY support for user with custom colour palette and KMS support.
-It can be downloaded at @url{https://github.com/maandree/util-say}. If this is
-used @command{chmod} from @command{coreutils} is also required.
-
-
-@cindex .png
-@cindex png images
-@cindex images, png
-@cindex portable network graphics
-For the purpose of simplifying for pony contributors, @command{ponysay} supports
-using .png-images (note that the file must not miss the @file{.png} at the end of
-the file name) in addition to .pony-files or pony names.
-@end table
-
-
-@node Package building dependencies
-@section Package building dependencies
-
-@table @command
-@item python>=3@footnote{Sometimes distributed as @command{python3} rather than @command{python}.}
-@pindex @command{python}
-@pindex @command{python3}
-Required to run the @file{./setup.py} file, which is also invoked from the
-make script.
-@item gzip
-@pindex @command{gzip}
-Used for compressing manuals. (Optional, standard)
-@item xz
-@pindex @command{xz}
-Used for compressing manuals. (Optional, non-standard)
-@item texinfo
-@pindex @command{texinfo}
-@pindex @command{info}
-@pindex @command{install-info}
-Used to compile this @command{info} manual. (Optional, standard)
-@item info@footnote{Normally a part of @command{texinfo}.}
-Used to install this @command{info} manual with @command{install-info}.
-(Optional, standard)
-@end table
-
-
-@node Dependencies for pony providers
-@section Dependencies for pony providers
-@cindex contributing
-
-@table @command
-@item bash
-@pindex @command{bash}
-Required to run @command{dev/dist.sh}.
-@item coreutils
-@pindex @command{coreutils}
-@command{ln} and @command{readlink} are used in the @command{ttyponies} subscript
-of @command{dev/dist.sh}.
-@item util-say>=2
-Used by @command{dev/dist.sh ttyponies} to build ttyponies from xterm ponies.
-It can be downloaded at @url{https://github.com/maandree/util-say}.
-@end table
-
-
-
-@node Installing
-@chapter Installing
-@cindex installing
-@pindex @command{make}
-
-@menu
-* From upstream:: Installing manually from upstream (GitHub repository).
-* Package repositories:: Packages distributed in OS package repositories.
-* Uninstalling:: Uninstalling when installed manually.
-@end menu
-
-
-@node From upstream
-@section From upstream
-@cindex upstream installation
-
-@menu
-* Installations basics:: The basics of installations.
-* Custom installations:: Installation customisation.
-@end menu
-
-@node Installations basics
-@subsection Installations basics
-@cindex @file{setup.py}
-@pindex @command{./setup.py}
-@pindex @command{make}
-@cindex basic installation
-
-
-Before installing @command{ponysay}, make sure your system have the packages listed
-under @ref{Required runtime dependencies} and @ref{Package building dependencies}
-installed.
-
-Tarballs can be downloaded at @url{https://github.com/erkin/ponysay/tarball/master}
-for bleeding edge, or from @url{https://github.com/erkin/ponysay/tags} for releases.
-
-If you have @command{git} you can @command{clone} the project URL
-@url{https://github.com/erkin/ponysay.git}.
-
-In the terminal, @command{cd} into the ponysay directory and execute
-@command{./setup.py install} or @command{python3 setup.py install}. This will install
-@command{ponysay} into @file{/usr}, normally meaning you need to run as root, e.g. by
-running @command{sudo ./setup.py install}.
-
-Now you will be to use ponysay, run: @command{ponysay "I am just the cutest pony!"},
-or if have a specific pony in your mind: @command{ponysay -f pinkie "Partay!~"}.
-
-@cindex manpage translations
-@command{ponysay} comes with this @command{info} manual and a manpage in section 6,
-@command{man 6 ponysay} (or just @command{man ponysay}). The manpage is also available
-in Spanish: @command{man -L es 6 ponysay}. To install the Spanish manual add the
-option @option{--with-man-es} when running @command{./setup.py}.
-
-
-
-@node Custom installations
-@subsection Custom installations
-@cindex customised installations
-@cindex installation customisation
-@cindex @file{setup.py}
-@pindex @command{./setup.py}
-@pindex @command{./configure}
-@pindex @command{make}
-@cindex configure
-
-With the exception for with @option{--with-everything} and @option{--with-nothing},
-every option that starts with @option{--with-} or @option{--without-} exists in both
-variants. @option{--with-} options install parts of the package. @option{--without-}
-options skips installation of parts of the packages. With the same exception,
-@option{--without-} options take not arguments and @option{--with-} optionally takes
-an argument, if no argument is provided a default argument is implied.
-
-The configuration script recognised the following options, the default values for
-options with arguments are written after the equality sign (@code{=}) in the option:
-
-@table @option
-@item --everything
-@itemx --with-everything
-@opindex @option{--everything}
-@opindex @option{--with-everything}
-Install everything that is not explicity excluded.
-
-@item --minimal
-@opindex @option{--minimal}
-Install only the essentials. Note that this can vary depending on version. Currently
-this means that the commands, xterm ponies and legal documents is installed.
-
-@item --nothing
-@itemx --with-nothing
-@opindex @option{--nothing}
-@opindex @option{--with-nothing}
-Install nothing, except legal documents, that is not explicity included.
-
-@item --with-ponysay
-@itemx --with-ponysay-command=/usr/bin/ponysay
-@opindex @option{--with-ponysay}
-@opindex @option{--without-ponysay}
-@opindex @option{--with-ponysay-command}
-@opindex @option{--without-ponysay-command}
-Install the ponysay command, and set file name. (Default)
-
-@item --with-ponythink
-@itemx --with-ponythink-command=/usr/bin/ponythink
-@opindex @option{--with-ponythink}
-@opindex @option{--without-ponytink}
-@opindex @option{--with-ponythink-command}
-@opindex @option{--without-ponytink-command}
-Install the ponythink command, and set file name. (Default)
-
-@item --with-shared-cache=/var/cache/ponysay
-@opindex @option{--with-shared-cache}
-@opindex @option{--without-shared-cache}
-Install a user shared cache, this is only used by KMS ponies so far. (Default)
-
-@item --with-bash
-@item --with-bash-completion=/usr/share/bash-completion/completions/ponysay
-@opindex @option{--with-bash}
-@opindex @option{--without-bash}
-@opindex @option{--with-bash-completion}
-@opindex @option{--without-bash-completion}
-Install auto-completion for installed commands in GNU Bash. Select the file name
-for the installed script for the ponysay command, the other commands modifies this
-file name. (Default)
-
-@item --with-fish
-@itemx --with-fish-completion=/usr/share/fish/completions/ponysay.fish
-@opindex @option{--with-fish}
-@opindex @option{--without-fish}
-@opindex @option{--with-fish-completion}
-@opindex @option{--without-fish-completion}
-Install auto-completion for installed commands in Friendly interactive shell.
-Select the file name for the installed script for the ponysay command, the other
-commands modifies this file name. (Default)
-
-@item --with-zsh
-@itemx --with-zsh-completion=/usr/share/zsh/site-functions/_ponysay
-@opindex @option{--with-zsh}
-@opindex @option{--without-zsh}
-@opindex @option{--with-zsh-completion}
-@opindex @option{--without-zsh-completion}
-Install auto-completion for installed commands in the zsh shell.
-Select the file name for the installed script for the ponysay command, the other
-commands modifies this file name. (Default)
-
-@item --with-shell
-@itemx --with-shell-completion=/usr/share
-@opindex @option{--with-shell}
-@opindex @option{--without-shell}
-@opindex @option{--with-bash}
-@opindex @option{--without-bash}
-@opindex @option{--with-fish}
-@opindex @option{--without-fish}
-@opindex @option{--with-zsh}
-@opindex @option{--without-zsh}
-@opindex @option{--with-shell-completion}
-@opindex @option{--without-shell-completion}
-@opindex @option{--with-bash-completion}
-@opindex @option{--without-bash-completion}
-@opindex @option{--with-fish-completion}
-@opindex @option{--without-fish-completion}
-@opindex @option{--with-zsh-completion}
-@opindex @option{--without-zsh-completion}
-Macro for @option{--with-bash}, @option{--with-fish} and @option{--with-zsh}.
-The argument is the used share/ directory that all shells have in common.
-
-@item --with-pdf
-@itemx --with-pdf-manual=/usr/doc
-@opindex @option{--with-pdf}
-@opindex @option{--without-pdf}
-@opindex @option{--with-pdf-manual}
-@opindex @option{--without-pdf-manual}
-Install PDF manual, and select directory for it.
-
-@item --with-pdf-compression
-@itemx --with-pdf-manual-compression=gz
-@opindex @option{--with-pdf}
-@opindex @option{--with-pdf-manual}
-@opindex @option{--with-pdf-compression}
-@opindex @option{--without-pdf-compression}
-@opindex @option{--with-pdf-manual-compression}
-@opindex @option{--without-pdf-manual-compression}
-Compress PDF manual, select compression by file name extension. This option
-does not imply @option{--with-pdf}. (Default)
-
-@item --with-info
-@itemx --with-info-manual=/usr/share/info
-@opindex @option{--with-info}
-@opindex @option{--without-info}
-@opindex @option{--with-info-manual}
-@opindex @option{--without-info-manual}
-Install @command{info} manual, and select directory for it. (Default)
-
-@item --with-info-install
-@itemx --with-info-manual-install=My Little Ponies for your terminal
-@opindex @option{--with-info-install}
-@opindex @option{--without-info-install}
-@opindex @option{--with-info-manual-install}
-@opindex @option{--without-info-manual-install}
-Use @command{install-info} when installing @command{info} manual. Set the
-description for the manual. This option does not imply @option{--with-info}. (Default)
-
-@item --with-info-compression
-@itemx --with-info-manual-compression=gz
-@opindex @option{--with-info}
-@opindex @option{--with-info-compression}
-@opindex @option{--without-info-compression}
-@opindex @option{--with-info-manual}
-@opindex @option{--with-info-manual-compression}
-@opindex @option{--without-info-manual-compression}
-Compress @command{info} manual, select compression by file name extension.
-This option does not imply @option{--with-info}. (Default)
-
-@item --with-man-en
-@itemx --with-manpage-en
-@itemx --with-man-manual-en
-@itemx --with-en-man
-@itemx --with-en-manpage
-@itemx --with-en-man-manual=/usr/share/man
-@opindex @option{--with-man-en}
-@opindex @option{--without-man-en}
-@opindex @option{--with-manpage-en}
-@opindex @option{--without-manpage-en}
-@opindex @option{--with-man-manual-en}
-@opindex @option{--without-man-manual-en}
-@opindex @option{--with-en-man}
-@opindex @option{--without-en-man}
-@opindex @option{--with-en-manpage}
-@opindex @option{--without-en-manpage}
-@opindex @option{--with-en-man-manual}
-@opindex @option{--without-en-man-manual}
-Install English @command{man} manual. Set directory for @command{man} manuals.
-(Default)
-
-@item --with-man-es
-@itemx --with-manpage-es
-@itemx --with-man-manual-es
-@itemx --with-es-man
-@itemx --with-es-manpage
-@itemx --with-es-man-manual=/usr/share/man
-@opindex @option{--with-man-es}
-@opindex @option{--without-man-es}
-@opindex @option{--with-manpage-es}
-@opindex @option{--without-manpage-es}
-@opindex @option{--with-man-manual-es}
-@opindex @option{--without-man-manual-es}
-@opindex @option{--with-es-man}
-@opindex @option{--without-es-man}
-@opindex @option{--with-es-manpage}
-@opindex @option{--without-es-manpage}
-@opindex @option{--with-es-man-manual}
-@opindex @option{--without-es-man-manual}
-Install Spanish @command{man} manual. Set directory for @command{man} manuals.
-
-@item --with-man
-@itemx --with-manpage
-@itemx --with-man-manual
-@opindex @option{--with-man}
-@opindex @option{--without-man}
-@opindex @option{--with-manpage}
-@opindex @option{--without-manpage}
-@opindex @option{--with-man-manual}
-@opindex @option{--without-man-manual}
-Macro for all @option{--with-man-LANG}.
-
-@item --with-man-en-compression
-@itemx --with-manpage-en-compression
-@itemx --with-man-manual-en-compression
-@itemx --with-en-man-compression
-@itemx --with-en-manpage-compression
-@itemx --with-en-man-manual-compression=gz
-@opindex @option{--with-man-en-compression}
-@opindex @option{--without-man-en-compression}
-@opindex @option{--with-manpage-en-compression}
-@opindex @option{--without-manpage-en-compression}
-@opindex @option{--with-man-manual-en-compression}
-@opindex @option{--without-man-manual-en-compression}
-@opindex @option{--with-en-man-compression}
-@opindex @option{--without-en-man-compression}
-@opindex @option{--with-en-manpage-compression}
-@opindex @option{--without-en-manpage-compression}
-@opindex @option{--with-en-man-manual-compression}
-@opindex @option{--without-en-man-manual-compression}
-Compress English @command{man} manual, select compression by file name extension.
-This option does not imply @option{--with-man-en}. (Default)
-
-@item --with-man-es-compression
-@itemx --with-manpage-es-compression
-@itemx --with-man-manual-es-compression
-@itemx --with-es-man-compression
-@itemx --with-es-manpage-compression
-@itemx --with-es-man-manual-compression=gz
-@opindex @option{--with-man-es-compression}
-@opindex @option{--without-man-es-compression}
-@opindex @option{--with-manpage-es-compression}
-@opindex @option{--without-manpage-es-compression}
-@opindex @option{--with-man-manual-es-compression}
-@opindex @option{--without-man-manual-es-compression}
-@opindex @option{--with-es-man-compression}
-@opindex @option{--without-es-man-compression}
-@opindex @option{--with-es-manpage-compression}
-@opindex @option{--without-es-manpage-compression}
-@opindex @option{--with-es-man-manual-compression}
-@opindex @option{--without-es-man-manual-compression}
-Compress Spanish @command{man} manual, select compression by file name extension.
-This option does not imply @option{--with-man-es}. (Default)
-
-@item --with-man-compression
-@itemx --with-manpage-compression
-@itemx --with-man-manual-compression
-@opindex @option{--with-man-compression}
-@opindex @option{--without-man-compression}
-@opindex @option{--with-manpage-compression}
-@opindex @option{--without-manpage-compression}
-@opindex @option{--with-man-manual-compression}
-@opindex @option{--without-man-manual-compression}
-Macro for all @option{--with-man-LANG-compression}.
-
-@item --man-section-ponysay
-@itemx --man-sectionpage-ponysay
-@itemx --ponysay-man-section
-@itemx --ponysay-manpage-section=6
-@opindex @option{--man-section-ponysay}
-@opindex @option{--manpage-section-ponysay}
-@opindex @option{--ponysay-man-section}
-@opindex @option{--ponysay-manpage-section}
-Change the section for the @command{ponysay} manpage.
-
-@item --man-section-cowsay
-@itemx --manpage-section-cowsay
-@itemx --cowsay-man-section
-@itemx --cowsay-manpage-section=1
-@opindex @option{--man-section-cowsay}
-@opindex @option{--manpage-section-cowsay}
-@opindex @option{--cowsay-man-section}
-@opindex @option{--cowsay-manpage-section}
-Change the section for the @command{cowsay} manpage.
-
-@item --man-section-fortune
-@itemx --manpage-section-fortune
-@itemx --fortune-man-section
-@itemx --fortune-manpage-section=6
-@opindex @option{--man-section-fortune}
-@opindex @option{--manpage-section-fortune}
-@opindex @option{--fortune-man-section}
-@opindex @option{--fortune-manpage-section}
-Change the section for the @command{fortune} manpage.
-
-@item --with-ponies=/usr/share/ponysay/ponies
-@opindex @option{--with-ponies}
-@opindex @option{--without-ponies}
-Install standard xterm ponies, and select installation directory for them. (Default)
-
-@item --with-ttyponies=/usr/share/ponysay/ttyponies
-@opindex @option{--with-ttyponies}
-@opindex @option{--without-ttyponies}
-Install standard tty ponies, and select installation directory for them. (Default)
-
-@item --with-extraponies=/usr/share/ponysay/extraponies
-@opindex @option{--with-extraponies}
-@opindex @option{--without-extraponies}
-Install extra xterm ponies, and select installation directory for them. (Default)
-
-@item --with-extrattyponies=/usr/share/ponysay/extrattyponies
-@opindex @option{--with-extrattyponies}
-@opindex @option{--without-extrattyponies}
-Install extra tty ponies, and select installation directory for them. (Default)
-
-@item --with-quotes=/usr/share/ponysay/quotes
-@opindex @option{--with-quotes}
-@opindex @option{--without-quotes}
-Install pony quotes, and select installation directory for them. (Default)
-
-@item --with-balloons=/usr/share/ponysay/balloons
-@opindex @option{--with-balloons}
-@opindex @option{--without-balloons}
-Install balloon styles, and select installation directory for them. (Default)
-
-@item --with-ucs
-@itemx --with-ucs-names=/usr/share/ponysay/ucsmap
-@opindex @option{--with-ucs}
-@opindex @option{--without-ucs}
-@opindex @option{--with-ucs-names}
-@opindex @option{--without-ucs-names}
-Install UCS pony names, and select installation file name for the map. (Default)
-
-@item --without-custom-env-python
-@opindex @option{--without-custom-env-python}
-Let the installer set the @command{env} name for @command{python} in @file{ponysay}.
-(Default)
-
-@item --with-custom-env-python=python3
-@opindex @option{--with-custom-env-python}
-Set the @command{env} name for @command{python} in @file{ponysay}.
-
-@item --prefix=/usr
-@opindex @option{--prefix}
-Set a prefix to all implicit directories.
-
-@item --private
-@opindex @option{--private}
-Change all implicit configurations to fit local user a installation
-for the current user.
-
-@item --opt
-@opindex @option{--opt}
-Change all implicit directories to fit installation to @file{/opt}.
-
-@item --bin-dir=/usr/bin
-@opindex @option{--bin-dir}
-Set the system's directory for command executables.
-
-@item --lib-dir=/usr/lib/ponysay
-@opindex @option{--lib-dir}
-Set the system's directory for non-command executables. Currently their
-is not non-executable library, so this options has no effect, but bleeding
-edge distributors should specify it if it differs from prefered.
-
-@item --libexec-dir=/usr/libexec/ponysay
-@opindex @option{--libexec-dir}
-Set the system's directory for non-command executables. Currently their
-is not non-command executables, so this options has no effect, but bleeding
-edge distributors should specify it if it differs from prefered.
-
-@item --share-dir=/usr/share
-@opindex @option{--share-dir}
-Set the system's directory for resource files.
-
-@item --cache-dir=/var/cache
-@opindex @option{--cache-dir}
-Set the system's directory for cache directories.
-
-@item --dest-dir=
-@opindex @option{--dest-dir}
-Set off environment for installation.
-
-@item --linking=symbolic
-@opindex @option{--linking}
-Set how to link identical files. Directories cannot be hard linked on most
-systems, therefore directories or always symbolically linked of hard linked
-is specified.
-Recognised arguments are @code{copy}, @code{hard} and @code{symbolic}.
-@code{copy} implies that files and directories are not linked, but duplicated.
-@command{ponysay -L} will give the same output as @command{ponysay -l} if @code{copy}
-or @code{hard} is used. This is because it does link reading and not content or
-inode comparison.
-@end table
-
-Recognised compressions are @option{gz} which uses @option{gzip -9}, and @option{xz}
-which uses @option{xz -9e}. @option{xz} is still exotic to most programs, using
-it is not recommended. Distributors are strongly disencouraged to compression for the
-PDF manual and should use @option{--without-pdf-compression}.
-
-You can run @command{./setup.py [OPTIONS] view} to make sure everything is correct
-before building and installing.
-
-
-@node Package repositories
-@section Package repositories
-@cindex package repositories
-
-@menu
-* Arch Linux:: Packages for Arch Linux.
-* Arch Linux ARM:: Packages for Arch Linux ARM.
-* Chakra:: Packages for Chakra.
-* Debian GNU/Linux:: Packages for Debian GNU/Linux and Ubuntu.
-* Gentoo Linux:: Packages for Gentoo Linux.
-* Source Mage GNU/Linux:: Packages for Source Mage GNU/Linux.
-@end menu
-
-
-@node Arch Linux
-@subsection Arch Linux
-@cindex arch linux
-
-The official Arch Linux package repositories contains @command{ponysay} as
-@w{@code{community/ponysay}} (developer maintained). The Arch Linux User Repository
-(AUR) contains a bleeding edge git version of @command{ponysay} as
-@w{@code{ponysay-git}} (user maintained).
-
-
-@node Arch Linux ARM
-@subsection Arch Linux ARM
-@cindex arch linux arm
-
-@w{@code{community/ponysay}} from Arch Linux (@ref{Arch Linux}) is also available
-for Arch Linux ARM.
-
-
-@node Chakra
-@subsection Chakra
-@cindex chakra
-
-Chakra users can install from (CCR) a stable version named a @code{ponysay}
-(developer maintained Arch Linux mirror), additionally a git verion of ponysay is
-available as @code{ponysay-git} (developer maintained Arch Linux mirror).
-
-
-@node Debian GNU/Linux
-@subsection Debian GNU/Linux and Ubuntu
-@cindex debian gnu/linux
-@cindex ubuntu
-
-A .deb file is available at @url{http://roryholland.co.uk/misc.html#ponysay}
-(user maintained), and PPA:s can be found at
-@url{https://launchpad.net/~vincent-c/+archive/ppa} (user maintained) and
-@url{https://launchpad.net/~blazemore/+archive/ponysay} (user maintained).
-
-
-@node Gentoo Linux
-@subsection Gentoo Linux
-@cindex gentoo linux
-
-Gentoo users can use the overlay @url{https://github.com/etu/aidstu-overlay}, which
-contains @command{ponysay} as @w{@code{games-misc/ponysay}} (developer maintained).
-
-
-@node Source Mage GNU/Linux
-@subsection Source Mage GNU/Linux
-@cindex source mage gnu/linux
-
-The spell @w{@code{util/ponysay}} (user maintained) is available in Grimoire for
-Source Mage @w{GNU/Linux}.
-
-
-@node Uninstalling
-@section Uninstalling
-@cindex uninstalling
-
-If you did not install @command{ponysay} with a package manager, but rather
-manually from the upstream, you can uninstall it by running @command{make uninstall}.
-
-Well written package manages will uninstall files that the package is no longer
-using, i.e. if deleted, moved or renamed. To uninstall files that are not longer
-used, by the currently installed version you will need that versions @file{Makefile}.
-To perform an uninstallation of old files run @command{make uninstall-old}.
-
-
-
-@node Inner workings
-@chapter Inner workings
-@cindex inner workings
-@cindex hacking
-
-@menu
-* Pony anatomy:: Anatomy of pony files.
-* Pony quote infrastructure:: Pony quote infrastructure.
-* Balloon style files:: Balloon style files.
-* Printing in TTY with KMS:: Printing in TTY with KMS support.
-* Truncation:: Output truncation.
-* Languages:: Selection of programming languages.
-* Shell auto-completion:: Things that make auto-completion simpler.
-* Universal Character Set:: Something about Universal Character Set support.
-@end menu
-
-
-@node Pony anatomy
-@section Pony anatomy
-@cindex pony anatomy
-@cindex anatomy of pony files
-
-The pony files are simple raw output data that can be printed to the terminal,
-except it contains scalar variables. The pony images consists of white space, lower
-half blocks [U+2584], upper half blocks [U+2580] and ANSI colour sequences (CSI m),
-and, in TTY, colour value change sequences (OSI P).
-
-Variables are recalled by putting the variable's name between two dollar signs
-(@code{$var$}), and are stored by putting the variable's name followed by the value
-between two dollar signs and with a equality sign between the name and the value
-(@code{$var=value$}). Variable names cannot include equality signs, but the value
-can; dollar signs can be used by placing an ESC character before the dollar sign.
-
-There are three predefined variables: @code{$$} (empty variable name), @code{$\$}
-and @code{$/$}. @code{$$} has a dollar sign (@code{$}) as its value, while @code{$\$}
-and @code{$/$} contains the characters for the link to the balloon directed in the
-same direction as the variable name's slash.
-
-Variables whose name begin with @code{balloon} are parsed as balloon inserts, it
-can be either @code{balloon}, @code{balloonX}, @code{balloon,Y} or @code{balloonX,Y},
-whether @code{X} is the minimum width of the balloon and @code{Y} is the minimum
-height of the balloon.
-
-Prior to version 2.1 the pony files were cow files used by @command{cowsay}, they
-are partial Perl-scripts that assign a value to a scalar variable named
-@var{$the_cow}. Cow files use a predefined scalar variable named @code{$thoughts},
-these are used to create a link between the message and the pony. The message (and
-the balloon) itself was printed by @command{cowsay} and is not defined in the cow
-files.
-
-
-@node Pony quote infrastructure
-@section Pony quote infrastructure
-@cindex pony quote infrastructure
-@cindex quote infrastructure
-
-When compiling, pony quotes are built to @file{quotes/}, the file names are lists
-of ponies joined with plus signs (@code{+}) -- the pony names are the same as the
-pony files, except they do not end with @file{.pony} -- with a index at the end,
-and a full stop (@code{.}) before the index.
-
-The source files are located in @file{ponyquotes/}, where their is a file named
-@file{ponies}. This file is called the pony map, and is the basis for how the
-compiled files are named. In the ponymap ponies with the same quotes are on the
-same line join together with plus signs (@code{+}), if the lines because too long
-for file names the line is split into multiple lines with the first pony in common.
-
-In @file{ponyquotes/} there are also quote files, each contain just one quote, just
-as when compiled to @file{quotes/}. The source quote files are identical to the
-compiled quote files, except that their name contains just the first pony.
-
-
-@node Balloon style files
-@section Balloon style files
-@cindex balloon style files
-@cindex bubble style files
-@pindex ponythink
-
-Balloon style files are located in the directory @file{balloons/}, the ones ending
-with @file{.say} applies to @command{ponysay} and the ones ending with @file{.think}
-applies to @command{ponythink}.
-
-Balloon style consists of 20 strings. Each string is defined on separate lines, by
-their name and their value separated with a colon (@code{name:value}), if the name is
-empty it continues the last one on a new line in the value. Only 10 of the strings
-may be multi-lined: @var{nw}, @var{nnw}, @var{n}, @var{nne}, @var{ne}, @var{sw},
-@var{ssw}, @var{s}, @var{sse} and @var{se}.
-
-The following strings are used, and must be defined in the files:
-@table @var
-@item \
-The character for the link to the balloon directed as @code{\}.
-@item /
-The character for the link to the balloon directed as @code{/}.
-@item ww
-The beginning of the balloon's line where the message is located if and only if the
-message contains only one line.
-@item ee
-The end of the balloon's line where the message is located if and only if the message
-contains only one line.
-@item nw
-The top left corner of the balloon.
-@item nnw
-If both this string and the @var{nne} string fits between the top corners, this is
-printed directly to the right of the top left corner.
-@item n
-The top edge of the balloon.
-@item nne
-If both this string and the @var{nnw} string fits between the top corners, this is
-printed directly to the right of the top left corner.
-@item ne
-The top right corner of the balloon.
-@item nee
-The end of the balloon's line where the message's first line is located if and only
-if the message contains more than one line.
-@item e
-The right edge of the balloon.
-@item see
-The end of the balloon's line where the message's last line is located if and only
-if the message contains more than one line.
-@item se
-The bottom right corner of the balloon.
-@item sse
-If both this string and the @var{ssw} string fits between the bottom corners, this
-is printed directly to the left of the bottom right corner.
-@item s
-The bottom edge of the balloon.
-@item ssw
-If both this string and the @var{sse} string fits between the bottom corners, this
-is printed directly to the right of the bottom left corner.
-@item sw
-The bottom left corner of the balloon.
-@item sww
-The beginning of the balloon's line where the message's last line is located if and
-only if the message contains more than one line.
-@item w
-The left edge of the balloon.
-@item nww
-The beginning of the balloon's line where the message's first line is located if and
-only if the message contains more than one line.
-@end table
-
-
-@node Printing in TTY with KMS
-@section Printing in TTY with KMS
-@cindex tty
-@pindex linux vt
-@cindex clearing tty
-@cindex kms
-@cindex kernel mode setting
-
-Since Linux VT (TTY) does not have capabilities for returning the position of the
-cursor, the screen must always be cleared before printing the ponies to make sure
-the pony's colours is not lost, i.e. reduced to mare 16 colours, during print. The
-colours are reduced if the pony's position on the screen is changed. This is only
-relevant with KMS support. The clear the screen we print ``@code{\e[H\e[2J}''
-(@code{\e} is ESC) in at beginning. ``@code{\e[H}'' places the cursor at the
-beginning of the screen, and ``@code{\e[2J}'' clears everything on the screen after,
-and including at, the cursor. If we would use ``@code{\ec}'' (that is a reset),
-we would also turn off num. lock and caps. lock.
-
-
-@node Truncation
-@section Truncation
-@cindex truncation
-@cindex output truncation
-@cindex kms
-@cindex kernel mode setting
-
-Ponysay supports three type of output truncations, cutting away overflow on the right
-and truncation the height by either keeping the bottom or keeping the top. By default
-the latest is enabled under TTY, cutting away overflow on the right is always enabled
-by default.
-
-Truncating the height in TTY is required under Kernel Mode Setting (KMS) support to
-keep the colours from being messed up when the ponies is moved in the screen during
-print. Prior to version 2.0 this was done either by piping to @command{head} (keeps
-the top) or by piping to @command{tail} (keeps the bottom.) @command{head} and
-@command{tail} takes as argument the number of lines to keep at most.
-
-The size of the terminal, measured in characters, is fetched from @command{stty size},
-which returns @code{HEIGHT WIDTH}, and @command{cut} it the used to get either the
-height or the width. This requires only GNU Coreutils; earlier @command{tput rows} and
-@command{tput cols} were used, this however required, the only de facto standard,
-package @command{ncurses}, some shells have environment variables for this.
-
-Since version 2.1 truncation is done internally in the Python script, before that it
-was done in a custom C program @command{truncater}, that was installed to
-@file{/usr/lib/ponysay/truncater}. It recognised UTF-8 ANSI escape sequences,
-including OSI P and CSI m, which is essential for the truncation to be correct. It
-also expands tabs to every eighth column and resets the background colour when needed,
-and writes ANSI escape sequences that are on the left side of the truncation. The
-truncater stops CSI sequences on the first ASCII letter (@code{[a-zA-Z]}), but also
-stops escape sequences after the first character after the initial escape if it is
-not either @code{[} (CSI) or @code{]} (OSI). In the previous, C, program it supported
-UTF-8 by assuming that bytes do not match @code{10xxxxxx} and only those bytes were
-visible. This now fixed internally in Python, but has also been improved to exclude
-combining characters from the set of visible characters. Another difference is that
-the background colours are not reset, instead ANSI colours after the truncation point
-are still printed.
-
-
-@node Languages
-@section Languages
-@cindex languages
-@cindex script languages
-@cindex program languages
-
-Before version 2.0 @command{ponysay} was written primarily in GNU Bash script; the
-truncater was however written in C, because it is simple, fast, does not pose
-addition dependencies, and is easy to do byte hacking in.
-
-Sometimes shell is too slow, in these cases Perl was used; Perl was already required
-by @command{cowsay}, it is also similar to shell, but also supports hash tables.
-
-However since version 2.0 we were trying to move from all there languages and only
-use Python 3, which as been accomplished in version 2.1.
-
-
-@node Shell auto-completion
-@section Shell auto-completion
-@cindex auto-completion, inner workings
-@cindex shell, auto-completion
-@opindex @option{--onelist}
-@opindex @option{++onelist}
-@opindex @option{--quoters}
-
-To make it easier to write auto-completion for shells, @command{ponysay} supports
-the two options @option{--onelist}, @option{++onelist} and @option{--quoters},
-which has no short versions.
-
-Executing @command{ponysay --onelist} will list every available standard (MLP:FiM)
-pony, independent of where it is located, the output is a sorted and consists only
-of one pony per line.
-
-Executing @command{ponysay ++onelist} will list every available extra (non-MLP:FiM)
-pony, independent of where it is located, the output is a sorted and consists only
-of one pony per line.
-
-@command{ponysay --quoters} work just as @command{ponysay --onelist}, excepts
-it limits the ponies to those that have quotes. Ponies that have quotes,
-but does not exist, i.e. does not have a .pony-file, are not listed.
-
-Auto-completion scripts should not suggest these options.
-
-
-@node Universal Character Set
-@section Universal Character Set
-@cindex universal character set
-@cindex ucs
-@cindex unicode
-@cindex pony names
-
-In earlier versions of @command{ponysay} only the output truncation supported
-Universal Character Set, though handcoded UTF-8 character counting. Now
-@command{ponysay} lets Python decode the data, Python store all 31 bits of a
-character in as one character, not in UTF-16 as some other languages does, this
-means that the code is agnostic to the character encoding. However in Unicode
-6.1 their are four ranges of combining characters, these do not take up any
-width in proper terminal, we therefore have a class in the code named @code{UCS}
-that help us take them into consideration when determine the length of a string.
-
-Some ponies have names that contain non-ASCII characters, read about it in
-@ref{Environment variables}. The UCS names are stored in the file @file{share/ucsmap},
-in it lines that are not empty and does not start with a hash (@code{#}) are
-parsed, and contains a UCS name and a ASCII:ised name. The UCS name comes first,
-followed by the ASCII:ised name that the UCS name should replace or link towards.
-The two names are separated by and simple left to right arrow character [U+2192],
-optionally with surrounding white space.
-
-
-
-@node Contributing
-@chapter Contributing
-@cindex contributing
-
-@menu
-* Providing ponies:: Providing ponies.
-@end menu
-
-@node Providing ponies
-@section Providing ponies
-@cindex create pony file
-
-Most pony images are browser ponies or desktop ponies, browser ponies is a port of
-desktop ponies, implementing it in JavaScript. Browser ponies are available at
-@url{https://github.com/panzi/Browser-Ponies}. Desktop ponies are available at
-@url{http://desktop-pony-team.deviantart.com/}.
-
-There is also a collection of ponies that are not yet pixelated in a Java
-reimplementation of the early Ponysay:
-@url{https://github.com/maandree/unisay/tree/develop/dev/newponies}
-
-There is a checklist named @file{pony-checklist} at the @file{dev/} directory. You
-can use the check which ponies are added and which are not. Please update it when fit.
-@*
-
-New ponies can be created from regular images by using util-say, which is available
-at @url{https://github.com/maandree/util-say}.
-Prior to version 2.1 of @command{ponysay}, @command{img2xterm} could be used, by since
-version 2.1 @command{ponysay} is using a new format that only util-say supports.
-@command{img2xterm} (@url{https://github.com/rossy2401/img2xterm}) was used in the
-early stage, but util-say tries to optimise the images in some aspects: as good as
-possible for low capability terminals, tries to place the pony–balloon link, displayed
-as good as possible when marked in the terminal (somewhat compromised by the first
-aspect,) and same width on all rows.
-
-Using util-say:
-@pindex util-say
-@pindex @command{img2ponysay}
-@cartouche
-@example
-@code{img2ponysay -2 -- SOURCE_IMAGE > PONY_FILE}
-
-@code{PONY_FILE} should end with @file{.pony} and be localed in @file{ponies/},
-or @file{extraponies/} if the pony is not a MLP:FiM pony.
-
-Omit @option{-2} if the source image does not use double pixel size.
-
-For more information see:
-@url{https://github.com/maandree/util-say/wiki/img2ponysay}
-@end example
-@end cartouche
-
-@*
-@pindex util-say
-@cindex .png
-@cindex png images
-@cindex images, png
-@cindex portable network graphics
-If you have util-say installed, which is required to build ponies, you can use PNG
-files as argument the for @command{ponysay -f}, this requires that the file is named
-@file{.png} at the end.
-
-@cindex palette
-@cindex xterm palette
-@cindex pony palette
-@cindex colour palette
-The following @command{bash} code will print the palette the ponies (the terminals)
-use:
-@cartouche
-@example
-c=16
-while ((c < 256)); do
- echo -en "\e[48;5;$@{c@}m \e[49m"
- c=$(( $c + 1 ))
- if (( $(( c % 36 )) == 16 )); then
- echo
- fi
-done; echo
-@end example
-@end cartouche
-
-@*
-For the palette to be correct, which is especially important when you draw ponies, you
-must not redefine the colours in the range 16 to 255 (inclusive).
-
-@cindex ttypony
-When a pony is added please also add a ttypony version, i.e. the pony files used in
-TTY, but if you don't please state so in the pull request so we do not miss the
-create it; the simplest way to do this is to run @command{dev/dist.sh ttyponies} after
-adding the ponies to @file{ponies/}, running @command{dev/dist.sh ttyponies} will build
-(or rebuild) all ttyponies with a pony present in @file{ponies/}, and creates all
-needed symlinks.
-
-To be able to run @command{dev/dist.sh ttyponies} you must have the packages listed under
-@ref{Dependencies for pony providers}.
-
-@cindex ponyquotes
-@cindex quotes
-Also when adding new ponies, please map them up in the file @file{ponyquotes/ponies}.
-If the pony is a new pony without any other alternative image just add it to a new
-line, without @file{.pony}, preferably in its alphabetical position. If the file is
-a symlink add it to the same line as the target pony, and if the pony has and
-alternative image add it the the same line as that pony. Ponies on the same line are
-separated with a plus sign (@code{+}) without any white space. When a line is too
-long for a file name (this has happened to Pinkie Pie [@file{pinkie}],) it must be
-split into multiple lines, these lines should have their first pony file in common.
-
-
-
-@node Distributing
-@chapter Distributing
-@cindex distributing ponysay
-@cindex package maintaining
-@cindex OS package maintaining
-@cindex maintaining OS package
-@cindex fhs
-@cindex filesystem hierarchy standard
-
-If you are planning on maintaining @command{ponysay} in your favourite operating
-system you should first read @ref{Required runtime dependencies} and
-@ref{Optional runtime dependencies}. If your OS does not follow Filesystem Hierarchy
-Standard (FHS), e.g. installing amusement binaries in @file{/usr/games} instead of
-@file{/usr/bin} or only supporting @file{/opt} equivalent directories you should
-read about configurations in @ref{Custom installations}.
-
-Apart from this, you should configure @command{ponysay} before building it with the
-option @option{--everything}. Otherwise only the @command{info} manual and the
-English manpage will be installed for documentation.
-
-Please inform us about your distribution so we can list it so everypony can see it.
-
-@*
-The following is a reference distribution written in Arch Linux's PKGBUILD format.
-It is not complete, proper, verbose enough or well written, it just contains the
-core of an stable @command{git} distribution.
-
-@cartouche
-@example
-pkgname=ponysay
-pkgver=2.5
-pkgrel=1
-arch=(any)
-pkgdesc="Cowsay reimplementation for ponies"
-url="https://github.com/erkin/ponysay"
-license=(WTFPL "GNU FDL v1.3")
-depends=(python>=3 coreutils)
-optdepends=("util-say>=2: Improved TTY support with KMS and PNG files")
-makedepends=(git texinfo info gzip python>=3)
-
-build()
-@{ cd "$srcdir"; git clone git://github.com/erkin/ponysay.git ponysay
- cd ponysay ; git checkout "$pkgver"
-
- ./setup.py --everything --without-pdf-compression \
- --bin-dir=/usr/bin --dest-dir="$pkgdir" build
-@}
-
-package()
-@{ cd "$srcdir/ponysay"; ./setup.py prebuilt
-@}
-@end example
-@end cartouche
-
-
-
-@node Terminology
-@chapter Terminology
-@cindex terminology
-
-@table @i
-@item MLP:FiM
-@cindex MLP:FiM
-The television show My Little Pony: Friendship is Magic.
-
-@item My Little Pony
-@cindex my little pony
-The successor to My Pretty Pony, the toy not the short story by Stephen King.
-
-@item TTY
-@itemx Linux VT
-@cindex tty
-@pindex linux vt
-Linux's native terminal emulator. The name TTY comes from the file names for the
-devices used for terminals by Linux VT, which is @file{/dev/tty*}.
-
-@item KMS
-@itemx Kernel Mode Setting
-@cindex kms
-@cindex kernel mode setting
-A feature in Linux allowing mode setting in kernel-space, this gives the TTY,
-for example better colour support. I would go to Wikipedia for more information.
-
-@item ttyponies
-@cindex ttyponies
-Pony files used in TTY.
-
-@item kmsponies
-@cindex kmsponies
-Pony files generated for use in TTY with custom TTY colour palette and KMS support.
-
-@item extraponies
-@itemx extra ponies
-@cindex extraponies
-@cindex extra ponies
-Pony files of ponies that are not a part of MLP:FiM.
-@item standard ponies
-@cindex standard ponies
-
-Pony files of ponies that are a part of MLP:FiM.
-@item systemponies
-@itemx sysponies
-@cindex systemponies
-@cindex sysponies
-Pony files located in @file{/usr/share/ponysay}.
-
-@item homeponies
-@itemx usrponies
-@cindex homeponies
-@cindex usrponies
-Pony files located in @file{~/.local/share/ponysay}.
-
-@item browser ponies
-@cindex browser ponies
-@cindex desktop ponies
-A JavaScript program which is the source for most of our ponies. It is a port of
-@i{desktop ponies}.
-
-@item ponification
-@cindex ponification
-The process of converting English text to Equestrian English.
-
-@item Equestrian English
-@cindex Equestrian English
-The English dialect spoken by the ponies in MLP:FiM, the basic role is that it
-is American English with as many words and parts of words as possible exchanged
-to words having to do with ponies, including the work `pony' itself. This is
-normally the language we, the developers, write in, except we may use another
-English, e.g. British English, as the base language.
-
-@item best.pony
-@cindex best.pony
-The pony you think is [the] best pony. It should be a symlink pony. It is a feature
-affecting the @option{-f}, @option{-F} and @option{-q} options.
-
-@item pony symlink
-@itemx symlink pony
-@cindex pony symlink
-@cindex symlink pony
-A pony file that is a symbolic link to another pony file. Symbolic links can be
-created with the command @command{ln -s TARGET SYMLINK}.
-
-@item ponyquotes
-@cindex ponyquotes
-A feature enabling ponies to quote them self from MLP:FiM.
-
-@item environment variables
-@cindex environment variables
-Variables stored to the environment with the command @command{export VARIABLE=VALUE}.
-The variable name is often written with the prefix @code{$} due to have they are read
-in shell, using the command @command{echo $VARIABLE}.
-
-@item UCS
-@itemx Universal Character Set
-@cindex ucs
-@cindex universal character set
-The set of of character, develop by the Unicode Consortium. It defined a partially filled
-space of @math{2^{31}} characters, some of which are not glyphs.
-
-@item combining characters
-@cindex combining characters
-Character that have zero width and is used to compose characters with diacritical when
-there is no precomposed character to use.
-
-@item ASCII
-@itemx ASCII character
-@cindex ascii
-@cindex character
-American Standard Code for Information Interchange (ASCII) defines 128 characters, some
-are not glyphs. It contains control characters, basic punctuation, the decimal digit,
-and lower case and upper case English alphabet characters @code{a-z}.
-
-@item short options
-@cindex short options
-Command line arguments starting with either exactly one hyphen (@code{-}) or exactly one
-plus sign (@code{+}), and have exactly one character beyond that. They may be argumentless,
-argumented, optionally argumented, or variadic (consumes all following arguments).
-
-@item long options
-@cindex long options
-Command line arguments starting with either at least two hyphens (@code{-}) or at least two
-plus signs (@code{+}), beyond that they have at least one character, but often at least one
-work. They by be argumentless, argumented, optionally argumented, or variadic (consumes all
-following arguments).
-
-@item completion
-@itemx auto-completion
-@itemx shell completion
-@itemx shell auto-completion
-@cindex completion
-@cindex auto-completion
-@cindex shell completion
-@cindex shell auto-completion
-Provided by a shell dependent script, argument suggestion is provided of then by pressing
-the tab key.
-
-@item ANSI escape sequences
-@itemx escape sequences
-@cindex ANSI escape sequences
-@cindex escape sequences
-Character sequences starting with a ESC character, with a special interpretation for terminals
-standardise by ANSI.
-
-@item ANSI colour sequences
-@itemx ANSI colours
-@itemx colour sequences
-@cindex ANSI colour sequences
-@cindex ANSI colours
-@cindex colour sequences
-ANSI escape sequences defining a colour or other formatting, known as CSI m, a sequence starting
-with CSI and ending with an @code{m}. This is extended to 256 colours, from 16 colours, by
-@command{xterm} which is de facto standardise.
-
-@item CSI
-@cindex CSI
-The character combination ESC followed by @code{[}, used in standardised ANSI escape sequences.
-
-@item OSI
-@cindex OSI
-The character combination ESC followed by @code{]}, used in non-standardised ANSI escape
-sequences.
-@end table
-
-
-
-@node Change log
-@appendix Change log
-@cindex change log
-@cindex versions
-@cindex previous releases
-
-@heading Version 2.9.1
-@itemize @bullet
-@item
-Bug fix: correction in the -W option broke the -o option.
-@end itemize
-
-
-@heading Version 2.9
-@itemize @bullet
-New ponies: @file{pinkieumbrelahatfear}, @file{twilighttime}
-@item
-New extraponies: @file{molestia} (Tumblr)
-@item
-The option @option{-q} works like @option{-f} and @option{-F}, it takes one argument, and
-may be used multiple times for more arguments.
-@item
-The old option @option{-q} is renamed to @option{--q}.
-@item
-The options @option{--f} and @option{--F} has been added.
-@item
-Weighted distance for autocorrection on pony names and boolean style name is set to 5, rather
-than unlimited. Currently this cannot be modified (without editing the source code.)
-@item
-If file descriptor 3 is definied when @command{ponysay} is executed, extra information is
-printed to it.
-@item
-Arguments starting with @code{n} or @code{i} is allowed for @option{-W}.
-@end itemize
-
-
-@heading Version 2.8
-@itemize @bullet
-@item
-New ponies: @file{airheart}, @file{bastionyorsets}, @file{gustavelegrand}, @file{milkyway},
-@file{peppermoon}, @file{pinkacopter}, @file{pinkiefly}, @file{pinkieparade},
-@file{pinkieumbrellahat}, @file{shiningarmorwedding}, @file{soaringofficer},
-@file{starlight}, @file{sunnyrays}, @file{sweatiesing}, @file{tenderheart}, @file{tom},
-@file{twilightspike}, @file{zecorabalance}
-@item
-New extraponies: @file{applejack} (Tumblr), @file{applejack-63}, @file{artemis}, @file{blueberry},
-@file{butterscotch}, @file{drhoovesdiscorded} (Tumblr), @file{duskshine}, @file{elusive},
-@file{rainbowblitz}
-@item
-Pony symlink added:
-@itemize @bullet
-@item @file{georgewashingtony} @arrow{} @file{bastionyorsets}
-@end itemize
-@item
-Support for explicit hyphenation using soft hyphens had been added to the word wrapper.
-@item
-Support for explicit non-word wrapping using non-breaking space had been added to the word wrapper.
-@item
-The word wrapper colours the inserted hyphens in red.
-@item
-Support for terminal capabilities emulation with the flags @option{-X}, @option{-V} and @option{-K}.
-@item
-Support for printing just the pony, using the flag @option{-o}.
-@item
-Colouring option flags are added.
-@item
-Automatic correction of incorrectly spelled pony names and balloon style names added.
-@end itemize
-
-
-@heading Version 2.7
-@itemize @bullet
-@item
-New ponies: @file{basil}, @file{cloudkicker}, @file{cerberus}, @file{cow}, @file{derpysad},
-@file{flowertrio}, @file{frederickhorseshoepin}, @file{horsemd}, @file{jeffletroski},
-@file{jesuspezuna}, @file{joe}, @file{joetuxedo}, @file{manticore},
-@file{meadownsong}, @file{meliot}, @file{pinkiegummydisguise}, @file{seaswirl},
-@file{theodoredonaldkerabatsos}, @file{turf}, @file{waltercoltchak}
-@item
-New extraponies: @file{blueballblitz} (Varous fanfics, Shadowbolt), @file{drhooves1},
-@file{drhooves2}, @file{drhooves3}, @file{drhooves4}, @file{drhooves5}, @file{drhooves6},
-@file{drhooves7}, @file{drhooves8}, @file{drhooves9}, @file{drhooves10}, @file{drhooves11},
-@file{nyx} (Fanfic: Past Sins), @file{nyxdisguised} (Fanfic: Past Sins),
-@file{pinkaminacupcake} (Fanfic)
-@item
-@file{cracky} is renamed to @file{crackle}.
-@end itemize
-
-
-@heading Version 2.6
-
-@itemize @bullet
-@item
-New ponies: @file{applebloomdance}, @file{blueberry}, @file{blueberrycake}, @file{blueharvest},
-@file{candylicious}, @file{cherrycola}, @file{cracky}, @file{cutiemarkcrusaders},
-@file{derpybags}, @file{derpycloud}, @file{firestreak}, @file{hughjelly}, @file{lemonhearts},
-@file{lyrabonbon}, @file{noi}, @file{pictureperfect}, @file{poppycock}, @file{quickfix},
-@file{silverspeed}, @file{rainbowhurricane}, @file{rainbowshadowbolt}, @file{silverspeed},
-@file{surprise} (wonderbolt), @file{thunderlane}, @file{timeturner}, @file{twilightthebearded}
-@item
-New extraponies: @file{faust} (alicorn), @file{maria} (Moonstuck, seapony), @file{posey} (Tumblr),
-@file{slanderpony}, @file{sparkler} (Tumblr), @file{twilight} (Tumblr)
-@item
-Pony symlink added:
-@itemize @bullet
-@item @file{bonbonlyra} @arrow{} @file{lyrabonbon}
-@item @file{epona} @arrow{} @file{quickfix}
-@item @file{clockwork} @arrow{} @file{quickfix}
-@item @file{drhooves} @arrow{} @file{timeturner}
-@item @file{lotusbloosom} @arrow{} @file{lotus}
-@end itemize
-@item
-@file{doctor} and @file{doctornohat} has become extraponies,
-because their mane style is differenct from in the TV show.
-And @file{timeturner} no longer links to any of them.
-@item
-@command{./configure} and @command{make} is no longer support.
-@end itemize
-
-
-@heading Version 2.5.1
-
-@itemize @bullet
-@item
-New extraponies: @file{sealyra}
-@item
-Build system as compatibility with standard GNU Make build system.
-@end itemize
-
-
-@heading Version 2.5
-
-@itemize @bullet
-@item
-Brand new highly configurable build system.
-@item
-UTF-8 as I/O encoding is enforced. (Critical bug fix for ASCII locale users.)
-@end itemize
-
-
-@heading Version 2.4
-
-Nothing worth mentioning.
-
-@b{Note}: Identifies itself as version 2.3
-
-
-@heading Version 2.3
-
-@itemize @bullet
-@item
-Support for @file{best.pony} file.
-@item
-@option{-q} accepts file names.
-@item
-Improved Unicode support: treats combining characters as invisible.
-@item
-Optional support for UCS pony names.
-@item
-Pony files and balloon style files can be pipes (as well as sockets, doors
-and as always regular files.)
-@item
-Support cowsay style message compression.
-@item
-New ponies: @file{blaze}
-@item
-New extraponies: @file{fyrefly} (Tumblr), @file{surprise} (Tumblr), @file{woona}
-(moonstuck), @file{woonanohat} (moonstuck)
-@item
-Pony symlink added:
-@itemize @bullet
-@item @file{pinkieoink} @arrow{} @file{oinkoinkoink}
-@end itemize
-@item
-Support for non-MLP:FiM ponies (known as extraponies).
-@c BEGIN the following is too descriptive for the plain/text change log
-This is implemented with the options @option{-F}, @option{+l}, and @option{+L}
-corresponding to @option{-f}, @option{-l}, and @option{-L}.
-@c END
-@end itemize
-
-
-@heading Version 2.2
-
-@itemize @bullet
-@item
-Full support for arbitrary positioning of balloon in pony files.
-@item
-ANSI colour sequences in pony files are applied only to the pony image,
-not the balloon link or the balloon itself.
-@item
-Support for colours in the message.
-@item
-Support custom balloon styles using the option @option{-b}, @option{-B} will list
-all available. This list depends on whether you are invoking @command{ponysay}
-or @command{ponythink}
-@end itemize
-
-
-@heading Version 2.1.1
-
-Nothing worth mentioning.
-
-
-@heading Version 2.1
-
-@itemize @bullet
-@item
-@file{applebumkin} is renamed to @file{applebumpkin}.
-@item
-New ponies: @file{owlowiscious}, @file{purplehaze}
-@item
-Cowsay has be reimplemented, and have full Unicode support and support
-for @command{figlet} style messages.
-@item
-Deleted environment variables: @env{PONYSAY_COWSAY}, @env{PONYSAY_COWTHINK}
-@item
-You will need Python 3, but not GNU Bash, Perl or Cowsay.
-@item
-New .pony file format is used:
-@c BEGIN the following is too descriptive for the plain/text change log
-@command{unisay}'s format instead of @command{cowsay}'s Perl based format.
-This includes arbitrary position of balloon, mirrored balloon links, and
-minimum size of balloon.
-@c END
-@end itemize
-
-
-@heading Version 2.0
-
-@itemize @bullet
-@item
-Makefile is generated by running @command{./configure}.
-@item
-All Perl scripts and almost all Bash are reimplemented in one Python 3 script.
-@item
-kmsponies4ponysay is included.
-@end itemize
-
-
-@heading Version 1.4.1
-@itemize @bullet
-@item
-Code is repaired and more portable.
-@end itemize
-
-
-@heading Version 1.4
-
-@itemize @bullet
-@item
-Make file is improved.
-@end itemize
-
-@b{Note}: Identifies itself as version 1.3
-
-
-@heading Version 1.3
-
-@itemize @bullet
-@item
-New ponies: @file{forestspirit}, @file{hollydash}, @file{raggedy}, @file{rhyme}
-@item
-@file{sindy} is renamed to @file{powderrouge}.
-@item
-Pony symlink added:
-@itemize @bullet
-@item @file{sindy} @arrow{} @file{powderrouge}
-@end itemize
-@item
-@option{PREFIX=/some-dir} can be used when invoking @command{make},
-the default value is @file{/usr}
-@end itemize
-
-
-@heading Version 1.2
-
-@itemize @bullet
-@item
-ponyquotes4ponysay is included.
-@item
-Support for extension: kmsponies4ponysay.
-@item
-Pony symlinks added:
-@itemize @bullet
-@item @file{mrsparkle} @arrow{} @file{nightlight}
-@item @file{elsie} @arrow{} @file{prettyvision}
-@end itemize
-@item
-New ponies: @file{ace}, @file{blueblood}, @file{filthyrich}, @file{gingergold},
-@file{hayfever}, @file{highscore}, @file{junebug}, @file{mrsparkle},
-@file{persnickety}, @file{ponet}, @file{screwloose}, @file{tornadobolt}.
-@item
-@file{elsie} is renamed to @file{prettyvision}.
-@item
-@opindex @option{-f}
-Arbitrary spaces in @option{-f} argument is not longer accepted (it causes
-problems with file names including spaces.)
-@end itemize
-
-@b{Note}: Identifies itself as version 1.1
-
-
-@heading Version 1.1
-
-@itemize @bullet
-@item
-Manpages are compressed before installation.
-@item
-@command{info} manual added.
-@item
-Shell completion for @command{ponythink} added, in addition to @command{ponysay}.
-@item
-@command{fish} completion added.
-@item
-@file{/usr/lib/ponysay} is used instead of @file{/usr/bin} for code used by the
-main script.
-@item
-@file{~/.local/share/ponysay} is used for private pony directories.
-@item
-@command{ncurses} is no longer needed for determining the screen's size,
-@command{coreutils} is used instead.
-@item
-Pony symlinks added:
-@itemize @bullet
-@item @file{amethyststar} @arrow{} @file{sparkler}
-@item @file{berrypinch} @arrow{} @file{ruby}
-@item @file{craftycrate} @arrow{} @file{boxxy}
-@item @file{magnum} @arrow{} @file{raritysdad}
-@item @file{pearl} @arrow{} @file{raritysmom}
-@item @file{powderrouge} @arrow{} @file{sindy}
-@item @file{royalribbo} @arrow{} @file{violet}
-@end itemize
-@item
-@w{New ponies:} @file{blossomforth}, @file{bonvoyage}, @file{cadance},
-@file{celestiasmall}, @file{changelingqueen}, @file{cherryberry},
-@file{discordamused}, @file{discordpuppetmaster}, @file{fleurdelishair},
-@file{fleurdelislay}, @file{owl}, @file{perrypierce}, @file{petunia},
-@file{pinacolada}, @file{skyra}, @file{truffleshuffle}.
-@item
-Pony spelling removed: @file{fillycadence}.
-@item
-Pony symlink change: @file{perry} @arrow{} @{@file{pokey} @arrow{} @file{perrypierce}@}.
-@item
-@opindex @option{-L}
-Option @option{-L} added, lists ponies with symlink mapping.
-@item
-Support for extension: ponyquotes4ponysay.
-@item
-@opindex @option{-f}
-Accepts arbitrary spaces in @option{-f} argument.
-@end itemize
-
-
-@heading Version 1.0
-
-@itemize @bullet
-@item
-Spanish translation of the manpage is added.
-@item
-@w{New ponies:} @file{applecore}, @file{applejackscarecrow}, @file{bonbonstand},
-@file{changeling}, @file{chrysalis}, @file{cottoncloudy}, @file{diamondmint},
-@file{discord}, @file{fillycadence}, @file{flam}, @file{fleurdelis}, @file{flim},
-@file{fluttershyshy}, @file{fluttershystare}, @file{lyrasit}, @file{oinkoinkoink}
-(is pinkie), @file{philomenaphoenix}, @file{pinkiecannon}, @file{pinkiecannonfront},
-@file{pinkiecannonhappy}, @file{pinkiegummy}, @file{pinkiehugfluttershy},
-@file{pinkiehugsfluttershy}, @file{pinkiepartycannon}, @file{pinkieprincess},
-@file{pinkiesilly}, @file{pinkietongue}, @file{pinkiewhoops}, @file{pinkiewhoopseat},
-@file{pinkiewhoopsout}, @file{rainbowdrag}, @file{rainbowsalute}, @file{rainbowshine},
-@file{raritydrama}, @file{shiningarmor}, @file{shiningarmorguard}, @file{snowflake},
-@file{spikemustache}, @file{stevenmagnet}, @file{stevenmagnettrue},
-@file{twilightcrazyfromball}, @file{twilightrage}, @file{twilightzero},
-@file{wildfire}.
-@item
-Pony symlinks added:
-@itemize @bullet
-@item @file{djpon-3} @arrow{} @file{vinyl}
-@item @file{fillycadance} @arrow{} @file{fillycadence}
-@item @file{horsepower} @arrow{} @file{snowflake}
-@end itemize
-@item
-Improved TTY support: ponies have low colours resolution, instead of monochrome,
-when the high colour resolution is not available.
-@end itemize
-
-
-@heading Version 0.10
-
-@itemize @bullet
-@item
-Manpage manual added.
-@item
-The directories for pony directories are changed from @file{/usr/share} to
-@file{/usr/share/ponysay} and @file{~} to @file{~/.ponysay}.
-@item
-Pony symlinks added:
-@itemize @bullet
-@item @file{carrottop} @arrow{} @file{carrot}
-@item @file{goldenharvest} @arrow{} @file{carrot}
-@item @file{harpass} @arrow{} @file{lyra}
-@item @file{heartstrings} @arrow{} @file{lyra}
-@item @file{lulamoon} @arrow{} @file{trixie}
-@item @file{minuette} @arrow{} @file{colgate}
-@item @file{noteworthy} @arrow{} @file{blues}
-@item @file{perry} @arrow{} @file{pokey}
-@item @file{pokeypierce} @arrow{} @file{pokey}
-@item @file{timeturner} @arrow{} @file{doctornohat}
-@item @file{trixielulamoon} @arrow{} @file{trixie}
-@item @file{twilightvelvet} @arrow{} @file{mrssparkle}
-@end itemize
-@item
-Support for truncating output on height, enabled by default under TTY.
-@item
-Environment variables added: @env{PONYSAY_FULL_WIDTH}, @env{PONYSAY_SHELL_LINES},
-@env{PONYSAY_TRUNCATE_HEIGHT}, @env{PONYSAY_BOTTOM}.
-@end itemize
-
-
-@heading Version 0.9
-
-@itemize @bullet
-@item
-Output truncated on width to fit screen.
-@item
-Support for TTY (Linux VT).
-@item
-@command{bash} completion added.
-@item
-@command{zsh} completion added.
-@item
-@w{New ponies}: @file{allie}, @file{archer}, @file{boxxy}, @file{carecake},
-@file{cupcake}, @file{daringdo}, @file{davenport}, @file{fancypants},
-@file{ironwillwalk}, @file{lily}, @file{lunafly}, @file{maredowellfly},
-@file{maredowellgallop}, @file{master}, @file{mjolna}, @file{orange},
-@file{raritysdad}, @file{raritysmom}, @file{royalnightguard}, @file{ruby},
-@file{sparkler}, @file{violet}.
-@end itemize
-
-
-@heading Version 0.8
-
-@itemize @bullet
-@item
-@w{New ponies}: @file{aloe}, @file{angle}, @file{applebloom}, @file{applebumkin},
-@file{applefritter}, @file{berrypunch}, @file{bigmac}, @file{blinkie}, @file{blues},
-@file{braeburn}, @file{caesar}, @file{candymane}, @file{caramel}, @file{cheerilee},
-@file{cheerilee80}, @file{clyde}, @file{colgate}, @file{colton}, @file{daisy},
-@file{derpystand}, @file{derpystandwing}, @file{diamondtiara}, @file{dinky},
-@file{doctornohat}, @file{elsie}, @file{fido}, @file{fillycelestia},
-@file{fillydash}, @file{fillydashfly}, @file{fillyjack}, @file{fillyjacktravel},
-@file{fillypinkie}, @file{fillypinkiecurly}, @file{fillyrarity}, @file{fillyshy},
-@file{fluttershygala}, @file{gilda}, @file{gildastand}, @file{granny},
-@file{grannychair}, @file{grannysleep}, @file{gummy}, @file{hoity}, @file{horte},
-@file{inky}, @file{laflour}, @file{lightning}, @file{lintsalot}, @file{lotus},
-@file{mayor}, @file{mrssparkle}, @file{nightmare}, @file{opal}, @file{parasprite},
-@file{philomena}, @file{photofinish}, @file{pinkamina}, @file{pinkiebounce},
-@file{pinkiechicken}, @file{pinkiegala}, @file{pipsqueak}, @file{pokey},
-@file{rainbowfly}, @file{rainbowgala}, @file{rainbowsleep}, @file{raindrops},
-@file{rarityfly}, @file{raritygala}, @file{rarityponder}, @file{redheart},
-@file{rocky}, @file{rose}, @file{rover}, @file{royalguard}, @file{sapphire},
-@file{scootaloo}, @file{screwball}, @file{shadowbolts}, @file{silverspoon},
-@file{silverstar}, @file{sindy}, @file{snails}, @file{snips}, @file{soarin},
-@file{soigne}, @file{spike}, @file{spikefloat}, @file{spikelove}, @file{spot},
-@file{stella}, @file{strongheart}, @file{sue}, @file{suedance}, @file{tank},
-@file{trixiestage}, @file{trixiestand}, @file{turnip}, @file{twist}, @file{winona}.
-@end itemize
-
-@b{Note}: Identifies itself as version 0.7
-
-
-@heading Version 0.7
-
-@itemize @bullet
-@item
-@w{New ponies:} @file{carrot}, @file{octavia}, @file{trixie}, @file{vinyl},
-@file{zecora}.
-@item
-@opindex @option{-l}
-Support for listing ponies with @option{-l} option.
-@end itemize
-
-
-@heading Version 0.6
-
-@itemize @bullet
-@item
-@w{New ponies:} @file{bonbon}, @file{celestia}, @file{doctor}, @file{fillistia},
-@file{spitfire}, @file{woona} (not moonstuck).
-@item
-Dropping usage of utility @command{which}, using @command{hash} instead.
-@end itemize
-
-@b{Note}: Identifies itself as version 0.5
-
-
-@heading Version 0.5
-
-@itemize @bullet
-@item
-Using utility @command{which} to determine existence of @command{cowsay}.
-@end itemize
-
-
-@heading Version 0.4
-
-@itemize @bullet
-@item
-@file{.cow} files are removed.
-@item
-@opindex @option{-W}
-Support for @option{-W} option.
-@item
-Select random pony if not specified.
-@item
-@opindex @option{-f}
-@option{-f} supports file names, and not only pony names.
-@end itemize
-
-
-@heading Version 0.3
-
-@itemize @bullet
-@item
-Fixed use of @file{.pony} files.
-@end itemize
-
-
-@heading Version 0.2
-
-@itemize @bullet
-@item
-Pony files end with @file{.pony} instead of @file{.cow}.
-@item
-@file{lyrasleep} is renamed to @file{lyra}.
-@item
-@file{.cow} files are kept but not used.
-@item
-@opindex @option{-h}
-@option{-h} prints proper help.
-@end itemize
-
-
-@heading Version 0.1
-
-First release.
-
-@itemize @bullet
-@item
-@w{Includes the ponies}: @file{applejack}, @file{derpy}, @file{derpysit},
-@file{fluttershy}, @file{luna}, @file{lyrasleep}, @file{pinkie}, @file{rainbow},
-@file{rarity}, @file{sweetie}, @file{twilight}.
-@end itemize
-
-
-
-@node Ponysay contributors
-@appendix Ponysay contributors
-
-Active developers and major contributors of ponysay:
-@itemize @bullet
-@item Erkin ``erkin'' Batu Altunbaş
-@item Mattias ``maandree'' Andrée
-@item Elis ``etu'' Axelsson
-@item Sven-Hendrik ``svenstaro'' Haase
-@item Pablo ``jristz'' Lezaeta
-@item Jan Alexander ``heftig'' Steffens
-@end itemize
-@*
-Patchers and other contributors of ponysay:
-@itemize @bullet
-@item Duane ``Marneus68'' Bekaert
-@item Kyah ``L-four'' Rindlisbacher
-@item James ``rossy2401'' Ross-Gowan
-@item Louis ``kragniz'' Taylor
-@item Daniel ``gtmanfred'' Wallace
-@item Jannis ``sycoso''
-@item ``spider-mario''
-@end itemize
-
-
-
-@node Ponysay license
-@appendix Ponysay license
-
-Ponysay is release by Erkin Batu Altunbaş et al. @*
-Copyright @copyright{} 2012 Erkin Batu Altunbaş et al.
-
-@*
-
-Ponysay is Free Software (yet not Open Source) and in licensed under the terms
-of Do What The Fuck You Want To Public License (WTFPL) version 2.
-
-You have the four essential freedoms:
-@itemize @bullet
-@item
-The freedom to run the program, for any purpose (freedom 0).
-@item
-The freedom to study how the program works, and change it so it does your
-computing as you wish (freedom 1). Access to the source code is a precondition
-for this.
-@item
-The freedom to redistribute copies so you can help your neighbour (freedom 2).
-@item
-The freedom to distribute copies of your modified versions to others (freedom 3).
-By doing this you can give the whole community a chance to benefit from your
-changes. Access to the source code is a precondition for this.
-@end itemize
-
-@*
-
-@cartouche
-@verbatim
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- Version 2, December 2004
-
-Copyright © 2004 Sam Hocevar <sam@hocevar.net>
-
-Everyone is permitted to copy and distribute verbatim or modified
-copies of this license document, and changing it is allowed as long
-as the name is changed.
-
- DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-0. You just DO WHAT THE FUCK YOU WANT TO.
-@end verbatim
-@end cartouche
-
-@node GNU Free Documentation License
-@appendix GNU Free Documentation License
-@include fdl.texinfo
-
-
-@node Concept and program index
-@appendix Concept and program index
-@printindex pg
-
-@node Variable and option index
-@appendix Variable and option index
-@printindex vr
-
-
-@bye
-