merge conflict resolved

This commit is contained in:
Mattias Andrée 2012-08-19 19:52:18 +02:00
commit 64b726770a
341 changed files with 1545 additions and 1055 deletions

4
.gitignore vendored
View file

@ -16,6 +16,10 @@
/completion/*-completion-think.* /completion/*-completion-think.*
/manuals/manpage.*.gz /manuals/manpage.*.gz
/ponysay.info
/ponysay.info.gz /ponysay.info.gz
/truncater /truncater
*.install *.install
/Makefile
/quotes/

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "ponyquotes4ponysay"]
path = ponyquotes4ponysay
url = git://github.com/maandree/ponyquotes4ponysay.git

View file

@ -1,3 +1,12 @@
Version 2.0
Makefile is generated by running `./configure`.
All Perl scripts and almost all Bash are reimplemented in one Python 3 script.
kmsponies4ponysay is included.
Version 1.4.1 Version 1.4.1
Code is repaired and more portable. Code is repaired and more portable.

View file

@ -3,12 +3,12 @@
# Active developers # Active developers
Erkin Batu Altunbaş Erkin Batu Altunbaş
Mattias Andrée Mattias Andrée
Elis Axelsson
Sven-Hendrik Haase Sven-Hendrik Haase
Pablo Lezaeta Pablo Lezaeta
Jan Alexander Steffens Jan Alexander Steffens
# Patchers and other contributors # Patchers and other contributors
Elis Axelsson
Duane Bekaert Duane Bekaert
Kyah Rindlisbacher Kyah Rindlisbacher
James Ross-Gowan James Ross-Gowan

181
Makefile
View file

@ -1,181 +0,0 @@
PREFIX="/usr"
INSTALLDIR="$(DESTDIR)$(PREFIX)"
all: truncater manpages infomanual ponythinkcompletion
truncater:
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o "truncater" "truncater.c"
manpages:
gzip -9 -f < "manuals/manpage.6" > "manuals/manpage.6.gz"
gzip -9 -f < "manuals/manpage.es.6" > "manuals/manpage.es.6.gz"
infomanual:
makeinfo "manuals/ponysay.texinfo"
gzip -9 -f "ponysay.info"
ponysaycompletion:
sed -e 's/\/usr\//'"$$(sed -e 's/\//\\\//g' <<<$(PREFIX))"'\//g' <"completion/bash-completion.sh" >"completion/bash-completion.sh.install"
sed -e 's/\/usr\//'"$$(sed -e 's/\//\\\//g' <<<$(PREFIX))"'\//g' <"completion/fish-completion.fish" >"completion/fish-completion.fish.install"
sed -e 's/\/usr\//'"$$(sed -e 's/\//\\\//g' <<<$(PREFIX))"'\//g' <"completion/zsh-completion.zsh" >"completion/zsh-completion.zsh.install"
ponythinkcompletion: ponysaycompletion
sed -e 's/ponysay/ponythink/g' <"completion/bash-completion.sh.install" | sed -e 's/\/ponythink\//\/ponysay\//g' -e 's/\\\/ponythink\\\//\\\/ponysay\\\//g' >"completion/bash-completion-think.sh"
sed -e 's/ponysay/ponythink/g' <"completion/fish-completion.fish.install" | sed -e 's/\/ponythink\//\/ponysay\//g' -e 's/\\\/ponythink\\\//\\\/ponysay\\\//g' >"completion/fish-completion-think.fish"
sed -e 's/ponysay/ponythink/g' <"completion/zsh-completion.zsh.install" | sed -e 's/\/ponythink\//\/ponysay\//g' -e 's/\\\/ponythink\\\//\\\/ponysay\\\//g' >"completion/zsh-completion-think.zsh"
install-min: truncater
mkdir -p "$(INSTALLDIR)/share/ponysay/"
mkdir -p "$(INSTALLDIR)/share/ponysay/ponies"
mkdir -p "$(INSTALLDIR)/share/ponysay/ttyponies"
mkdir -p "$(INSTALLDIR)/share/ponysay/quotes"
cp -P ponies/*.pony "$(INSTALLDIR)/share/ponysay/ponies/"
cp -P ttyponies/*.pony "$(INSTALLDIR)/share/ponysay/ttyponies/"
cp -P quotes/*.* "$(INSTALLDIR)/share/ponysay/quotes/"
mkdir -p "$(INSTALLDIR)/bin/"
install "ponysay" "$(INSTALLDIR)/bin/ponysay"
ln -sf "ponysay" "$(INSTALLDIR)/bin/ponythink"
mkdir -p "$(INSTALLDIR)/lib/ponysay/"
install -s "truncater" "$(INSTALLDIR)/lib/ponysay/truncater"
install "list.pl" "$(INSTALLDIR)/lib/ponysay/list.pl"
install "linklist.pl" "$(INSTALLDIR)/lib/ponysay/linklist.pl"
install "pq4ps" "$(INSTALLDIR)/lib/ponysay/pq4ps"
install "pq4ps.pl" "$(INSTALLDIR)/lib/ponysay/pq4ps.pl"
install "pq4ps-list.pl" "$(INSTALLDIR)/lib/ponysay/pq4ps-list.pl"
mkdir -p "$(INSTALLDIR)/share/licenses/ponysay/"
install "COPYING" "$(INSTALLDIR)/share/licenses/ponysay/COPYING"
install-bash: ponythinkcompletion
mkdir -p "$(INSTALLDIR)/share/bash-completion/completions/"
install "completion/bash-completion.sh.install" "$(INSTALLDIR)/share/bash-completion/completions/ponysay"
install "completion/bash-completion-think.sh" "$(INSTALLDIR)/share/bash-completion/completions/ponythink"
install-zsh: ponythinkcompletion
mkdir -p "$(INSTALLDIR)/share/zsh/site-functions/"
install "completion/zsh-completion.zsh.install" "$(INSTALLDIR)/share/zsh/site-functions/_ponysay"
install "completion/zsh-completion-think.zsh" "$(INSTALLDIR)/share/zsh/site-functions/_ponythink"
install-fish: ponythinkcompletion
mkdir -p "$(INSTALLDIR)/share/fish/completions/"
install "completion/fish-completion.fish.install" "$(INSTALLDIR)/share/fish/completions/ponysay.fish"
install "completion/fish-completion-think.fish" "$(INSTALLDIR)/share/fish/completions/ponythink.fish"
install-man: manpages
mkdir -p "$(INSTALLDIR)/share/man/man6"
install "manuals/manpage.6.gz" "$(INSTALLDIR)/share/man/man6/ponysay.6.gz"
ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man/man6/ponythink.6.gz"
install-man-es: manpages
mkdir -p "$(INSTALLDIR)/share/man/es/man6"
install "manuals/manpage.es.6.gz" "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz"
ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz"
install-info: infomanual
mkdir -p "$(INSTALLDIR)/share/info"
install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponysay.info.gz"
install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponythink.info.gz"
install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description="My Little Ponies for your terminal" "$(INSTALLDIR)/share/info/ponysay.info.gz"
install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description="My Little Ponies for your terminal" "$(INSTALLDIR)/share/info/ponythink.info.gz"
install-no-info: install-min install-bash install-zsh install-fish install-man install-man-es
install-pdf:
install "ponysay.pdf" "$(INSTALLDIR)/doc/ponysay.pdf"
install: install-no-info install-info
@echo -e '\n\n'\
'/--------------------------------------------------\\\n'\
'| ___ |\n'\
'| / (_) o |\n'\
'| \__ _ _ __ |\n'\
'| / / |/ | | / \_| | |\n'\
'| \___/ | |_/|/\__/ \_/|/ |\n'\
'| /| /| |\n'\
'| \| \| |\n'\
'| ____ |\n'\
'| | _ \ ___ _ __ _ _ ___ __ _ _ _ |\n'\
'| | |_) |/ _ \ | '\''_ \ | | | |/ __| / _` || | | | |\n'\
'| | __/| (_) || | | || |_| |\__ \| (_| || |_| | |\n'\
'| |_| \___/ |_| |_| \__, ||___/ \__,_| \__, | |\n'\
'| |___/ |___/ |\n'\
'\\--------------------------------------------------/'
@echo '' | ./ponysay -f ./`if [[ "$$TERM" = "linux" ]]; then echo ttyponies; else echo ponies; fi`/pinkiecannon.pony | tail --lines=30 ; echo -e '\n'
uninstall:
if [ -d "$(INSTALLDIR)/share/ponysay" ]; then rm -fr "$(INSTALLDIR)/share/ponysay" ; fi
if [ -d "$(INSTALLDIR)/lib/ponysay" ]; then rm -fr "$(INSTALLDIR)/lib/ponysay" ; fi
if [ -f "$(INSTALLDIR)/bin/ponysay" ]; then unlink "$(INSTALLDIR)/bin/ponysay" ; fi
if [ -f "$(INSTALLDIR)/bin/ponythink" ]; then unlink "$(INSTALLDIR)/bin/ponythink" ; fi
if [ -f "$(INSTALLDIR)/share/licenses/ponysay/COPYING" ]; then unlink "$(INSTALLDIR)/share/licenses/ponysay/COPYING" ; fi
if [ -f "$(INSTALLDIR)/share/bash-completion/completions/ponysay" ]; then unlink "$(INSTALLDIR)/share/bash-completion/completions/ponysay" ; fi
if [ -f "$(INSTALLDIR)/share/bash-completion/completions/ponythink" ]; then unlink "$(INSTALLDIR)/share/bash-completion/completions/ponythink"; fi
if [ -f "$(INSTALLDIR)/share/fish/completions/ponysay.fish" ]; then unlink "$(INSTALLDIR)/share/fish/completions/ponysay.fish" ; fi
if [ -f "$(INSTALLDIR)/share/fish/completions/ponythink.fish" ]; then unlink "$(INSTALLDIR)/share/fish/completions/ponythink.fish" ; fi
if [ -f "$(INSTALLDIR)/share/zsh/site-functions/_ponysay"; ]; then unlink "$(INSTALLDIR)/share/zsh/site-functions/_ponysay" ; fi
if [ -f "$(INSTALLDIR)/share/zsh/site-functions/_ponythink"; ]; then unlink "$(INSTALLDIR)/share/zsh/site-functions/_ponythink" ; fi
if [ -f "$(INSTALLDIR)/share/man/man6/ponysay.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/man6/ponysay.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/man/man6/ponythink.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/man6/ponythink.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz" ; fi
if [ -f "$(INSTALLDIR)/share/info/ponysay.info.gz" ]; then unlink "$(INSTALLDIR)/share/info/ponysay.info.gz" ; fi
if [ -f "$(INSTALLDIR)/share/info/ponythink.info.gz" ]; then unlink "$(INSTALLDIR)/share/info/ponythink.info.gz" ; fi
if [ -f "$(INSTALLDIR)/doc/ponysay.pdf" ]; then unlink "$(INSTALLDIR)/doc/ponysay.pdf" ; fi
uninstall-old:
if [ -d "$(INSTALLDIR)/share/ponies" ]; then rm -fr "$(INSTALLDIR)/share/ponies" ; fi
if [ -d "$(INSTALLDIR)/share/ttyponies" ]; then rm -fr "$(INSTALLDIR)/share/ttyponies" ; fi
if [ -f "$(INSTALLDIR)/bin/ponysaytruncater" ]; then unlink "$(INSTALLDIR)/bin/ponysaytruncater" ; fi
if [ -d "$(INSTALLDIR)/lib/ponysay/pq4ps-list" ]; then unlink "$(INSTALLDIR)/lib/ponysay/pq4ps-list" ; fi
clean:
if [ -f "truncater" ]; then rm -f "truncater" ; fi
if [ -f "completion/bash-completion-think.sh" ]; then rm -f "completion/bash-completion-think.sh" ; fi
if [ -f "completion/fish-completion-think.fish" ]; then rm -f "completion/fish-completion-think.fish"; fi
if [ -f "completion/zsh-completion-think.zsh" ]; then rm -f "completion/zsh-completion-think.zsh" ; fi
if [ -f "manuals/manpage.6.gz" ]; then rm -f "manuals/manpage.6.gz" ; fi
if [ -f "manuals/manpage.es.6.gz" ]; then rm -f "manuals/manpage.es.6.gz" ; fi
if [ -f "ponysay.info.gz" ]; then rm -f "ponysay.info.gz" ; fi
clean-old:
if [ -f "ponysaytruncater" ]; then rm -f "ponysaytruncater" ; fi
## Scripts for maintainers
ttyponies:
mkdir -p "ttyponies"
for pony in $$(ls --color=no "ponies/"); do \
echo "building ttypony: $$pony" ;\
if [ `readlink "ponies/$$pony"` = "" ]; then \
ponysay2ttyponysay < "ponies/$$pony" | tty2colourfultty -c 1 -e > "ttyponies/$$pony" ;\
git add "ttyponies/$$pony" ;\
elif [ ! -f "ttyponies/$$pony" ]; then \
ln -s `readlink "ponies/$$pony"` "ttyponies/$$pony" ;\
git add "ttyponies/$$pony" ;\
fi \
done
pdfmanual:
texi2pdf "manuals/ponysay.texinfo"
git add "manuals/ponysay.texinfo" "ponysay.pdf"
for ext in `echo aux cp cps fn ky log pg toc tp vr`; do \
(if [ -f "ponysay.$$ext" ]; then unlink "ponysay.$$ext"; fi); \
done
if [ -d "ponysay.t2d" ]; then rm -r "ponysay.t2d"; fi
submodules: clean
(cd "ponyquotes4ponysay/"; make clean)
git submodule init
git submodule update
quotes: submodules
(cd "ponyquotes4ponysay/"; make -B)
if [ -d quotes ]; then git rm "quotes/"*.*; fi
mkdir -p "quotes"
cp "ponyquotes4ponysay/ponyquotes/"*.* "quotes"
git add "quotes/"*.*

206
README
View file

@ -1,206 +0,0 @@
_____
| __ \
| |__) |___ _ __ _ _ ___ __ _ _ _
| ___// _ \ | '_ \ | | | |/ __| / _` || | | |
| | | (_) || | | || |_| |\__ \| (_| || |_| |
|_| \___/ |_| |_| \__, ||___/ \__,_| \__, |
__/ | __/ |
|___/ |___/
_____ _ _ _ _
|_ _|___ __| | __ _ _ _ _ _ ___ _ _ _ _ | |_ ___ _ _ _ __ (_) _ _ __ _ | |
| | / _ \/ _` |/ _` || || | | || |/ _ \| || || '_| | _|/ -_)| '_|| ' \ | || ' \ / _` || | _
|_| \___/\__,_|\__,_| \_, | \_, |\___/ \_,_||_| \__|\___||_| |_|_|_||_||_||_|\__,_||_|( )
|__/ |__/ |/
_ _ _ _ _ _
| |_ ___ _ __ ___ _ _ _ _ ___ __ __ __ | |_ | |_ ___ __ __ __ ___ _ _ | | __| || |
| _|/ _ \| ' \ / _ \| '_|| '_|/ _ \\ V V / | _|| ' \ / -_) \ V V // _ \| '_|| |/ _` ||_|
\__|\___/|_|_|_|\___/|_| |_| \___/ \_/\_/ \__||_||_|\___| \_/\_/ \___/|_| |_|\__,_|(_)
Required runtime dependencies
=============================
bash : required for the main script [file: ponysay]
cowsay : this is a wrapper for cowsay
coreutils : the main script [file: ponysay] uses stty, cut, ls, cat, sort, readlink, pwd, head and tail
sed : used to remove .pony from pony names when running `ponysay -l` and `ponysay -L`
perl : required to run `ponysay -l` and `ponysay -L`
Optional runtime dependencies
=============================
ponyquotes4ponysay : for support of My Little Pony quotes with associated pony
-- Included as a submodule, and can easily be removed by edit Makefile.
kmsponies4ponysay : improving TTY support under KMS support
-- Available for Arch:ers in AUR (https://aur.archlinux.org/packages.php?ID=61111)
-- and on github at https://github.com/maandree/ponyquotes4ponysay
Package building dependencies
=============================
gcc : used for compiling ponysaytruncater.c
gzip : used for compressing manpages
make : required to run the make script
coreutils : make script uses install, unlink, rm, ln, mkdir and cp
tex
texinfo : required to build info manual (tex is required by texinfo)
Dependencies for pony providers
===============================
make : required to run `make -B ttyponies`
coreutils : ln and readlink are used in the ttyponies subscript
bash : used in the ttyponies subscript
util-say : used by `make ttyponies` to build ttyponies from xterm ponies
-- Available for Arch:ers in AUR as util-say-git (https://aur.archlinux.org/packages.php?ID=60241)
-- and on github at https://github.com/maandree/util-say
Installation on GNU/Linux (or other Unix implementations)
=========================================================
Before installing ponysay, make sure your system have the packages listed under
[Required runtime dependencies] and [Package building dependencies] installed.
Download or clone the project. bleeding edge: https://github.com/erkin/ponysay/tarball/master
release: https://github.com/erkin/ponysay/tags
In the terminal, `cd` into the ponysay directory and execute `make && make install`.
This will install ponysay into the $PREFIX (/usr by default, meaning you may need to
run `make install` as root, e.g. by running `sudo make install`.)
In order to use ponysay, run: ponysay "I am just the cutest pony!"
Or if you have a specific pony in your mind: ponysay -f pinkie "Partay!~"
Run `info ponysay`, `man 6 ponysay` (man ponysay) or `ponysay -h` for more information.
A Spanish manual is available: man -L es 6 ponysay
Pony fortune on terminal startup
================================
This requires that you have fortune utility installed. You can install it from your
distributions package repository, it should be named fortune or fortune-mod.
Edit your ~/.bashrc and this line [to the end should work]:
fortune | ponysay
Now every time you open a terminal a pony should give your fortune.
If you wany ponified fortuned the are some stuff you can try:
A gigantic sed script:
http://www.reddit.com/r/mylittlelinux/comments/srixi/using_ponysay_with_a_ponified_fortune_warning/
ponypipe:
https://github.com/maandree/ponypipe
https://aur.archlinux.org/packages.php?ID=60228
pinkie-pie:
https://github.com/maandree/pinkie-pie
https://aur.archlinux.org/packages.php?ID=60229
Pony quotes
===========
Running `ponysay -q` will give you a random pony saying one it its quote from MLP:FiM.
Add one or more argument after `-q` to sepecify a set of ponies from which one will be selected randomly.
When running `ponysay -l` or `ponysay -L` the ponies which have quotes will be printed bold or bright (depending on terminal).
Ponies in TTY (Linux VT)
========================
If you have a custom colour palette edit your ~/.bashrc and add:
if [ "$TERM" = "linux" ]; then
function ponysay
{
exec ponysay "$@"
#RESET PALETTE HERE
}
fi
FAQ
===
Q: The output looks like a mess in (TTY/PuTTY/other)!
A: Unfortunately, there's nothing much we can do about it.
See issue 1: https://github.com/erkin/ponysay/issues/1
Q: You are missing (my-favourite-pony)!
A: Ask and we'll add!
https://github.com/erkin/ponysay/issues
Q: Which programs do you use to generate the pony files?
A: The pony files are actually mostly a bunch of selected browser
ponies that are generated into cow files via img2xterm
https://github.com/rossy2401/img2xterm
or util-say.
https://github.com/maandree/util-say
https://aur.archlinux.org/packages.php?ID=60241
Providing ponies
================
Most pony images are browser ponies or desktop ponies,
browser ponies is a port of desktop ponies, implementing it in JavaScript.
Browser ponies: https://github.com/panzi/Browser-Ponies
Desktop ponies: http://desktop-pony-team.deviantart.com/
There is also a collection of ponies that are not yet pixelated in a Java reimplementation:
https://github.com/maandree/unisay/tree/develop/dev/newponies
New ponies can be created from regular images by using img2xterm
https://github.com/rossy2401/img2xterm
or util-say
https://github.com/maandree/util-say
https://aur.archlinux.org/packages.php?ID=60241
Using util-say:
img2ponysay -c 1 -2 -- SOURCE_IMAGE > PONY_FILE
PONY_FILE should end with .pony and be localed in ponies/
Omit -2 if the source image does not use double pixel size.
(`-c 1` is no longer required.)
For more information see https://github.com/maandree/util-say/wiki/img2ponysay
When a pony is added please also add a ttypony version, 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 `make -B ttyponies` after adding the ponies to ponies/.
Running `make -B ttyponies` will build (or rebuild) all ttyponies with a pony present
in ponies/, and creates all needed symlinks.
To be able to run `make -B ttyponies` you must have the packages listed under
[Dependencies for pony providers].

View file

@ -12,10 +12,10 @@ First of all, you need `cowsay` from your local repositories.
Obtain it from [here](http://www.nog.net/~tony/warez) if you wish to compile it yourself. Obtain it from [here](http://www.nog.net/~tony/warez) if you wish to compile it yourself.
This is often sufficient, but if is not you may be missing one of the standard packages: [bash](ftp://ftp.gnu.org/gnu/bash/), [coreutils](ftp://ftp.gnu.org/gnu/coreutils/) or [sed](ftp://ftp.gnu.org/gnu/sed/). This is often sufficient, but if is not you may be missing one of the standard packages: [bash](ftp://ftp.gnu.org/gnu/bash/), [coreutils](ftp://ftp.gnu.org/gnu/coreutils/) or [sed](ftp://ftp.gnu.org/gnu/sed/).
[Download](https://github.com/erkin/ponysay/downloads) or clone the project. [Download](/erkin/ponysay/downloads) or clone the project.
In the terminal, `cd` into the ponysay directory and `make && make install`. In the terminal, `cd` into the ponysay directory and `./configure && make && make install`.
You make need to be super user to run `make install`, on most systems this
This will install ponysay into the $PREFIX (`/usr` by default, meaning you may need to `make install` as root, e.g. `sudo make install`.) can be achieved by running `sudo make install`.
If either `make` or `make install` fails you be missing one of the standard packages: If either `make` or `make install` fails you be missing one of the standard packages:
[gcc](ftp://ftp.gnu.org/gnu/gcc/), [gzip](ftp://ftp.gnu.org/gnu/gzip/), [make](ftp://ftp.gnu.org/gnu/make/) or [coreutils](ftp://ftp.gnu.org/gnu/coreutils/), or [git](http://git-scm.com/). [gcc](ftp://ftp.gnu.org/gnu/gcc/), [gzip](ftp://ftp.gnu.org/gnu/gzip/), [make](ftp://ftp.gnu.org/gnu/make/) or [coreutils](ftp://ftp.gnu.org/gnu/coreutils/), or [git](http://git-scm.com/).
@ -46,7 +46,7 @@ This requires that you have the `fortune` utility installed. You can install it
or just fetch the source code from [here](ftp://ftp.ibiblio.org/pub/linux/games/amusements/fortune/). or just fetch the source code from [here](ftp://ftp.ibiblio.org/pub/linux/games/amusements/fortune/).
You can try [this](http://www.reddit.com/r/mylittlelinux/comments/srixi/using_ponysay_with_a_ponified_fortune_warning/) script or You can try [this](http://www.reddit.com/r/mylittlelinux/comments/srixi/using_ponysay_with_a_ponified_fortune_warning/) script or
[ponypipe](https://github.com/maandree/ponypipe) to ponify fortunes. [ponypipe](/maandree/ponypipe) to ponify fortunes.
Edit your `~/.bashrc` and add this to the end of the file Edit your `~/.bashrc` and add this to the end of the file
@ -84,19 +84,17 @@ Dependencies
### Required runtime dependencies ### Required runtime dependencies
`bash`: required for the main script [file: ponysay] `bash`: bash is used in a minor part of the program to make everything work, this will be removed later
`coreutils`: stty in coreutils used to determine size of the terminal, other parts of coreutils will not be needed for long
`cowsay`: this is a wrapper for cowsay `cowsay`: this is a wrapper for cowsay
`coreutils`: the main script uses stty, cut, ls, cat, sort, readlink, pwd, head and tail `python>=3`: Written in python 3
`sed`: used to remove .pony from pony names when running `ponysay -l` and `ponysay -l`
`perl`: required to run `ponysay -l` and `ponysay -L`
### Package building dependencies ### Package building dependencies
`gcc`: used for compiling ponysaytruncater.c `gcc`: used for compiling truncater.c
`gzip`: used for compressing manpages `gzip`: used for compressing manpages
@ -110,13 +108,13 @@ FAQ
__Q:__ The output looks like a mess in _(TTY/PuTTY/other)_! __Q:__ The output looks like a mess in _(TTY/PuTTY/other)_!
__A:__ Unfortunately, there's nothing much we can do about it. See [issue 1](https://github.com/erkin/ponysay/issues/1). __A:__ Unfortunately, there's nothing much we can do about it. See [issue 1](/erkin/ponysay/issues/1).
__Q:__ You are missing _(my-favourite-pony)_! __Q:__ You are missing _(my-favourite-pony)_!
__A:__ [Ask](https://github.com/erkin/ponysay/issues) and we'll add! __A:__ [Ask](/erkin/ponysay/issues) and we'll add!
__Q:__ Which programs do you use to generate the pony files? __Q:__ Which programs do you use to generate the pony files?
__A:__ The pony files are actually mostly a bunch of selected [browser ponies](http://web.student.tuwien.ac.at/~e0427417/browser-ponies/ponies.html) __A:__ The pony files are actually mostly a bunch of selected [browser ponies](http://web.student.tuwien.ac.at/~e0427417/browser-ponies/ponies.html)
that are generated into cow files via [img2xterm](https://github.com/rossy2401/img2xterm) or [util-say](https://github.com/maandree/util-say). that are generated into cow files via [img2xterm](/rossy2401/img2xterm) or [util-say](/maandree/util-say).

View file

@ -8,28 +8,18 @@ _ponysay()
options='-v -h -l -f -W -q' options='-v -h -l -f -W -q'
COMPREPLY=( $( compgen -W "$options" -- "$cur" ) ) COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
if [ $prev = "-f" ]; then if [ $prev = "-f" ] || [ $prev = "--pony" ]; then
COMPREPLY=() ponies=$('/usr/bin/ponysay.py' --onelist)
COMPREPLY=( $( compgen -W "$ponies" -- "$cur" ) )
sysponies=/usr/share/ponysay/ponies/
usrponies=~/.local/share/ponysay/ponies/
if [[ $TERM = "linux" ]]; then
sysponies=/usr/share/ponysay/ttyponies/
usrponies=~/.local/share/ponysay/ttyponies/
fi
[ -d $sysponies ] && COMPREPLY+=( $( compgen -W "$(ls --color=no $sysponies | sed -e 's/.pony//g')" -- "$cur" ) )
[ -d $usrponies ] && COMPREPLY+=( $( compgen -W "$(ls --color=no $usrponies | sed -e 's/.pony//g')" -- "$cur" ) )
elif [ $prev = "-W" ]; then elif [ $prev = "-q" ] || [ $prev = "--quote" ]; then
quoters=$('/usr/bin/ponysay.py' --quoters)
COMPREPLY=( $( compgen -W "$quoters" -- "$cur" ) )
elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then
cols=$(( `stty size | cut -d ' ' -f 2` - 10 )) cols=$(( `stty size | cut -d ' ' -f 2` - 10 ))
COMPREPLY=( $cols $(( $cols / 2 )) 100 60 ) COMPREPLY=( $cols $(( $cols / 2 )) 100 60 )
elif [ $prev = "-q" ]; then
qcmd=/usr/lib/ponysay/pq4ps
quoters=$($qcmd -l)
COMPREPLY=( $( compgen -W "$quoters" -- "$cur" ) )
fi fi
} }

View file

@ -1,45 +1,21 @@
# Completions for ponysay # FISH completions for ponysay
# https://github.com/erkin/ponysay/ # https://github.com/erkin/ponysay/
# #
# Author: Elis Axelsson <etu AT elis DOT nu> # Author: Elis Axelsson <etu AT elis DOT nu>
if test $TERM = "linux" set -g ponies (/usr/bin/ponysay.py --onelist)
set -g systempath /usr/share/ponysay/ttyponies/ set -g quoters (/usr/bin/ponysay.py --quoters)
set -g homepath ~/.local/share/ponysay/ttyponies/
else
set -g systempath /usr/share/ponysay/ponies/
set -g homepath ~/.local/share/ponysay/ponies/
end
if test -d $systempath complete --command ponysay --short-option h --long-option help --description 'help of ponysay'
set -g systemponies (ls --color=no $systempath | sed -e 's/\.pony//' -e 's/_.*//' | perl -pe 's/([a-z])([A-Z])/\1\\\ \2/' ) complete --command ponysay --short-option v --long-option version --description 'version of ponysay'
end complete --command ponysay --short-option l --long-option list --description 'list pony files'
complete --command ponysay --short-option L --long-option altlist --description 'list pony files with alternatives'
complete --command ponysay --short-option f --long-option pony --arguments "$ponies" --description 'pony'
complete --command ponysay --short-option q --long-option quote --arguments "$quoters" --no-files --description 'pony'
complete --command ponysay --short-option W --long-option wrap --arguments 'Integer' --description 'specify the column when the message should be wrapped'
complete --command ponysay --arguments 'MESSAGE'
if test -d $homepath set -e ponies
set -g homeponies (ls --color=no $homepath | sed -e 's/\.pony//' -e 's/_.*//' | perl -pe 's/([a-z])([A-Z])/\1\\\ \2/' )
end
set -g qcmd /usr/lib/ponysay/pq4ps
set -g quoters ($qcmd -l)
complete -c ponysay -s h --description "Help of ponysay"
complete -c ponysay -s v --description "Version of ponysay"
complete -c ponysay -s l --description "List pony files"
complete -c ponysay -s L --description "List pony files with alternatives"
complete -c ponysay -s f -a "$homeponies $systemponies" --description "Select a pony"
complete -c ponysay -s q -a "$quoters" --description "Select ponies for MLP:FiM quotes"
complete -c ponysay -s W -a "Integer" --description "The screen column where the message should be wrapped"
set -e systempath
set -e homepath
set -e systemponies
set -e homeponies
set -e qcmd
set -e quoters set -e quoters

364
configure vendored Executable file
View file

@ -0,0 +1,364 @@
#!/usr/bin/env bash
PREFIX="/usr"
INFODESC=\''My Little Ponies for your terminal'\'
completions='completion/bash-completion.sh completion/fish-completion.fish completion/zsh-completion.zsh'
shareDirs='ponies ttyponies quotes'
manFiles='manuals/manpage.6 manuals/manpage.es.6'
licenseFiles='COPYING'
oldInstalledFiles='bin/ponysaytruncater lib/ponysay/list.pl lib/ponysay/linklist.pl lib/ponysay/pq4ps lib/ponysay/pq4ps.pl lib/ponysay/pq4ps-list lib/ponysay/pq4ps-list.pl'
oldInstalledDirs='share/ponies share/ttyponies'
oldCompiledFiles='ponysaytruncater ponysay.install'
oldCompiledDirs=''
installedFiles='bin/ponysay bin/ponythink bin/ponysay.py bin/ponythink.py doc/ponysay.pdf share/info/ponysay.info.gz share/info/ponythink.info.gz'
installedDirs='share/ponysay lib/ponysay'
compiledFiles='truncater ponysay.info.gz ponysay.py.install'
compiledDirs='quotes'
for man in $manFiles; do
oldCompiledFiles="$oldCompiledFiles $man.gz"
done
for completion in $completions; do
thinkfile="${completion%%.*}-think.${completion##*.}"
compiledFiles="$compiledFiles $completion.install $thinkfile"
done
for file in $licenseFiles; do
installedFiles="$installedFiles share/licenses/ponysay/$file"
done
function getcompdir()
{
if [ "$1" == 'bash' ]; then echo -n 'bash-completion/completions'
elif [ "$1" == 'fish' ]; then echo -n 'fish/completions'
elif [ "$1" == 'zsh' ]; then echo -n 'zsh/site-functions'
fi
}
function getcompfile()
{
if [ "$1" == 'bash' ]; then echo -n "$2"
elif [ "$1" == 'fish' ]; then echo -n "$2"'.fish'
elif [ "$1" == 'zsh' ]; then echo -n '_'"$2"
fi
}
installPdf=''
installInfo=' install-info'
installMan=' install-man'
installManEs=''
installBash=' install-bash'
installFish=' install-fish'
installZsh=' install-zsh'
for arg in "$@"; do
opt="${arg%%=*}"
val="${arg##*=}"
if [ "$opt" = '--prefix' ]; then
PREFIX="$val"
elif [ "$opt" = '--info-desc' ]; then
INFODESC=\'"$(sed -e s/\'/\''\\'\'\'/g <<<"$val")"\'
elif [ "$opt" = '--with-pdf' ]; then installPdf=' install-pdf'
elif [ "$opt" = '--without-info' ]; then installInfo=''
elif [ "$opt" = '--without-man' ]; then installMan=''
elif [ "$opt" = '--with-man-es' ]; then installManEs=' install-man-es'
elif [ "$opt" = '--without-bash' ]; then installBash=''
elif [ "$opt" = '--without-fish' ]; then installFish=''
elif [ "$opt" = '--without-zsh' ]; then installZsh=''
elif [ "$opt" = "--everything" ]; then
installPdf=' install-pdf'
installInfo=' install-info'
installMan=' install-man'
installManEs=' install-man-es'
installBash=' install-bash'
installFish=' install-fish'
installZsh=' install-zsh'
else
echo "$0: error: option not recongised: $arg" >&2
fi
done
compileMethods='core truncater manpages ponysaycompletion ponythinkcompletion'
installMethods='install-min'"$installPdf$installInfo$installMan$installManEs$installBash$installFish$installZsh"
if [ ! "$installInfo" = '' ]; then
compileMethods="$compileMethods infomanual"
fi
function correctPrefix()
{
for file in "$@"; do
echo -en '\t'
echo 'sed -e '\''s/'\''\'\'''\''\/usr\//'\''\'\''"$(SED_PREFIX)"'\''\//g'\'' < "'"$file"'" > "'"$file"'.install"'
done
}
function gzCompress()
{
for file in "$@"; do
echo -en '\t'
echo 'gzip -9 -f < "'"$file"'" > "'"$file"'".gz'
done
}
function thinkCompletion()
{
for file in "$@"; do
echo -en '\tsed'
echo -n ' -e '\''s/ponysay/ponythink/g'\'
echo -n ' < "'"$file"'.install" | sed'
echo -n ' -e '\''s/\/ponythink\//\/ponysay\//g'\'
echo -n ' -e '\''s/\\\/ponythink\\\//\\\/ponysay\\\//g'\'
thinkfile="${file%%.*}-think.${file##*.}"
echo ' > "'"$thinkfile"'"'
done
}
echo "PREFIX = $PREFIX, edit with option --prefix=PREFIX"
echo "INFODESC = $INFODESC, edit with option --info-desc=INFODESC"
echo
[ ! "$installPdf" = '' ] && echo "Installing PDF manual"
[ ! "$installInfo" = '' ] && echo "Installing info manual, add option --without-info to skip"
[ ! "$installMan" = '' ] && echo "Installing English manpage manual, add option --without-man to skip"
[ ! "$installManEs" = '' ] && echo "Installing Spanish manpage manual"
[ ! "$installBash" = '' ] && echo "Installing autocompletion for GNU Bash, add option --without-bash to skip"
[ ! "$installFish" = '' ] && echo "Installing autocompletion for fish, add option --without-fish to skip"
[ ! "$installZsh" = '' ] && echo "Installing autocompletion for zsh, add option --without-zsh to skip"
echo
[ ! "$installPdf" = '' ] || echo "Skipping PDF manual, add option --with-pdf to install"
[ ! "$installInfo" = '' ] || echo "Skipping info manual"
[ ! "$installMan" = '' ] || echo "Skipping English manpage manual"
[ ! "$installManEs" = '' ] || echo "Skipping Spanish manpage manual, add option --with-man-es to install"
[ ! "$installBash" = '' ] || echo "Skipping autocompletion for GNU Bash"
[ ! "$installFish" = '' ] || echo "Skipping autocompletion for fish"
[ ! "$installZsh" = '' ] || echo "Skipping autocompletion for zsh"
echo
function makeMakefile()
{
echo 'PREFIX='\'"$PREFIX"\'
echo 'INSTALLDIR="$(DESTDIR)$(PREFIX)"'
echo 'SED_PREFIX=$$(sed -e '\''s/\//\\\//g'\'' <<<$(PREFIX))'
echo
echo 'default: '"$compileMethods"
echo
echo 'all: core truncater quotes manpages infomanual ponysaycompletion ponythinkcompletion'
echo
echo "core:"
correctPrefix 'ponysay.py'
echo
echo "truncater:"
echo -en '\t'
echo '$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o "truncater" "truncater.c"'
echo
echo "quotes:"
echo -en '\t' ; echo 'mkdir -p quotes'
echo -en '\t' ; echo 'for ponies in $$(cat ponyquotes/ponies); do \'
echo -en '\t' ; echo ' for pony in $$(echo $$ponies | sed -e '\''s/+/ /g'\''); do \'
echo -en '\t' ; echo ' echo '\''Generating quote files for '\''"$$pony"; \'
echo -en '\t' ; echo ' for file in $$(ls "ponyquotes/" | grep "$$pony\\.*"); do \'
echo -en '\t' ; echo ' if [ -f "ponyquotes/$$file" ]; then \'
echo -en '\t' ; echo ' cp "ponyquotes/"$$file "quotes/"$$ponies'\''.'\''$$(echo $$file | cut -d '\''.'\'' -f 2) \'
echo -en '\t' ; echo ';fi;done;done;done'
echo
echo 'manpages:'
gzCompress $manFiles
echo
echo 'infomanual:'
echo -en '\t'
echo 'makeinfo "manuals/ponysay.texinfo"'
gzCompress 'ponysay.info'
echo
echo 'ponysaycompletion:'
correctPrefix $completions
echo
echo 'ponythinkcompletion: ponysaycompletion'
thinkCompletion $completions
echo
echo 'install-min: core truncater quotes'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/ponysay/"'
for dir in $shareDirs; do
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/ponysay/'"$dir"'"'
echo -en '\t' ; echo 'cp -P "'"$dir"'/"*.* "$(INSTALLDIR)/share/ponysay/'"$dir"'/"'
done
echo
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/bin/"'
echo -en '\t' ; echo 'install "ponysay" "$(INSTALLDIR)/bin/ponysay"'
echo -en '\t' ; echo 'install "ponysay.py" "$(INSTALLDIR)/bin/ponysay.py"'
echo -en '\t' ; echo 'ln -sf "ponysay" "$(INSTALLDIR)/bin/ponythink"'
echo -en '\t' ; echo 'ln -sf "ponysay.py" "$(INSTALLDIR)/bin/ponythink.py"'
echo
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/lib/ponysay/"'
echo -en '\t' ; echo 'install -s "truncater" "$(INSTALLDIR)/lib/ponysay/truncater"'
echo
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/licenses/ponysay/"'
for file in $licenseFiles; do
echo -en '\t'
echo 'install "'"$file"'" "$(INSTALLDIR)/share/licenses/ponysay/'"$file"'"'
done
echo
echo -en '\t' ; echo 'mkdir -p $(DESTDIR)/var/cache/ponysay/'
echo -en '\t' ; echo 'chmod 777 $(DESTDIR)/var/cache/ponysay/'
echo
for completion in $completions; do
shell="${completion##*/}"
shell="${shell%%-*}"
thinkfile="${completion%%.*}-think.${completion##*.}"
shelldir='share/'"$(getcompdir $shell)"'/'
echo 'install-'"$shell"': ponysaycompletion ponythinkcompletion'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/'"$shelldir"'"'
echo -en '\t' ; echo 'install "'"$completion"'" "$(INSTALLDIR)/'"$shelldir$(getcompfile $shell ponysay)"'"'
echo -en '\t' ; echo 'install "'"$thinkfile"'" "$(INSTALLDIR)/'"$shelldir$(getcompfile $shell ponythink)"'"'
echo
installedFiles="$installedFiles $shelldir$(getcompfile $shell ponysay) $shelldir$(getcompfile $shell ponythink)"
done
echo 'install-pdf:'
echo -en '\t'
echo 'install "ponysay.pdf" "$(INSTALLDIR)/doc/ponysay.pdf"'
echo
echo 'install-info: infomanual'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/info"'
echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponysay.info.gz"'
echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponythink.info.gz"'
echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponysay.info.gz"'
echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponythink.info.gz"'
echo
for man in $manFiles; do
lang="${man##*manpage}"
lang="${lang%%.6}"
mandir="${lang/\.//}"
echo 'install-man'"${lang/\./-}"': manpages'
echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/man'"$mandir"'/man6"'
echo -en '\t' ; echo 'install "'"$man"'.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponysay.6.gz"'
echo -en '\t' ; echo 'ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponythink.6.gz"'
echo
installedFiles="$installedFiles share/man$mandir/man6/ponysay.6.gz share/man$mandir/man6/ponythink.6.gz"
done
echo
echo 'install: '"$installMethods"
echo -en '\t' ; echo '@echo -e \\n\\n\'
cat <<EOF
'/--------------------------------------------------\\\\\n'\\
'| ___ |\\n'\\
'| / (_) o |\\n'\\
'| \\__ _ _ __ |\\n'\\
'| / / |/ | | / \\_| | |\\n'\\
'| \\___/ | |_/|/\\__/ \\_/|/ |\\n'\\
'| /| /| |\\n'\\
'| \\| \\| |\\n'\\
'| ____ |\\n'\\
'| | _ \\ ___ _ __ _ _ ___ __ _ _ _ |\\n'\\
'| | |_) |/ _ \\ | '\\''_ \\ | | | |/ __| / _\` || | | | |\n'\\
'| | __/| (_) || | | || |_| |\\__ \\| (_| || |_| | |\\n'\\
'| |_| \\___/ |_| |_| \\__, ||___/ \\__,_| \\__, | |\\n'\\
'| |___/ |___/ |\\n'\\
'\\\\--------------------------------------------------/'
EOF
echo -en '\t' ; echo '@echo dummy | ./ponysay -f ./`if [[ "$$TERM" = "linux" ]]; then echo ttyponies; else echo ponies; fi`/pinkiecannon.pony | tail --lines=30 ; echo -e \\n'
echo
echo 'uninstall:'
echo -en '\t' ; echo 'if [ -d "$(DESTDIR)/var/cache/ponysay" ]; then rm -rf "$(INSTALLDIR)/var/cache/ponysay"; fi'
for old in $installedDirs; do
echo -en '\t'
echo 'if [ -d "$(INSTALLDIR)/'"$old"'" ]; then rm -rf "$(INSTALLDIR)/'"$old"'"; fi'
done
for old in $installedFiles; do
echo -en '\t'
echo 'if [ -f "$(INSTALLDIR)/'"$old"'" ]; then unlink "$(INSTALLDIR)/'"$old"'"; fi'
done
echo
echo 'clean:'
for old in $compiledDirs; do
echo -en '\t'
echo 'if [ -d "'"$old"'" ]; then rm -rf "'"$old"'"; fi'
done
for old in $compiledFiles; do
echo -en '\t'
echo 'if [ -f "'"$old"'" ]; then rm -f "'"$old"'"; fi'
done
echo
echo 'uninstall-old:'
for old in $oldInstalledDirs; do
echo -en '\t'
echo 'if [ -d "$(INSTALLDIR)/'"$old"'" ]; then rm -rf "$(INSTALLDIR)/'"$old"'"; fi'
done
for old in $oldInstalledFiles; do
echo -en '\t'
echo 'if [ -f "$(INSTALLDIR)/'"$old"'" ]; then unlink "$(INSTALLDIR)/'"$old"'"; fi'
done
echo
echo 'clean-old:'
for old in $oldCompiledDirs; do
echo -en '\t'
echo 'if [ -d "'"$old"'" ]; then rm -rf "'"$old"'"; fi'
done
for old in $oldCompiledFiles; do
echo -en '\t'
echo 'if [ -f "'"$old"'" ]; then rm -f "'"$old"'"; fi'
done
echo
cat <<EOF
## Scripts for maintainers
ttyponies:
mkdir -p "ttyponies"
for pony in \$\$(ls --color=no "ponies/"); do \\
echo "building ttypony: \$\$pony" ;\\
if [ \`readlink "ponies/\$\$pony"\` = "" ]; then \\
ponysay2ttyponysay < "ponies/\$\$pony" | tty2colourfultty -c 1 -e > "ttyponies/\$\$pony" ;\\
git add "ttyponies/\$\$pony" ;\\
elif [ ! -f "ttyponies/\$\$pony" ]; then \\
ln -s \`readlink "ponies/\$\$pony"\` "ttyponies/\$\$pony" ;\\
git add "ttyponies/\$\$pony" ;\\
fi \\
done
pdfmanual:
texi2pdf "manuals/ponysay.texinfo"
git add "manuals/ponysay.texinfo" "ponysay.pdf"
for ext in \`echo aux cp cps fn ky log pg toc tp vr\`; do \\
(if [ -f "ponysay.\$\$ext" ]; then unlink "ponysay.\$\$ext"; fi); \\
done
if [ -d "ponysay.t2d" ]; then rm -r "ponysay.t2d"; fi
EOF
}
makeMakefile > Makefile

View file

@ -1 +0,0 @@
../../ponysay

View file

@ -1 +0,0 @@
../../../linklist.pl

View file

@ -1 +0,0 @@
../../../list.pl

View file

@ -1 +0,0 @@
../../../pq4ps

View file

@ -1 +0,0 @@
../../../pq4ps-list.pl

View file

@ -1 +0,0 @@
../../../pq4ps.pl

View file

@ -1 +0,0 @@
../../../ponies

View file

@ -1 +0,0 @@
../../../quotes

View file

@ -1 +0,0 @@
../../../ttyponies

View file

@ -1,35 +0,0 @@
#!/usr/bin/perl
# ponysaylist
# Prints a list of ponies in columns
#
# Licensed under WTFPL
# See COPYING for details
# Author: Mattias Andrée, maandree@kth.se
# spider-mario
use strict;
use warnings;
use utf8;
my %hash;
{
local @ARGV = @ARGV;
while ((my ($source, $target), @ARGV) = @ARGV) {
unless ($source eq $target) {
push @{$hash{$target}}, $source;
}
}
}
while ((my ($source, $target), @ARGV) = @ARGV) {
if ($source eq $target) {
my @list = @{$hash{$source} // []};
print $source;
print ' (', join(' ', @list), ')' if @list;
print "\n";
}
}

41
list.pl
View file

@ -1,41 +0,0 @@
#!/usr/bin/env perl
# ponysaylist
# Prints a list of ponies in columns
#
# Licensed under WTFPL
# See COPYING for details
# Author: Mattias Andrée, maandree@kth.se
# spider-mario
use strict;
use warnings;
use utf8;
use feature qw(say);
use integer;
use List::Util qw(max);
my $scrw = shift @ARGV // 1;
#for (@ARGV) {
# # Format names from pony names
# s/(?<=[a-z])(?=[A-Z])/ /;
# s/_(.*)/\t($1)/;
#}
my $maxw = max 1, map {length} @ARGV;
my $cols = max 1, (($scrw + 2) / ($maxw + 2));
my @list = map {sprintf "%-${maxw}s", $_} @ARGV;
my $rows = (@list + $cols - 1) / $cols;
my @rowlist;
for my $i (0 .. $#list) {
push @{$rowlist[$i % $rows]}, $list[$i];
}
say join ' ', @$_ for @rowlist;

View file

@ -104,7 +104,8 @@ Bugs can be reported in <\fBhttps://github.com/erkin/ponysay/issues\fP>.
.br .br
.SH AUTHOR .SH AUTHOR
ponysay was written by Erkin Batu Altunbaş <erkinbatu@gmail.com> ponysay was written by Erkin Batu Altunbaş <erkinbatu@gmail.com>
with major contributions from Mattias Andrée, Sven-Hendrik Haase, Jan Alexander Steffens et al. with contributions from Mattias Andrée, Elis Axelsson, Sven-Hendrik Haase,
Pablo Lezaeta, Jan Alexander Steffens et al.
.\" See file CREDITS for full list. .\" See file CREDITS for full list.
.PP .PP
This manual page was originally written by Louis Taylor <kragniz@gmail.com> This manual page was originally written by Louis Taylor <kragniz@gmail.com>

View file

@ -108,7 +108,8 @@ Los bugs pueden ser reportados en
.br .br
.SH AUTOR .SH AUTOR
ponysay fue escrito por Erkin Batu Altunbaş <erkinbatu@gmail.com> ponysay fue escrito por Erkin Batu Altunbaş <erkinbatu@gmail.com>
con la ayuda de Mattias Andrée, Sven-Hendrik Haase, Jan Alexander Steffens y otros. con la ayuda de Mattias Andrée, Elis Axelsson, Sven-Hendrik Haase,
Pablo Lezaeta, Jan Alexander Steffens y otros.
.\" vea el archivo CREDITS para la lista completa. .\" vea el archivo CREDITS para la lista completa.
.PP .PP
Este manual originalmente fue escrito por Louis Taylor <kragniz@gmail.com> Este manual originalmente fue escrito por Louis Taylor <kragniz@gmail.com>

View file

@ -8,7 +8,7 @@
@documentlanguage en @documentlanguage en
@finalout @finalout
@c %**end of header @c %**end of header
@set VERSION 1.4.1 @set VERSION 2.0
@copying @copying
This manual is for ponysay This manual is for ponysay
@ -117,15 +117,21 @@ Otherwise @command{ponysay} and @command{ponythink} is the same thing.
Parse the following arguments as parts of @code{@var{message}}. Parse the following arguments as parts of @code{@var{message}}.
@item -h @item -h
@itemx --help
@cindex @command{-h} @cindex @command{-h}
@cindex @command{--help}
Show summary of options. Show summary of options.
@item -v @item -v
@item --verion
@cindex @command{-v} @cindex @command{-v}
@cindex @command{--version}
Show version of program. Show version of program.
@item -f PONY @item -f PONY
@itemx --pony PONY
@cindex @command{-f} @cindex @command{-f}
@cindex @command{--pony}
Specify the pony that should printed, this can either be a file name or Specify the pony that should printed, this can either be a file name or
a pony name printed by @command{ponysay -l}. If it is a file name with a pony name printed by @command{ponysay -l}. If it is a file name with
a relative path and does not include a `@code{/}', it must begin with a relative path and does not include a `@code{/}', it must begin with
@ -133,8 +139,13 @@ a relative path and does not include a `@code{/}', it must begin with
multiple times to specify a set of ponies from which one will be selected 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. randomly. If no pony is specified one will be selected randomly.
If you have @command{util-say} installed, you can use .png-files as the
arguments for this options.
@item -q [PONY...] @item -q [PONY...]
@itemx --quote [PONY...]
@cindex @command{-q} @cindex @command{-q}
@cindex @command{--quote}
By using this option, a pony will be printed with quotes from her in My Little Pony: 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 Friendship is Magic. The pony will be selected randomly, unless at least one pony
is added as an argument after @command{-q}. If one or more ponies are added after is added as an argument after @command{-q}. If one or more ponies are added after
@ -143,19 +154,25 @@ This option requires the extension @command{ponyquotes4ponysay}, which
is included by default since version 1.2. is included by default since version 1.2.
@item -W COLUMN @item -W COLUMN
@itemx --wrap COLUMN
@cindex @command{-W} @cindex @command{-W}
@cindex @command{--wrap}
Specify the screen column where the message should be wrapped, Specify the screen column where the message should be wrapped,
this is by default 40, which is inherited from @command{cowsay}. this is by default 40, which is inherited from @command{cowsay}.
@item -l @item -l
@itemx --list
@cindex @command{-l} @cindex @command{-l}
@cindex @command{--list}
Lists all installed ponies. If the extension @command{ponyquotes4ponysay} Lists all installed ponies. If the extension @command{ponyquotes4ponysay}
is installed the ponies which have quotes, i.e. can be used with the is installed the ponies which have quotes, i.e. can be used with the
@command{-q} option, will be mark by being printed in bold or bright @command{-q} option, will be mark by being printed in bold or bright
(depending on the terminal.) (depending on the terminal.)
@item -L @item -L
@itemx --linklist
@cindex @command{-L} @cindex @command{-L}
@cindex @command{--altlist}
Lists all installed ponies. If the extension @command{ponyquotes4ponysay} Lists all installed ponies. If the extension @command{ponyquotes4ponysay}
is installed the ponies which have quotes, i.e. can be used with the is installed the ponies which have quotes, i.e. can be used with the
@command{-q} option, will be mark by being printed in bold or bright @command{-q} option, will be mark by being printed in bold or bright
@ -226,7 +243,7 @@ to @command{ponypipe}: @url{http://www.reddit.com/r/mylittlelinux/comments/srixi
If you use TTY and have a custom colour palette, you should also add to your If you use TTY and have a custom colour palette, you should also add to your
@code{~/.bashrc}, before @code{fortune | ponysay}: @code{~/.bashrc}, before @code{fortune | ponysay}:
@example @example
[[ "$TERM" = "linux" ]] && [ "$TERM" = "linux" ] &&
function ponysay function ponysay
@{ exec ponysay "$@@" @{ exec ponysay "$@@"
#RESET PALETTE HERE #RESET PALETTE HERE
@ -249,7 +266,7 @@ So before opening @command{screen} you use set @code{$TERM} to @code{xterm-256co
if you are using a terminal with support for @code{xterm}'s 256 colours; this if you are using a terminal with support for @code{xterm}'s 256 colours; this
can be done by adding to your @code{~/.bashrc}: can be done by adding to your @code{~/.bashrc}:
@example @example
[[ "$TERM" = "xterm" ]] && [ "$TERM" = "xterm" ] &&
function screen function screen
@{ export TERM="xterm-256color" @{ export TERM="xterm-256color"
exec screen "$@@" exec screen "$@@"
@ -303,10 +320,10 @@ are not running @command{ponysay} under TTY.
@cindex replace cowsay @cindex replace cowsay
If you want to use another program than @command{cowsay} (the first If you want to use another program than @command{cowsay} (the first
@command{cowsay} found in @code{$PATH}), you can export @code{PONYSAY_COWSAY} @command{cowsay} found in @code{$PATH}), you can export @code{PONYSAY_COWSAY}
with the value of that program. If, and only if, @code{PONYSAY_COWSAY} does with the value of that program. In earlier versions than version 2.0: If, and
not have any value, @command{cowsay} is patch with @code{use utf8;} to the only if, @code{PONYSAY_COWSAY} does not have any value, @command{cowsay} is
beginning. The @code{use utf8;} patch is introduced to make it easier to patch with @code{use utf8;} to the beginning. The @code{use utf8;} patch is
customise cowsay. introduced to make it easier to customise cowsay.
@code{PONYSAY_COWTHINK} will be used instead of @code{PONYSAY_COWSAY} if @code{PONYSAY_COWTHINK} will be used instead of @code{PONYSAY_COWSAY} if
you run @command{ponythink}. you run @command{ponythink}.
@ -448,20 +465,14 @@ properties that makes a picture good.
@table @option @table @option
@item bash @item bash
Required for the main script [file: @command{ponysay}]. Required for the glue script.
@item cowsay @item cowsay
This is a wrapper for @command{cowsay}. This is a wrapper for @command{cowsay}.
@item coreutils @item coreutils
The main script [file: @command{ponysay}] uses @command{stty}, @command{cut}, @command{stty} is used to determine the size of the terminal,
@command{ls}, @command{cat}, @command{sort}, @command{readlink}, @command{pwd}, other parts of Coreutils will not be needed for long
@command{head} and @command{tail}. @item python
@item sed Python version 3 is the primary language of the program
@cindex @command{-l}
@cindex @command{-L}
Used to remove @code{.pony} from pony names when running @command{ponysay -l}
and @command{ponysay -L}.
@item perl
Required to run @command{ponysay -l} and @command{ponysay -L}.
@end table @end table
@node Optional runtime dependencies @node Optional runtime dependencies
@ -470,19 +481,21 @@ Required to run @command{ponysay -l} and @command{ponysay -L}.
@cindex optional dependencies @cindex optional dependencies
@table @option @table @option
@item ponyquotes4ponysay @item util-say
@cindex ponyquotes4ponysay @cindex @command{util-say}
@cindex @command{-q} @cindex kms
For support of My Little Pony quotes with associated pony: the @code{-q} option. @cindex tty
It can be downloaded at @url{https://github.com/maandree/ponyquotes4ponysay}. @cindex linux vt
Since version 1.2, this module is included in ponysay. You can edit ponysay's
@code{Makefile} to remove it.
@item kmsponies4ponysay
@cindex kmsponies4ponysay
For improved TTY support for user with custom colour palette and KMS support. For improved TTY support for user with custom colour palette and KMS support.
It can be downloaded at @url{https://github.com/maandree/kmsponies4ponysay}. It can be downloaded at @url{https://github.com/maandree/util-say}.
@cindex png images
@cindex images, png
@cindex portable network graphics
For ther purpose of simplying for pony contributors, @command{ponysay}
supports using .png-images (note that the file must not miss the
@code{.png} in the file) in addition of .pony-files or pony names.
@end table @end table
@ -499,6 +512,8 @@ Required to run the make script.
@item coreutils @item coreutils
The make script uses @command{install}, @command{unlink}, @command{rm}, @command{ln}, The make script uses @command{install}, @command{unlink}, @command{rm}, @command{ln},
@command{mkdir} and @command{cp}. @command{mkdir} and @command{cp}.
@item sed
Used on the make system.
@item texinfo @item texinfo
@itemx info @itemx info
@command{texinfo} and @command{info} are required if you want this @command{info} manual. @command{texinfo} and @command{info} are required if you want this @command{info} manual.
@ -543,7 +558,7 @@ It can be downloaded at @url{https://github.com/maandree/util-say}.
@menu @menu
* Installations basics:: The basics of installations. * Installations basics:: The basics of installations.
* Custom installations:: Installation customisations. * Custom installations:: Installation customisation.
@end menu @end menu
@node Installations basics @node Installations basics
@ -561,17 +576,19 @@ for bleeding edge, or from @url{https://github.com/erkin/ponysay/tags} for relea
If you have @command{git} you @command{clone} the project URL If you have @command{git} you @command{clone} the project URL
@url{https://github.com/erkin/ponysay.git}. @url{https://github.com/erkin/ponysay.git}.
In the terminal,@command{cd} into the ponysay directory and execute In the terminal, @command{cd} into the ponysay directory and execute
@command{make install}. This will install @command{ponysay} into the @command{./configure && make install}. This will install @command{ponysay} into the
@code{/usr}, meaning you may need to run @command{make install} as root, @code{/usr}, meaning you may need to run @command{make install} as root,
e.g. by running @command{sudo make install}. e.g. by running @command{sudo make install}.
Now you will be to use ponysay, run: @command{ponysay "I am just the cutest pony!"}, 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!~"}. 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{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 @command{man 6 ponysay} (or just @command{man ponysay}). The manpage is also available
in Spanish: @command{man -L es 6 ponysay}. in Spanish: @command{man -L es 6 ponysay}. The install the Spanish manual add the
option @command{--with-man-es} when running @command{./configure}.
@node Custom installations @node Custom installations
@ -579,42 +596,64 @@ in Spanish: @command{man -L es 6 ponysay}.
@cindex customised installations @cindex customised installations
@cindex installation customisation @cindex installation customisation
@cindex make @cindex make
@cindex @command{./configure}
@cindex configure
A basic installation will install everyting @command{ponysay} has to offer, except @cindex @command{--everything}
the prebuild PDF manual. If you want to install the PDF manual, which is by default A basic installation will install everything @command{ponysay} has to offer, except
installed as a @command{info} manual, you can run @command{make install-pdf}. the prebuilt PDF manual and translated manpages. If you want to install exactly
@command{make install-pdf} has no require means and will install the PDF manual, and everything add the option @command{--everything} when running @command{./configure}.
only the PDF manual, to @code{/usr/doc/ponysay.pdf}.
If you want to perform a regular installation, but without the @command{info} manual @cindex @command{--with-pdf}
you can run @command{make install-no-info}. It is also possible to install each part @cindex PDF manual, with
independently; running @command{make install-min} will install the core of @cindex @command{--without-man}
@command{ponysay}, which is the minimal set that can installed without generating @cindex manpage, without
errors or problems. After perform the core installaton whether are some other install @cindex @command{--without-info}
commands: @cindex @command{info} manual, without
@cindex @command{--with-man-LANG}
@cindex manpage translations
After @command{--everything} it is possible to remove unwanted parts, this can
of cause be done without @command{--everything}. If you want to install the
PDF manual to @code{/usr/doc/ponysay.pdf} add the option @command{--with-pdf} when
running @command{./configure}. To install a manpage translation add
@command{--with-man-LANG} and substitute the the language code for @code{LANG}.
Currently the only translation is Spanish with the language code @code{es}.
If you do not want the English manpage add the option @command{--without-man}.
If you do not want the @command{info} manual add the option @command{--without-info}.
The following argumentless options are also recognised:
@itemize @bullet @itemize @bullet
@item @command{make install-bash} @item @command{--without-bash}
will install completion for @command{ponysay} and shell GNU Bash. @cindex @command{--without-bash}
@item @command{make install-fish} @cindex @command{bash}, without
will install completion for @command{ponysay} and shell @command{fish}. will skip installation of auto-completion for @command{ponysay} and the
@item @command{make install-zsh} GNU Bourne-again shell, @command{bash}.
will install completion for @command{ponysay} and shell @command{zsh}. @item @command{--without-fish}
@item @command{make install-info} @cindex @command{--without-fish}
will install the @command{info} manual, this will enable the command @command{info ponysay}. @cindex @command{fish}, without
@item @command{make install-man} will skip installation of auto-completion for @command{ponysay} and the
will install the English manpage, which is a small to the point manual that is Friendly interactive shell, @command{fish}.
a bit more helpful @command{ponysay --help}. This will enable the command @item @command{--without-zsh}
@command{man ponysay} and @command{man 6 ponysay}. @cindex @command{--without-zsh}
@item @command{make install-man-es} @cindex @command{zsh}, without
will install a Spanish translation of the manpage. To read it you execute will skip installation of auto-completion for @command{ponysay} and the
@command{man -L es ponysay} or @command{man -L es 6 ponysay}. shell @command{zsh}.
@end itemize @end itemize
@cindex @command{--prefix=TARGET}
@cindex @code{/usr/games}
The program is by default installed in @code{/usr}, if you want another target The program is by default installed in @code{/usr}, if you want another target
directory, you can add @code{PREFIX} when running @command{make}. For example directory, you can add @command{--prefix=TARGET} when running @command{./configure}.
to install @command{ponysay} in @code{/usr/games} you build the program by For example to install @command{ponysay} in @code{/usr/games} you build the
running @command{make PREFIX=/usr/games}, and alike for installation and uninstallation. program by running @command{./configure --prefix=/usr/games}, and alike for
installation and uninstallation. Notice the @command{=} cannot be substituted
with white space.
@cindex @command{--info-desc=DESCRIPTION}
If you are not using @command{--without-info} you can add
@command{--info-desc=DESCRIPTION} to specify the description @command{info}
which provide when listing commands.
@node Arch Linux @node Arch Linux
@ -622,8 +661,8 @@ running @command{make PREFIX=/usr/games}, and alike for installation and uninsta
@cindex arch linux @cindex arch linux
The official Arch Linux package repositories contains @command{ponysay} as The official Arch Linux package repositories contains @command{ponysay} as
@code{community/ponysay}. The Arch Linux User Repository (AUR) contains a bleeding edge @code{community/ponysay}. The Arch Linux User Repository (AUR) contains a bleeding
git version of @command{ponysay} as @code{ponysay-git}. edge git version of @command{ponysay} as @code{ponysay-git}.
@node Gentoo Linux @node Gentoo Linux
@ -649,15 +688,11 @@ and a PPA can be found at @url{https://launchpad.net/~blazemore/+archive/ponysay
If you did not install @command{ponysay} with a package manager, but rather 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}. manually from the upstream, you can uninstall it by running @command{make uninstall}.
Do not forget @code{PREFIX} if it is not installed in @code{/usr}, see
@ref{Custom installations}.
Well written package manages will uninstall files that the package is no longer 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 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 @code{Makefile}. used, by the currently installed version you will need that versions @code{Makefile}.
To perform the uninstallion of old filed run @command{make uninstall-old}. To perform the uninstallion of old filed run @command{make uninstall-old}.
Do not forget @code{PREFIX} if it is not installed in @code{/usr}, see
@ref{Custom installations}.
@ -683,8 +718,8 @@ are enabled when other packages are installed.
@command{ponyquotes4ponysay} is a package that adds support for MLP:FiM quotes that are @command{ponyquotes4ponysay} is a package that adds support for MLP:FiM quotes that are
displayed with the associated ponies. See @ref{Invoking ponysay} for more information. displayed with the associated ponies. See @ref{Invoking ponysay} for more information.
As of version 1.2 @command{ponyquotes4ponysay} is included in @command{ponysay}, but can easily As of version 1.2 @command{ponyquotes4ponysay} is included in @command{ponysay},
be removed, but is still available at @url{https://github.com/maandree/ponyquotes4ponysay}. but is still available at @url{https://github.com/maandree/ponyquotes4ponysay}.
@node kmsponies4ponysay @node kmsponies4ponysay
@ -700,7 +735,7 @@ be removed, but is still available at @url{https://github.com/maandree/ponyquote
@cindex .bashrc @cindex .bashrc
@command{kmsponies4ponysay} is an extension for TTY users that have a custom TTY colour @command{kmsponies4ponysay} is an extension for TTY users that have a custom TTY colour
palette and KMS support. KMS is supported on must computers, but due to lack of published palette and KMS support. KMS is supported on most computers, but due to lack of published
specifications Nvidea drivers does not support KMS. @command{kmsponies4ponysay} can be specifications Nvidea drivers does not support KMS. @command{kmsponies4ponysay} can be
downloaded at @url{https://github.com/maandree/kmsponies4ponysay}. downloaded at @url{https://github.com/maandree/kmsponies4ponysay}.
@ -718,7 +753,7 @@ Assuming you have a function in your @code{~/.bashrc}, to reset the colour palet
you set it to last time in the terminal, named @command{reset-palette}, your @code{~/.bashrc} you set it to last time in the terminal, named @command{reset-palette}, your @code{~/.bashrc}
should, for example, contain: should, for example, contain:
@example @example
[[ "$TERM" = "linux" ]] && [ "$TERM" = "linux" ] &&
function ponysay function ponysay
@{ export PONYSAY_KMS_PALETTE="`reset-palette`" @{ export PONYSAY_KMS_PALETTE="`reset-palette`"
exec ponysay "$@@" exec ponysay "$@@"
@ -727,6 +762,9 @@ should, for example, contain:
@command{kmsponies4ponysay} uses @code{/var/cache/kmsponies4ponysay/} for cache space. @command{kmsponies4ponysay} uses @code{/var/cache/kmsponies4ponysay/} for cache space.
As of version 2.0 @command{kmsponies4ponysay} is included in @command{ponysay},
but is still available at @url{https://github.com/maandree/kmsponies4ponysay}.
@node Inner workings @node Inner workings
@ -739,6 +777,7 @@ should, for example, contain:
* Printing in TTY with KMS:: Printing in TTY with KMS. * Printing in TTY with KMS:: Printing in TTY with KMS.
* Truncation:: Output truncation. * Truncation:: Output truncation.
* Languages:: Selection of languages. * Languages:: Selection of languages.
* Shell auto-completion:: Things make auto-completion simplier.
@end menu @end menu
@ -817,13 +856,37 @@ sequences after the first character after the initial escape if it is not either
@cindex script languages @cindex script languages
@cindex programming languages @cindex programming languages
Ponysay is written primarily in GNU Bash shell script (POSIX compliant); the truncater Before version 2.0 @command{ponysay} was written primarily in GNU Bash script
is however written in C, because it is simple, fast, does not pose addition dependencies, (POSIX compliant); the truncater was however written in C, because it is simple,
and is easy to do byte hacking in. fast, does not pose addition dependencies, and is easy to do byte hacking in.
Sometimes shell is too slow, in these cases [that exist today] Perl is used; Perl Sometimes shell is too slow, in these cases Perl was used; Perl was already
is already required by cowsay, is similar to shell, but also supports hash tables. required by cowsay, is similar to shell, but also supports hash tables.
[maandree: I actually learned Perl just for this.]
However since version 2.0 we are trying to move from all there languages
and only use Python 3.
@node Shell auto-completion
@section Shell auto-completion
@cindex auto-completion, inner workings
@cindex shell, auto-completion
@cindex @command{--onelist}
@cindex @command{--quoters}
To make it easier to write auto-completion for shells, @command{ponysay} supports
the two options @command{--onelist} and @command{--quoters}, which has not short
versions.
Executing @command{ponysay --onelist} will list every available 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 limites the ponies to those that have quotes. Ponies that have qoutes,
but does not exist, i.e. does not have a .pony-file, are not listed.
Auto-completion scripts should not suggest these options.
@ -892,6 +955,17 @@ To be able to run @command{make -B ttyponies} you must have the packages listed
@cindex versions @cindex versions
@cindex previous releases @cindex previous releases
@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 @heading Version 1.4.1
@itemize @bullet @itemize @bullet
@ -1188,26 +1262,28 @@ First release.
@node Ponysay contributors @node Ponysay contributors
@appendix Ponysay contributors @appendix Ponysay contributors
Active developers of ponysay: Active developers and major contributors of ponysay:
@itemize @bullet @itemize @bullet
@item Erkin Batu Altunbaş @item Erkin ``erkin'' Batu Altunbaş
@item Mattias Andrée @item Mattias ``maandree'' Andrée
@item Sven-Hendrik Haase @item Elis ``etu'' Axelsson
@item Pablo Lezaeta @item Sven-Hendrik ``svenstaro'' Haase
@item Jan Alexander Steffens @item Pablo ``jristz'' Lezaeta
@item Jan Alexander ``heftig'' Steffens
@end itemize @end itemize
@* @*
Patchers and other contributors of ponysay: Patchers and other contributors of ponysay:
@itemize @bullet @itemize @bullet
@item Elis Axelsson @item Duane ``Marneus68'' Bekaert
@item Duane Bekaert @item Kyah ``L-four'' Rindlisbacher
@item Kyah Rindlisbacher @item James ``rossy2401'' Ross-Gowan
@item James Ross-Gowan @item Louis ``kragniz'' Taylor
@item Louis Taylor @item Jannis ``sycoso''
@item Jannis @item ``spider-mario''
@end itemize @end itemize
@node Ponysay license @node Ponysay license
@appendix Ponysay license @appendix Ponysay license
@ -1219,11 +1295,15 @@ You have the four essential freedoms:
@item @item
The freedom to run the program, for any purpose (freedom 0). The freedom to run the program, for any purpose (freedom 0).
@item @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. 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 @item
The freedom to redistribute copies so you can help your neighbour (freedom 2). The freedom to redistribute copies so you can help your neighbour (freedom 2).
@item @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. 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 @end itemize
@* @*

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more