From ff4fe56a6ca62bb02ec8c5689baa45eaf20e9c62 Mon Sep 17 00:00:00 2001 From: joey Date: Fri, 10 Aug 2007 00:19:09 +0000 Subject: [PATCH] * Add scottish filter by Adam Borowski. Closes: #436168 --- Makefile | 2 +- debian/changelog | 3 ++- debian/copyright | 7 ++++++- filters.6 | 9 ++++++--- scottish | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 66 insertions(+), 6 deletions(-) create mode 100755 scottish diff --git a/Makefile b/Makefile index 8e7049d..9fb3326 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ LEX = flex BUILD = jethro kraut cockney jive nyc ken ky00te newspeak nethackify OTHER = eleet b1ff chef jibberish upside-down rasterman studly fudd \ - censor spammer uniencode pirate kenny + censor spammer uniencode pirate kenny scottish CFLAGS = -O2 -lfl INSTALL_PROGRAM = install diff --git a/debian/changelog b/debian/changelog index 3d64294..e96d98d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ filters (2.40) UNRELEASED; urgency=low * Update url to web page in README. + * Add scottish filter by Adam Borowski. Closes: #436168 - -- Joey Hess Thu, 17 May 2007 00:12:46 -0400 + -- Joey Hess Thu, 09 Aug 2007 17:18:26 -0700 filters (2.39) unstable; urgency=low diff --git a/debian/copyright b/debian/copyright index cbb4066..b6b3927 100644 --- a/debian/copyright +++ b/debian/copyright @@ -105,7 +105,12 @@ The kenny filter is copyright (C) 2001,2002 by Christian Garbs , Alan Eldridge , and is licensed under the Artistic license. -Everything else is copyright 1999-2005 by Joey Hess, under the terms of GPL. +The scottish fileter is copyright 2007 by Adam Borowski +, and is licensed under the GPL. + +Everything else is copyright 1999-2007 by Joey Hess, under the terms of +GPL. + On Debian systems, the full text of the GNU GPL can be found in /usr/share/common-licenses/GPL and the Artistic license in /usr/share/common-licenses/Artistic diff --git a/filters.6 b/filters.6 index bdba766..9404c26 100644 --- a/filters.6 +++ b/filters.6 @@ -1,6 +1,6 @@ .TH FILTERS 6 .SH NAME -ken, b1ff, censor, chef, cockney, eleet, fudd, jethro, jibberish, jive, kenny, kraut, ky00te, nethack, newspeak, nyc, pirate, rasterman, spammer, studly, uniencode, upside\-down \- assorted text filters +ken, b1ff, censor, chef, cockney, eleet, fudd, jethro, jibberish, jive, kenny, kraut, ky00te, nethack, newspeak, nyc, pirate, rasterman, scottish, spammer, studly, uniencode, upside\-down \- assorted text filters .SH SYNOPSIS $SHELL | chef @@ -55,6 +55,9 @@ Brooklyn English Talk like a pirate. .IP rasterman Makes text look like it came from the keyboard of Carsten Haitzler. +.IP scottish +Fake scottish (dwarven) accent filter, inspired by the character "Durkon" +from Order of the Stick. .IP spammer Turns honest text into something that is liable to be flagged as spam. .IP studly @@ -76,5 +79,5 @@ cockney, jive, and nyc filters. jibberish is by Raul Miller Stephen K Mulrine , newspeak is by Jamie Zawinski , studly is by Nick Phillips , Gurkan Sengun wrote nethackify, Dougal Campbell - wrote pirate, kraut is by John Sparks, and Kenny is by -Christian Garbs and Alan Eldridge. + wrote pirate, kraut is by John Sparks, scottish by +Adam Borowski, and Kenny is by Christian Garbs and Alan Eldridge. diff --git a/scottish b/scottish new file mode 100755 index 0000000..aff89a0 --- /dev/null +++ b/scottish @@ -0,0 +1,51 @@ +#!/usr/bin/perl -w +# Fake scottish (dwarven) accent filter, by Adam Borowski, inspired by the +# character "Durkon" from Order of the Stick by Rich Burlew. GPL, 2007. +use strict; + +my @repl=qw( + ^yes$:aye there:thar eir$:ar + about:aboot ^he$:'e them:'em + ^him:'im out_of$:outta of_course:'course + ^of$:o' ^and$:an' to$:ta + tog:tag that:tha the:tha + wouldn't:wouldn'ta cannot:cannae can't:cannae + don't:dinnae 're$:r for$:fer + ver$:'er ber$:b'r every$:ev'ry + en$:'n ^if$:if'n enl:'nl + eng:'ng ing:in' ment:mn't + ^es:'s ^ex:'s ^not$:na + ^no$:nay n't_have:n'tve ^is$:be + ^are$:be have:haf abl:'bl + ^you$:ye ^your:yer ^you':ye' + noth:nuth ^this$:'tis ^here:'ere + doesn't:don't at_a$:atta ith$:it' + ered$:'red into$:inta ^before:'fore + wit'_':wit_' wit'_t:wit_t wit'_w:wit_w + wit'_y:wit_y get_a:git_a ally$:'lly$ + ^my:me ^i_think$:methinks nay_w:na_w + ^one$:'un ^'un_a:one_a at_ta$:atta + ot_ta$:otta ^isn't$:ain't ^so_th:s'th + ned$:n'd ^because:'cause +), my @r; + +sub firstu($) { + $_[0]=~s/^([^a-z]*)([a-z])/$1\u$2/; + return $_[0]; +} + +for(@repl) { + s/_/ /g; + my ($l,$r)=split(/:/,$_); + for([$l,$r], [firstu $l, firstu $r], ["\U$l","\U$r"]) { + ($l,$r)=@$_; + $l=~s/^\^/\\b/; + $l=~s/\$$/\\b/; + push @r, [qr/$l/, $r]; + } +} + +while(my $txt=<>) { + $txt=~s/$$_[0]/$$_[1]/g for @r; + print $txt; +} -- 2.30.2