* ken is now free.
authorjoey <joey@a4a2c43b-8ac3-0310-8836-e0e880c912e2>
Mon, 11 Jun 2001 19:13:18 +0000 (19:13 +0000)
committerjoey <joey@a4a2c43b-8ac3-0310-8836-e0e880c912e2>
Mon, 11 Jun 2001 19:13:18 +0000 (19:13 +0000)
Makefile
README
debian/changelog
debian/control
debian/copyright
filters.6
ken.l [new file with mode: 0644]

index 1649d4bd8c88223ba8d961338f96c58ccb155d0a..ffd2c8b97f69ce40168f8b577188fd9e03f477c6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
 
 LEX     = flex
 
 
 LEX     = flex
 
-ALL     = jethro kraut cockney jive nyc
+ALL     = jethro kraut cockney jive nyc ken
 OTHER   = eleet b1ff chef jibberish upside-down rasterman
 
 all:   $(OTHER) $(ALL)
 OTHER   = eleet b1ff chef jibberish upside-down rasterman
 
 all:   $(OTHER) $(ALL)
diff --git a/README b/README
index c8358ea920fe817e20b6dc615f4e9f1be4b2a6ef..dbbcf92b8f8412bfc4c17a9fc6fe1a7383f0a7b2 100644 (file)
--- a/README
+++ b/README
@@ -1,12 +1,13 @@
 This is a collection of filters to do all sorts of strange things to text.
 B1ff, the Swedish Chef, and an eleet filter are included. 
 
 This is a collection of filters to do all sorts of strange things to text.
 B1ff, the Swedish Chef, and an eleet filter are included. 
 
-Since the original versions of these filters have copyright problems, I have
-done a "clean room" re-implementation of the original lex filters in perl. I
-did this without looking at the original code to the filters at all, I
-simply observed their output and drew my own conclusions, and wrote my own
-code. Then I compared the output of the original and new filters when ran on
-large bodies of text, and fixed the things I had missed.
+Since the original versions of some of these filters have copyright
+problems, I have done a "clean room" re-implementation of the original lex
+filters in perl. I did this without looking at the original code to the
+filters at all, I simply observed their output and drew my own conclusions,
+and wrote my own code. Then I compared the output of the original and new
+filters when ran on large bodies of text, and fixed the things I had
+missed.
 
 Here are the results of my investigations of how the filters work:
 
 
 Here are the results of my investigations of how the filters work:
 
index a778bee197d4397791ae0590e3f6e7ba89fe05f6..3286aa2d29cd908671a552b24fcfe25b03762cdf 100644 (file)
@@ -1,3 +1,9 @@
+filters (2.16) unstable; urgency=low
+
+  * ken is now free.
+
+ -- Joey Hess <joeyh@debian.org>  Mon, 11 Jun 2001 14:58:58 -0400
+
 filters (2.15) unstable; urgency=low
 
   * Rasterized jubberish, Closes: #81901
 filters (2.15) unstable; urgency=low
 
   * Rasterized jubberish, Closes: #81901
index 6e02ba4921212fb2bd9c2bad4b248bc39e8d8e60..4efb40fc1d095a0c229ff24e042b69e1f23d823b 100644 (file)
@@ -3,11 +3,12 @@ Section: games
 Priority: optional
 Build-Depends: debhelper (>= 2.1.0), flex
 Maintainer: Joey Hess <joeyh@debian.org>
 Priority: optional
 Build-Depends: debhelper (>= 2.1.0), flex
 Maintainer: Joey Hess <joeyh@debian.org>
-Standards-Version: 3.2.1.0
+Standards-Version: 3.5.5.0
 
 Package: filters
 Architecture: any
 
 Package: filters
 Architecture: any
-Conflicts: filters-nonfree (<< 2.4)
+Conflicts: filters-nonfree (<< 2.6)
+Replaces: filters-nonfree (<< 2.6)
 Depends: ${shlibs:Depends}
 Description: a collection of filters, including B1FF and the swedish chef
  A collection of filters to do all sorts of strange things to text.
 Depends: ${shlibs:Depends}
 Description: a collection of filters, including B1FF and the swedish chef
  A collection of filters to do all sorts of strange things to text.
index 4535b170be7882c10f5739127c725b6f0998eb35..3b9e24beff852bab1c142c4ba2604d2f97370e7e 100644 (file)
@@ -37,4 +37,21 @@ The rasterman filter was pulled out of
 http://www.xach.com/xachbot/xachbot-2000-07-15.tar.gz, which is as a whole
 copyright (C) 1997 Zachary Beane and is GPL'd.
 
 http://www.xach.com/xachbot/xachbot-2000-07-15.tar.gz, which is as a whole
 copyright (C) 1997 Zachary Beane and is GPL'd.
 
-Everything else is copyright 1999 by Joey Hess, under the terms of GPL.
+The ken filter is now in the public domain. It's author, Stephen K Mulrine,
+confirmed the new copyright in this email:
+
+  From: Stephen Mulrine <stephen@moroder.scotnet.co.uk>
+  Date: Mon, 11 Jun 2001 01:06:52 +0100 (BST)
+  To: edward@debian.org (Edward Betts)
+  Subject: Re: Ken?
+
+  [...]
+
+  >We would like to include ken in the Debian GNU/Linux Operating System, but
+  >we need permission to modify ken if we want to. Would you be willing to
+  >relicense ken under the GNU GPL, a BSD like license, or public domain?
+
+  Certainly, it would be an honour to have it included in the Debian
+  distribution so I hereby release ken into the public domain.
+
+Everything else is copyright 1999-2001 by Joey Hess, under the terms of GPL.
index 1fb1a8a9ced5289af6025ad58041b1b49ee641c5..f3cf031712f41e0b1043a17e1a0310ce9173033c 100644 (file)
--- a/filters.6
+++ b/filters.6
@@ -1,6 +1,6 @@
 .TH FILTERS 6
 .SH NAME
 .TH FILTERS 6
 .SH NAME
-b1ff, chef, cockney, eleet, jethro, jibberish, jive, kraut, nyc, rasterman, upside-down \- assorted text filters
+ken, b1ff, chef, cockney, eleet, jethro, jibberish, jive, kraut, nyc, rasterman, upside-down \- assorted text filters
 .SH SYNOPSIS
  $SHELL | chef
 .SH "DESCRIPTION"
 .SH SYNOPSIS
  $SHELL | chef
 .SH "DESCRIPTION"
@@ -15,14 +15,17 @@ The B1FF filter
 Cockney English
 .IP chef
 convert English on stdin to Mock Swedish on stdout
 Cockney English
 .IP chef
 convert English on stdin to Mock Swedish on stdout
+.IP eleet
+K3wl hacker slang
 .IP jethro
 Hillbilly text filter
 .IP jive
 Jive English
 .IP jibberish
 Runs text through all the rest of the filters, to make really weird output.
 .IP jethro
 Hillbilly text filter
 .IP jive
 Jive English
 .IP jibberish
 Runs text through all the rest of the filters, to make really weird output.
-.IP eleet
-K3wl hacker slang
+.IP ken
+English into Cockney, featuring (dubious) rhyming
+slang for a lot of computer terminology.
 .IP kraut
 Generates text with a German accent.
 .IP nyc
 .IP kraut
 Generates text with a German accent.
 .IP nyc
@@ -39,5 +42,5 @@ The eleet, upside-down, chef, and b1ff filters were written by Joey
 Hess <joey@kitenet.net>. Daniel V Klein <dvk@lonewolf.com> wrote the
 cockney, jive, and nyc filters. jibberish is by Raul Miller
 <rdm@test.legislate.com>, jethro is by Duane Paulson
 Hess <joey@kitenet.net>. Daniel V Klein <dvk@lonewolf.com> wrote the
 cockney, jive, and nyc filters. jibberish is by Raul Miller
 <rdm@test.legislate.com>, jethro is by Duane Paulson
-<ci922@cleveland.freenet.edu>, rasterman is by Zachary Beane, and kraut is
-authored by John Sparks.
+<ci922@cleveland.freenet.edu>, rasterman is by Zachary Beane, ken is by
+Stephen K Mulrine <skm@eqsn.net> and kraut is by John Sparks.
diff --git a/ken.l b/ken.l
new file mode 100644 (file)
index 0000000..942564b
--- /dev/null
+++ b/ken.l
@@ -0,0 +1,293 @@
+%{
+/*
+ * ken:
+ * will turn English into Cockney, featuring (dubious) rhyming slang for a lot
+ * of computer terminology.
+ * 
+ * Written by Stephen K Mulrine <smulrine%cs.strath.ac.uk@nsfnet-relay.ac.uk>
+ * Make copies if you want etc.etc.
+ * 
+ * Contacted author in June 2001, asked him to clarify the license, he replied
+ * with some improvements and placed the program in the public domain.
+ *         -- Edward Betts <edward@debian.org> Mon, 11 Jun 2001 12:04:29 +0100
+ * 
+ * ken is named after Ken the Chirpy Cockney Character from the Viz Comic (tm),
+ * who speaks somewhat like that.
+ */
+%}
+%e 3000
+%p 6000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [   ]
+EW [   .,;!?]
+%{
+    char buf[128];
+%}
+
+%%
+
+stairs         printf("apples and pears");
+Downstairs     printf("Down the apples and pears");
+downstairs     printf("down the apples and pears");
+Upstairs       printf("Up the apples and pears");
+upstairs       printf("up the apples and pears");
+[Mm]outh       printf("North and South");
+[Ff]ace                printf("Boat Race");
+[Tt]rouble     printf("Barney Rubble");
+wife           {       switch(rand()%2)
+                       {
+                       case 0: printf("trouble and strife"); break;
+                       case 1: printf("ole lady"); break;
+                       }
+               }
+Road           printf("Frog and Toad");
+" road"                printf(" frog and toad");
+"pub "         printf("rub-a-dub ");
+" bar "                printf(" boozer ");
+" husband"     printf(" ole man");
+Party          printf("Knees-up");
+party          printf("knees-up");
+Parties                printf("Knees-ups");
+parties                printf("knees-ups");
+My             printf("Me");
+" my"          printf(" me");
+Your           printf("Yer");
+your           printf("yer");
+"You are "      printf("Yer ");
+"you are "      printf("yer ");
+You            printf("Yer");
+you            printf("yer");
+Those          printf("Them");
+those          printf("them");
+" those"       printf(" them");
+"(those"       printf("(them");
+"The "         {   switch(rand()%5)
+                   {
+                   case 0: printf("The bleedin' "); break;
+                   default: ECHO; break;
+                   }
+               }
+"The"          ECHO;
+" the "                {   switch(rand()%5)
+                   {
+                   case 0: printf(" the bleedin' "); break;
+                   default: ECHO; break;
+                   }
+               }
+[" "(]the      ECHO;
+"the "         {   switch(rand()%5)
+                   {
+                   case 0: printf(" the bleedin' "); break;
+                   default: ECHO; break;
+                   }
+               }
+[Tt]his                ECHO;
+[" "(]this     ECHO;
+[Tt]hat                ECHO;
+[" "(]that     ECHO;
+Thus           printf("So");
+" thus"                printf(" so");
+"(thus"                printf("(so");
+"thus"         printf("so");
+[Tt]han                ECHO;
+[" "(]than     ECHO;
+Who            ECHO;
+who            ECHO;
+" old "                printf(" ole ");
+" to "         printf(" ter ");
+"Aren't you "   printf("Aintcha ");
+"aren't you "   printf("aintcha ");
+"Aren't"       printf("Ain't");
+"aren't"       printf("ain't");
+"Isn't"                printf("Ain't");
+"isn't"                printf("ain't");
+"Are not "     printf("Ain't");
+"are not "     printf("ain't ");
+"Is not "      printf("Ain't ");
+" is not "     printf(" ain't ");
+"What is th"    printf("Woss");
+"what is th"    printf("woss");
+"What are you "        printf("Wotcher ");
+"what are you "        printf("wotcher ");
+"What you are" printf("Wotcher");
+"what you are" printf("wotcher");
+"What you're"  printf("Wotcher");
+"what you're"  printf("wotcher");
+"What are your"        printf("Wotcher");
+"what are your"        printf("wotcher");
+"What do you "  printf("Wotcher ");
+"what do you " printf("wotcher ");
+"What do your"  printf("Wotcher");
+"what do your" printf("wotcher");
+" "H[aeu]llo   printf(" Wotcher");
+" "h[aeu]llo   printf(" wotcher");
+What           printf("Wot");
+what           printf("wot");
+Were           printf("Was");
+were           printf("was");
+Bother         printf("Ars");
+bother         printf("ars");
+Mother         printf("Muvver");
+Other          printf("Uvver");
+other          printf("uvver");
+Father         printf("Favver");
+father         printf("favver");
+Rather         printf("Ravver");
+rather         printf("ravver");
+Weather                printf("Wevver");
+weather                printf("wevver");
+Leather                printf("Levver");
+leather                printf("levver");
+Wither         printf("Wivver");
+wither         printf("wivver");
+Either         printf("Eever");
+either         printf("eever");
+With           printf("Wiv");
+with           printf("wiv");
+Anything       printf("Anyfink");
+anything       printf("anyfink");
+Something      printf("Sumfink");
+something      printf("sumfink");
+Nothing                printf("Nuffink");
+nothing                printf("nuffink");
+guitars                printf("spoons");
+guitar         printf("spoons");
+drums          printf("spoons");
+drum           printf("spoons");
+trumpets       printf("spoons");
+trumpet                printf("spoons");
+violins                printf("spoons");
+violin         printf("spoons");
+clarinets      printf("spoons");
+clarinet       printf("spoons");
+trombones      printf("spoons");
+trombone       printf("spoons");
+oboes          printf("spoons");
+oboe           printf("spoons");
+flutes         printf("spoons");
+flute          printf("spoons");
+tubas          printf("spoons");
+tuba           printf("spoons");
+Data           printf("Info");
+data           printf("info");
+Directory      printf("Lockup");
+directory      printf("lockup");
+Directories    printf("Lockups");
+directories    printf("lockups");
+[Pp]rocess     {   switch(rand()%2)
+                   {
+                   case 0: printf("Queen Bess"); break;
+                   case 1: printf("Rudolf 'Ess"); break;
+                   }
+               }
+[Cc]omputer    printf("French Tutor");
+[Bb]yte                printf("Jimmy White");
+[Ff]iles       printf("Nobby Stiles");
+[Ff]ile                printf("Royal Mile");
+[Ll]anguage    printf("'Am Sandwich");
+[Zz]ero                printf("Emperor Nero");
+[Jj]ob         printf("Uncle Bob");
+[Ss]hell       printf("Bow Bell");
+[Ss]ave                printf("Chas'n'Dave");
+[Ll]oad                printf("Old Kent Road");
+[Mm]ouse       printf("Doll's 'Ouse");
+[Bb]uffer      printf("Sausage Stuffer");
+[Kk]eyboard    printf("Henry Ford");
+[Mm]anual      printf("Cocker Spaniel");
+[Ss]creen      printf("James Dean");
+[Pp]rinter     printf("'Arold Pinter");
+[Pp]lotter     printf("Pansy Potter");
+[Cc]ompiler    printf("Martin Tyler");
+[Ss]tring      printf("Emperor Ming");
+[Bb]rain       printf("Michael Caine");
+[Pp][Aa][Ss][Cc][Aa][Ll]       {   switch(rand()%2)
+                                   {
+                                   case 0: printf("Pall Mall"); break;
+                                   case 1: printf("Roald Dahl"); break;
+                                   }
+                               }
+[Aa][Ll][Gg][Oo][Ll]   printf("Johnny Ball");
+[Ff][Oo][Rr][Tt][Rr][Aa][Nn]   printf("Manfred Mann");
+[Cc][Oo][Bb][Oo][Ll]   printf("Albert Hall");
+[Jj]ava                printf("Wot a palavah");
+[Ww][Aa][Pp]   printf("Pony and trap");
+Stopped                printf("'Ad the mockers put on");
+stopped                printf("'ad the mockers put on");
+Stopping       printf("Putting the mockers on");
+stopping       printf("putting the mockers on");
+stops          printf("puts the mockers on");
+stop           printf("put the mockers on");
+STOP           printf("Put The Mockers On");
+[Ll]ondoner    printf("Cockney");
+friend         {   switch(rand()%3)
+                   {
+                   case 0: printf("mucker"); break;
+                   case 1: printf("mate"); break;
+                   case 2: printf("china"); break;
+                   }
+               }
+"a h"          printf("an '");
+"A h"          printf("An '");
+" h"           printf(" '");
+" H"           printf(" '");
+" C-"          printf(" Bruce Lee-");
+" C "          {        switch(rand()%4)
+                        {
+                        case 0: printf(" Bruce Lee "); break;
+                        case 1: printf(" Circus Flea "); break;
+                        case 2: printf(" Bumble Bee "); break;
+                        case 3: printf(" Door Key "); break;
+                        }
+               }
+" C."          printf(" Circus Flea.");
+Th             printf("F");
+Wh             printf("W");
+wh             printf("w");
+aw             printf("or");
+" "[BbKkMmPpRrSsWw]ing ECHO;
+" "[Bb]ring    ECHO;
+" "[Ss]ting    ECHO;
+" "[Ss]wing    ECHO;
+" "[CcFfSs]ling        ECHO;
+" Thing"       printf(" Fing");
+" thing"       printf(" fing");
+
+"ing "         printf("in' ");
+". "           {   switch(rand()%32)
+                   {
+                   case 0: printf(". I'll get out me spoons. "); break;
+                   case 1: printf(". Yer can't 'ave a knees-up wivout a joanna. "); break;
+                   case 2: printf(". Cor blimey guv, would I lie to you. "); break;
+                   case 3: printf(". I'll make us all a nice cup of tea. "); break;
+                   default: ECHO; break;
+                   }
+               }
+"? "           {   switch(rand()%3)
+                   {
+                   case 0: printf(", mate? "); break;
+                   case 1: printf(", guv? "); break;
+                   case 2: printf(", squire? "); break;
+                   }
+               }
+"! "           {   switch(rand()%6)
+                   {
+                   case 0: printf(", cor blimey! "); break;
+                   case 1: printf("! Struth! "); break;
+                   case 2: printf(", guv! "); break;
+                   case 3: printf("! Honest guv! "); break;
+                   case 4: printf(", mate! "); break;
+                   case 5: ECHO; break;
+                   }
+               }
+.              printf(yytext);
+\n             printf("\n");
+%%
+
+main()
+{
+       srand(getpid());
+       yylex();
+}
This page took 0.019709 seconds and 4 git commands to generate.