Push files
parent
0f6b4baaa6
commit
4aac31a5de
|
@ -0,0 +1,52 @@
|
|||
|
||||
To the best of my knowledge, here are the known authors for these
|
||||
filters. If you have additions/corrections to this information, please
|
||||
submit them.
|
||||
|
||||
The filters were collected into a single package, optimized, and
|
||||
converted to work as a library by Mark Lindner.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
austro - Tom van Nes
|
||||
|
||||
b1ff - Matt Welsh, David Whitten
|
||||
|
||||
brooklyn - Daniel V. Klein [originally named "nyc"]
|
||||
|
||||
chef - John Hagerman
|
||||
|
||||
cockney - "ken" by Stephen K Mulrine, Edward Betts; merged
|
||||
with "cockney" by (unknown) which was expanded significantly by
|
||||
Samuel Stoddard
|
||||
|
||||
drawl - Adam Hudd
|
||||
|
||||
dubya - (anonymous submission)
|
||||
|
||||
fudd - (unknown)
|
||||
|
||||
funetak - "Eclipse Enterprises" (unknown)
|
||||
|
||||
jethro - Duane Paulson
|
||||
|
||||
jive - Daniel V. Klein, Clement Cole, Samuel Stoddard
|
||||
|
||||
kraut - John Sparks
|
||||
|
||||
pansy - (unknown)
|
||||
|
||||
pirate - Dougal Campbell (originally Perl code); conversion and additions
|
||||
by Mark Lindner
|
||||
|
||||
postmodern - (unknown) [this filter is also known as "feminazi"]
|
||||
|
||||
redneck - Brand Hilton
|
||||
|
||||
valspeak - (unknown)
|
||||
|
||||
warez - Ian Johnston
|
||||
|
||||
wrap - Mark Lindner
|
||||
|
||||
------------------------------------------------------------------------------
|
|
@ -0,0 +1,340 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,111 @@
|
|||
2007-12-29 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* talkfilters.c, talkfilters.h, Makefile.am, Makefile.in, config.h,
|
||||
- MinGW & VC++ build fixes
|
||||
* config.guess, config.sub, ltmain.sh, aclocal.m4, libtool
|
||||
- updated to newest
|
||||
|
||||
2006-11-21 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* pirate.l - minor improvements
|
||||
* dubya.l - minor improvements
|
||||
* common.h - use VERSION instead of hardcoded version number
|
||||
|
||||
2006-10-27 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* common.c - fix compiler warning
|
||||
* *.sln, *.vcproj, win32/unistd.h - add Visual C++ Express 2005
|
||||
build files
|
||||
* talkfilters.c - update version number
|
||||
* common.h - use C99 varargs macro notation; added some #defines for
|
||||
win32
|
||||
* pirate.l - added rule
|
||||
* talkfilters.h - added extern "C" guard
|
||||
|
||||
2006-09-18 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* common.c - fix compiler warnings
|
||||
* talkfilters.h, talkfilters.c, configure.in, Makefile.am
|
||||
- changes for DLL creation
|
||||
|
||||
2006-04-17 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* funetak.l - replaced random() with gtf_random(); eliminates build
|
||||
error in mingw
|
||||
|
||||
2006-04-15 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* <multiple> - added support for pkg-config
|
||||
|
||||
2005-11-21 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* gaim_plugin/talkfilters.c, Makefile.am - Removed the GAIM plugin,
|
||||
as it's now being maintained elsewhere.
|
||||
* common.c, talkfilters.c, common.h, configure.in - Build fixes.
|
||||
* talkfilters.spec - added new file
|
||||
The above all contributed by Peter Lawler
|
||||
|
||||
2005-01-10 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* gaim_plugin/talkfilters.c - Updated to work with GAIM 1.1.0.
|
||||
|
||||
2004-06-28 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* gaim_plugin/talkfilters.c - Incorporated bug fix submitted by a user.
|
||||
The bug caused the IM to only be filtered locally (not sent in
|
||||
filtered form to the other end). This must be a regression when
|
||||
moving to GAIM 0.78/0.79.
|
||||
|
||||
2004-06-26 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* gaim_plugin/* - Updated plugin to work with GAIM 0.79, and clarified
|
||||
installation instructions.
|
||||
|
||||
2004-01-06 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* funetak.l - Fixed a capitalization problem.
|
||||
* austro.l - Added missing rules, whose absence caused garbled output
|
||||
from filter function.
|
||||
* gaim_plugin/* - New plugin for GAIM.
|
||||
|
||||
2003-12-02 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* *.l, *.c, *.h - Added contributed austro and dubya filters.
|
||||
|
||||
2003-07-22 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* *.l - Added rules to leave HTML tags intact. Do you see where
|
||||
I'm going with this? ;-)
|
||||
* kraut.l - Minor fixes and corrections (submitted by Thomas M. Ott)
|
||||
* talkfilters.man - Documentation updates.
|
||||
* configure.in - Rewrote `flex' check.
|
||||
|
||||
2003-04-29 Mark Lindner <markl@neuromancer>
|
||||
|
||||
* jive.l - Added a few more rules.
|
||||
|
||||
2003-02-13 Mark Lindner <markl@dystance.net>
|
||||
|
||||
* *.l - Made a fix so that compilation doesn't fail with older
|
||||
versions of gcc: moved declaration of _yybuf so that it's before the
|
||||
first statement in the filter function.
|
||||
|
||||
2003-02-11 Mark Lindner <markl@dystance.net>
|
||||
|
||||
* <multiple> - Complete overhaul of package; added automake/libtool
|
||||
support, and produce not only executables but also a library.
|
||||
|
||||
Tue Jul 4 21:33:08 2000 Mark A. Lindner <markl@dystance.net>
|
||||
|
||||
* Makefile.in: Modified `dist' target and added `info' target.
|
||||
|
||||
* talkfilters.texi: Texinfo documentation added.
|
||||
|
||||
Thu Dec 31 17:09:45 1998 Joel N. Weber II <devnull@melange.gnu.org>
|
||||
|
||||
* configure.in: Rewrote the check for lex to just check for flex
|
||||
and bail if it isn't found.
|
||||
|
||||
* src/talkfilters-1.0/Makefile.in (LIBS): Hardcode -lfl, since we
|
||||
always use flex.
|
||||
|
|
@ -0,0 +1,229 @@
|
|||
Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=PATH' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, `configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
will cause the specified gcc to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
#
|
||||
|
||||
filters = austro b1ff brooklyn chef cockney drawl dubya fudd funetak \
|
||||
jethro jive kraut pansy pirate postmodern redneck valspeak warez
|
||||
|
||||
bin_PROGRAMS = $(filters) wrap
|
||||
|
||||
lib_LTLIBRARIES = libtalkfilters.la
|
||||
|
||||
# Versioning rules ( C:R:A )
|
||||
# 1. Start with version 0:0:0.
|
||||
# 2. If the library source code has changed at all, incremement R.
|
||||
# 3. If any interfaces have been added, removed, or changed, increment C and
|
||||
# set R to 0.
|
||||
# 4. If any interfaces have been added, increment A.
|
||||
# 5. If any interfaces have been removed, set A to 0.
|
||||
# For more info see page 27 of the GNU Libtool Manual.
|
||||
|
||||
VERINFO = -version-info 1:4:0
|
||||
|
||||
libtalkfilters_la_LDFLAGS = $(VERINFO) -no-undefined
|
||||
|
||||
commonsrc = common.c common.h getopt.c getopt1.c getopt.h
|
||||
|
||||
libsrc = talkfilters.c
|
||||
|
||||
libtalkfilters_la_CPPFLAGS = -DLIBRARY_MODE
|
||||
|
||||
if GNU_WIN
|
||||
|
||||
libtalkfilters_la_CPPFLAGS += -DTALKFILTERS_EXPORTS
|
||||
|
||||
endif
|
||||
|
||||
libtalkfilters_la_SOURCES = $(libsrc) $(commonsrc) \
|
||||
austro.l b1ff.l brooklyn.l chef.l cockney.l drawl.l \
|
||||
dubya.l fudd.l funetak.l jethro.l jive.l kraut.l pansy.l pirate.l \
|
||||
postmodern.l redneck.l valspeak.l warez.l
|
||||
|
||||
include_HEADERS = talkfilters.h
|
||||
|
||||
austro_SOURCES = austro.l $(commonsrc)
|
||||
|
||||
b1ff_SOURCES = b1ff.l $(commonsrc)
|
||||
|
||||
brooklyn_SOURCES = brooklyn.l $(commonsrc)
|
||||
|
||||
chef_SOURCES = chef.l $(commonsrc)
|
||||
|
||||
cockney_SOURCES = cockney.l $(commonsrc)
|
||||
|
||||
drawl_SOURCES = drawl.l $(commonsrc)
|
||||
|
||||
dubya_SOURCES = dubya.l $(commonsrc)
|
||||
|
||||
fudd_SOURCES = fudd.l $(commonsrc)
|
||||
|
||||
funetak_SOURCES = funetak.l $(commonsrc)
|
||||
|
||||
jethro_SOURCES = jethro.l $(commonsrc)
|
||||
|
||||
jive_SOURCES = jive.l $(commonsrc)
|
||||
|
||||
kraut_SOURCES = kraut.l $(commonsrc)
|
||||
|
||||
pansy_SOURCES = pansy.l $(commonsrc)
|
||||
|
||||
pirate_SOURCES = pirate.l $(commonsrc)
|
||||
|
||||
postmodern_SOURCES = postmodern.l $(commonsrc)
|
||||
|
||||
redneck_SOURCES = redneck.l $(commonsrc)
|
||||
|
||||
valspeak_SOURCES = valspeak.l $(commonsrc)
|
||||
|
||||
warez_SOURCES = warez.l $(commonsrc)
|
||||
|
||||
wrap_SOURCES = wrap.c $(commonsrc)
|
||||
|
||||
|
||||
info_TEXINFOS = talkfilters.texi
|
||||
|
||||
talkfilters_TEXINFOS = gpl.texi
|
||||
|
||||
filter_man = talkfilters
|
||||
|
||||
man1_MANS = $(filter_man).man wrap.man
|
||||
|
||||
EXTRA_DIST = $(man1_MANS) *.vcproj *.sln win32/unistd.h
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = talkfilters.pc
|
||||
|
||||
|
||||
#install-data-hook:
|
||||
# cd @MANDIR@/man1; \
|
||||
# for i in $(filters); do \
|
||||
# rm -f $$i.1; \
|
||||
# ln -s $(filter_man).1 $$i.1; \
|
||||
# done
|
||||
|
||||
# eof
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,43 @@
|
|||
|
||||
This group of filters serves no utilitarian purpose but is nonetheless
|
||||
quite amusing and hence should be maintained for posterity.
|
||||
|
||||
These programs are maintained by Mark Lindner
|
||||
(mark_a_lindner@yahoo.com). The original authors of these programs are
|
||||
listed in the file `AUTHORS'.
|
||||
|
||||
If you are the author of one of these programs and do not wish to have
|
||||
it distributed in this package, contact the maintainer immediately.
|
||||
|
||||
These filters are provided for amusement only. No racial or societal
|
||||
slurs are intended.
|
||||
|
||||
Some of these filters contain vulgarity, and thus are inappropriate
|
||||
for some audiences. If you find something offensive in one or more of
|
||||
these filters, please do not flame me or ask me to censor or remove
|
||||
the filter(s) in question. Requests of this type will be silently
|
||||
ignored. Note that I am only the package maintainer; I am NOT the
|
||||
author of the translation rules in the filters (with the exception of
|
||||
the `wrap' filter).
|
||||
|
||||
These filters are not guaranteed to be idempotent across all inputs;
|
||||
that is, repeated applications of a given filter on an input may cause
|
||||
the output to differ each time. Moreover, some of the filters use
|
||||
randomization techniques so a given input is not guaranteed to produce
|
||||
the same output across invocations.
|
||||
|
||||
You no longer need to have `flex' (or any other lexer program, for
|
||||
that matter) to build and use this package. However, you *will* need a
|
||||
lexer (specifically, `flex') to recompile if you change any `.l'
|
||||
files.
|
||||
|
||||
The GAIM plugin is no longer distributed with TalkFilters, as it's now
|
||||
part of a separate project, "Gaim Plugin Pack", which can be found
|
||||
here: http://guifications.sourceforge.net/PluginPack/
|
||||
|
||||
The package may be built on Windows using either the MinGW
|
||||
environment, or Visual Studio C++ 2005, Visual Studio.NET 2005, or
|
||||
later.
|
||||
|
||||
Mark Lindner
|
||||
November 1, 2006.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,121 @@
|
|||
/* GNU Talkfilters
|
||||
Copyright (C) 1998-2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Talkfilters
|
||||
|
||||
GNU Talkfilters is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2, or (at
|
||||
your option) any later version.
|
||||
|
||||
This software is distributed in the hope that it will be amusing, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this software; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
%option prefix="austro_yy"
|
||||
%option outfile="lex.yy.c"
|
||||
%option noyywrap
|
||||
%option nounput
|
||||
|
||||
%e 2000
|
||||
%p 5000
|
||||
%n 1000
|
||||
%k 500
|
||||
%a 4000
|
||||
%o 2000
|
||||
|
||||
BW [ \t]
|
||||
EW [ \t.,;!?]
|
||||
EOT \4
|
||||
|
||||
%{
|
||||
|
||||
#include "common.h"
|
||||
#include "talkfilters.h"
|
||||
|
||||
#define YY_DECL int yylex(gtf_databuf_t *buf)
|
||||
|
||||
%}
|
||||
|
||||
%%
|
||||
|
||||
\<(\/)?[A-Za-z][^\>]*\> gtf_echo(); // don't damage HTML tags
|
||||
|
||||
[Ss]ch gtf_puts_case("sh");
|
||||
" c" gtf_puts(" k");
|
||||
" C" gtf_puts(" K");
|
||||
ec gtf_puts("ek");
|
||||
ac gtf_puts("ak");
|
||||
[Pp]h gtf_puts_case("f");
|
||||
cc gtf_puts("c");
|
||||
ee gtf_puts("e");
|
||||
ff gtf_puts("f");
|
||||
ll gtf_puts("l");
|
||||
mm gtf_puts("m");
|
||||
nn gtf_puts("n");
|
||||
pp gtf_puts("p");
|
||||
rr gtf_puts("r");
|
||||
ss gtf_puts("s");
|
||||
tt gtf_puts("t");
|
||||
[Tt]h gtf_puts_case("z");
|
||||
w gtf_puts("v");
|
||||
ou gtf_puts("u");
|
||||
"de " gtf_puts("d ");
|
||||
"le " gtf_puts("l ");
|
||||
"me " gtf_puts("m ");
|
||||
"ne " gtf_puts("n ");
|
||||
"re " gtf_puts("r ");
|
||||
"ve " gtf_puts("v ");
|
||||
[Cc] gtf_puts_case("s");
|
||||
[Pp]ie gtf_puts_case("mozer's pie");
|
||||
[Ss]teak gtf_puts_case("shnitzel");
|
||||
[Gg]overnor gtf_puts_case("govenator");
|
||||
|
||||
{EOT} /* ignore trailing EOT character */
|
||||
. gtf_echo();
|
||||
\n gtf_puts("\n");
|
||||
|
||||
%%
|
||||
|
||||
#ifdef LIBRARY_MODE
|
||||
|
||||
int gtf_filter_austro(const char *input, char *buf, size_t bufsz)
|
||||
{
|
||||
gtf_databuf_t buffer;
|
||||
YY_BUFFER_STATE _yybuf;
|
||||
|
||||
gtf_strbuf_init(&buffer, buf, bufsz);
|
||||
_yybuf = yy_scan_string(input);
|
||||
yylex(&buffer);
|
||||
yy_delete_buffer(_yybuf);
|
||||
gtf_reset();
|
||||
|
||||
return(buffer.overflow);
|
||||
}
|
||||
|
||||
int __gtf_filter_austro(const char *input, char *buf, size_t bufsz)
|
||||
{
|
||||
return(gtf_filter_austro(input, buf, bufsz));
|
||||
}
|
||||
|
||||
#else /* LIBRARY_MODE */
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
gtf_parse_args();
|
||||
gtf_random_seed();
|
||||
|
||||
yylex(NULL);
|
||||
|
||||
return(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
#endif /* LIBRARY_MODE */
|
||||
|
||||
/* end of source file */
|
|
@ -0,0 +1,202 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="austro"
|
||||
ProjectGUID="{C793F479-D373-4984-9170-ACB1604CCAC3}"
|
||||
RootNamespace="austro"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ProjectName).$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=".\win32"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||
RuntimeLibrary="3"
|
||||
CompileAs="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ProjectName).$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=".\win32"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
CompileAs="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\austro.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\common.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\getopt1.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\common.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\getopt.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\talkfilters.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
|
@ -0,0 +1,244 @@
|
|||
/* GNU Talkfilters
|
||||
Copyright (C) 1998-2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Talkfilters
|
||||
|
||||
GNU Talkfilters is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2, or (at
|
||||
your option) any later version.
|
||||
|
||||
This software is distributed in the hope that it will be amusing, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this software; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
For the information of some:
|
||||
|
||||
B1FF is a fictitious person who is "new" on the 'net.
|
||||
|
||||
You can recognize his posts by:
|
||||
|
||||
He always SHOUTS as he types.
|
||||
|
||||
He sometimes spells FONET1KLEE (phonetically) the rest of the time, he
|
||||
just misspells words or punctuates them incorrectly.
|
||||
|
||||
He shortens some words (presumably for ease in typing)
|
||||
like '4' for 'for' or 'four'
|
||||
like '2' for 'two' or 'to' or 'too'
|
||||
like '&' for 'and'
|
||||
like 'U' for 'you' or 'ewe'
|
||||
like 'R' for 'are'
|
||||
like 'C' for 'sea' or 'see'
|
||||
|
||||
He can't see the difference between certain letters
|
||||
like '1' and 'i'
|
||||
or like '0' and 'o'
|
||||
or like '5' and 's'
|
||||
or like '2' and 'z'
|
||||
|
||||
His speech is peppered with profanity.
|
||||
|
||||
He never uses only one '!' or '?' when '!!!!!!!!' or '????!!!!' will do.
|
||||
|
||||
He never uses the apostrophe (') and always uses the double quote (")
|
||||
instead.
|
||||
|
||||
I have some vague memory of B1FF being mentioned in the New Hackers
|
||||
dictionary, but I can't verify the validity of this.
|
||||
|
||||
I can't even validate that his full name is NELSON 0TB1FF , but it sounds
|
||||
correct.
|
||||
|
||||
Here's the promised and long-awaited 'b1ff.x' English->B1FF converter
|
||||
that everyone's been clamoring for. I made a few small changes since the
|
||||
last version and made sure that it compiled correctly.
|
||||
|
||||
To compile this, save it to the file 'b1ff.x' and execute the following
|
||||
two commands:
|
||||
lex b1ff.x
|
||||
cc -o B1ff lex.yy.c -ll
|
||||
|
||||
Note that the flags on cc should be in that order. You'll end up with the
|
||||
executable 'B1ff' (if you call it 'biff' with a lowercase 'b' you'll
|
||||
conflict with the biff mail-checking program).
|
||||
|
||||
Send me any bugs or patches; I'm good friends with B1FF and since this is
|
||||
the first program he's ever posted to the net, he wants to know if you
|
||||
have any problems.
|
||||
|
||||
mdw
|
||||
|
||||
|
||||
B1FF.X by Matt Welsh (mdw@tc.cornell.edu) +1 607 253 2737
|
||||
modified and improved by David Whitten
|
||||
|
||||
*/
|
||||
|
||||
%option prefix="b1ff_yy"
|
||||
%option outfile="lex.yy.c"
|
||||
%option noyywrap
|
||||
|
||||
%e 3000
|
||||
%p 6000
|
||||
%n 1000
|
||||
%k 500
|
||||
%a 4000
|
||||
%o 15000
|
||||
|
||||
%{
|
||||
|
||||
#include "common.h"
|
||||
#include "talkfilters.h"
|
||||
|
||||
#define YY_DECL int yylex(gtf_databuf_t *buf)
|
||||
|
||||
%}
|
||||
|
||||
BW [ \t]
|
||||
EW [ \t.,;!?]
|
||||
WC [A-Za-z']
|
||||
NW [^A-Za-z']
|
||||
EOT \4
|
||||
|
||||
%s INW NIW
|
||||
|
||||
%%
|
||||
|
||||
\<(\/)?[A-Za-z][^\>]*\> gtf_echo(); // don't damage HTML tags
|
||||
|
||||
\\[^ \n]+ gtf_echo();
|
||||
{NW} BEGIN NIW; gtf_echo();
|
||||
"..." { BEGIN NIW; gtf_printf(gtf_random(2) ? "...C00L HUH!?! "
|
||||
: "...!! "); }
|
||||
"."/{NW} BEGIN NIW; gtf_printf(gtf_random(2) ? "." : "!!" );
|
||||
".\"" BEGIN NIW; gtf_printf(gtf_random(2) ? "!!!\"" : "!1!!\"" );
|
||||
"!"$ BEGIN NIW; gtf_printf("!!!!!!!!!!1");
|
||||
"!"+/{NW} BEGIN NIW; gtf_printf("!1!");
|
||||
"?"/{NW} BEGIN NIW; gtf_printf("\?\?!!");
|
||||
":)" BEGIN NIW; gtf_printf(";-)!!! ");
|
||||
"8)" BEGIN NIW; gtf_printf(";-)!!! ");
|
||||
":*)" BEGIN NIW; gtf_printf(";-)!!!! ");
|
||||
":-)" BEGIN NIW; gtf_printf(";-)!!!! ");
|
||||
' BEGIN NIW; gtf_printf("\"");
|
||||
|
||||
ove BEGIN INW; gtf_printf("UV ");
|
||||
move BEGIN INW; gtf_printf("MOOV");
|
||||
ea BEGIN INW; gtf_printf("EE");
|
||||
ies BEGIN INW; gtf_printf("YS");
|
||||
please BEGIN INW; gtf_printf("PLEEZ!");
|
||||
Please BEGIN INW; gtf_printf("PLEEZ");
|
||||
Thanks BEGIN INW; gtf_printf("THANX!!");
|
||||
thanks BEGIN INW; gtf_printf("THANX");
|
||||
[Ee]nough BEGIN INW; gtf_printf("ENUF");
|
||||
[Dd]oes BEGIN INW; gtf_printf("DUZ");
|
||||
[Ff]uck/{NW} BEGIN INW; gtf_printf("FUCK !!!!!1 ");
|
||||
<NIW>hell/{NW} BEGIN INW; gtf_printf("FUCK!! ");
|
||||
[Dd]amn BEGIN INW; gtf_printf("FUCK!! ");
|
||||
[Ss]hit BEGIN INW; gtf_printf("FUCK!! ");
|
||||
<NIW>Hell/{NW} BEGIN INW; gtf_printf("FUCK!! ");
|
||||
<NIW>dick/{NW} BEGIN INW; gtf_printf("FUCK!! ");
|
||||
<NIW>Dick/{NW} BEGIN INW; gtf_printf("FUCK!! ");
|
||||
<NIW>mad/{NW} BEGIN INW; gtf_printf("PISSED 0FF!!!1! ");
|
||||
<NIW>Mad/{NW} BEGIN INW; gtf_printf("PISSED 0FF!!!1! ");
|
||||
ar/{NW} BEGIN NIW; gtf_printf("RE");
|
||||
are/{NW} BEGIN INW; gtf_printf("R");
|
||||
ain/{NW} BEGIN NIW; gtf_printf("ANE");
|
||||
before/{NW} BEGIN NIW; gtf_printf("B4");
|
||||
for(e)?/{NW} BEGIN NIW; gtf_printf("4");
|
||||
four/{NW} BEGIN NIW; gtf_printf("FORE ");
|
||||
se(a|e)/{NW} BEGIN NIW; gtf_printf("C ");
|
||||
to(o)?/{NW} BEGIN NIW; gtf_printf("2");
|
||||
two/{NW} BEGIN NIW; gtf_printf("TO ");
|
||||
one/{NW} BEGIN NIW; gtf_printf("1");
|
||||
<INW>ould/{NW} BEGIN NIW; gtf_printf("UD ");
|
||||
ic/{NW} BEGIN NIW; gtf_printf("IK");
|
||||
le/{NW} BEGIN NIW; gtf_printf("EL");
|
||||
by/{NW} BEGIN NIW; gtf_printf("BUY");
|
||||
buy/{NW} BEGIN NIW; gtf_printf("BY");
|
||||
bye/{NW} BEGIN NIW; gtf_printf("BY");
|
||||
e/{NW} { BEGIN NIW; gtf_printf(gtf_random(2) ? "E"
|
||||
: (gtf_random(2) ? "E" : "3")); }
|
||||
ewe|you BEGIN INW; gtf_printf("U");
|
||||
your BEGIN INW; gtf_printf("YOU'RE");
|
||||
the(y')?re BEGIN INW; gtf_printf("THARE");
|
||||
cause BEGIN INW; gtf_printf("CUZ");
|
||||
<INW>or BEGIN INW; gtf_printf(gtf_random(2) ? "OR" : "ER");
|
||||
and BEGIN INW; gtf_printf("&");
|
||||
biff BEGIN INW; gtf_printf("B1FFSTER!!!!!");
|
||||
BIFF|Biff BEGIN INW; gtf_printf("B1FFSTERE!!!1!");
|
||||
tion BEGIN INW; gtf_printf("SHUN");
|
||||
good|cool BEGIN INW; gtf_printf("C00L!!!");
|
||||
computer BEGIN INW; gtf_printf("C-64");
|
||||
software|program BEGIN INW; gtf_printf("WAREZ!1!!");
|
||||
gal|girl|woman BEGIN INW; gtf_printf("BAB3");
|
||||
boy|dude|Mr|Man BEGIN INW; gtf_printf("D00D");
|
||||
man/{NW} BEGIN INW; gtf_printf("D00D");
|
||||
some BEGIN INW; gtf_printf("SUM");
|
||||
|
||||
ll { BEGIN INW; gtf_printf(gtf_random(2) ? "LL"
|
||||
: (gtf_random(2) ? "L" : "LLL")); }
|
||||
nn { BEGIN INW; gtf_printf(gtf_random(2) ? "NN"
|
||||
: (gtf_random(2) ? "N" : "NNN")); }
|
||||
oo BEGIN INW; gtf_printf(gtf_random(2) ? "00" : "UU");
|
||||
OO BEGIN INW; gtf_printf(gtf_random(2) ? "00" : "UU");
|
||||
ph BEGIN INW; gtf_printf("F");
|
||||
Ph BEGIN INW; gtf_printf("F");
|
||||
|
||||
[a-hj-rt-y] BEGIN INW; gtf_printf("%c", toupper(*yytext));
|
||||
i BEGIN INW; gtf_printf(gtf_random(2) ? "I" : "1");
|
||||
I BEGIN INW; gtf_printf(gtf_random(2) ? "I" : "1");
|
||||
s BEGIN INW; gtf_printf(gtf_random(2) ? "5" : "S");
|
||||
S BEGIN INW; gtf_printf(gtf_random(2) ? "5" : "S");
|
||||
z BEGIN INW; gtf_printf(gtf_random(2) ? "2" : "Z");
|
||||
|
||||
. BEGIN INW; gtf_echo();
|
||||
|
||||
{EOT} /* ignore trailing EOT character */
|
||||
|
||||
%%
|
||||
|
||||
#ifdef LIBRARY_MODE
|
||||
|
||||
int gtf_filter_b1ff(const char *input, char *buf, size_t bufsz)
|
||||
{
|
||||
gtf_databuf_t buffer;
|
||||
YY_BUFFER_STATE _yybuf;
|
||||
|
||||
gtf_strbuf_init(&buffer, buf, bufsz);
|
||||
_yybuf = yy_scan_string(input);
|
||||
yylex(&buffer);
|
||||
yy_delete_buffer(_yybuf);
|
||||
gtf_reset();
|
||||
|
||||
return(buffer.overflow);
|
||||
}
|
||||
|
||||
int __gtf_filter_b1ff(const char *input, char *buf, size_t bufsz)
|
||||
{
|
||||
return(gtf_filter_b1ff(input, buf, bufsz));
|
||||
}
|
||||
|
||||
#else /* LIBRARY_MODE */
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
gtf_parse_args();
|
||||
gtf_random_seed();
|
||||
|
||||
yylex(NULL);
|
||||
|
||||
return(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
#endif /* LIBRARY_MODE */
|
||||
|
||||
/* end of source file */
|
|
@ -0,0 +1,202 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="b1ff"
|
||||
ProjectGUID="{D876F3A7-D38D-4ADC-8E2A-927C88363FEA}"
|
||||
RootNamespace="b1ff"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ProjectName).$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=".\win32"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||
RuntimeLibrary="3"
|
||||
CompileAs="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ProjectName).$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=".\win32"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
CompileAs="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\b1ff.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\common.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\getopt1.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\common.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\getopt.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\talkfilters.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,170 @@
|
|||
/* GNU Talkfilters
|
||||
Copyright (C) 1998-2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Talkfilters
|
||||
|
||||
GNU Talkfilters is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2, or (at
|
||||
your option) any later version.
|
||||
|
||||
This software is distributed in the hope that it will be amusing, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this software; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Lex filter to transform plain English into Brooklyn English.
|
||||
* No racial or societal slurs are intended. For amusement only.
|
||||
*
|
||||
* Copyright 1986 by Daniel Klein.
|
||||
*
|
||||
* Reproduction permitted so long as this notice is retained.
|
||||
*/
|
||||
|
||||
%option prefix="brooklyn_yy"
|
||||
%option outfile="lex.yy.c"
|
||||
%option noyywrap
|
||||
|
||||
WB [\n\t ]
|
||||
WC [A-Za-z'0-9]
|
||||
NW [^A-Za-z'0-9]
|
||||
EOT \4
|
||||
|
||||
%s NIW INW
|
||||
|
||||
%{
|
||||
|
||||
#include "common.h"
|
||||
#include "talkfilters.h"
|
||||
|
||||
#define YY_DECL int yylex(gtf_databuf_t *buf)
|
||||
|
||||
static const char *expletives[] = { "Okay?", "Right?", "Yuh got me so fahr?",
|
||||
"Ya' dig?", "Yuh with me?" };
|
||||
#define EXPLETIVES_LEN (sizeof(expletives) / sizeof(expletives[0]))
|
||||
|
||||
%}
|
||||
|
||||
%%
|
||||
|
||||
<NIW,INITIAL>{
|
||||
|
||||
\<(\/)?[A-Za-z][^\>]*\> gtf_echo(); // don't damage HTML tags
|
||||
|
||||
[Nn]othing/{NW} gtf_puts_case("nuttin'");
|
||||
[Tt]hin gtf_puts_case("tin"); BEGIN(INW);
|
||||
[Tt]hir gtf_puts_case("toi"); BEGIN(INW);
|
||||
[Tt]he gtf_puts_case("de"); BEGIN(INW);
|
||||
[Tt]hi gtf_puts_case("di"); BEGIN(INW);
|
||||
[Tt]hat/{NW} gtf_puts_case("dat"); BEGIN(INW);
|
||||
I'm{WB}going{WB}to/{NW} gtf_puts_case("I'manna");
|
||||
going{WB}to/{NW} gtf_puts_case("gonna");
|
||||
want{WB}to/{NW} gtf_puts_case("wanna");
|
||||
[Dd]id{WB}you{WB}/[eaiou] gtf_puts_case("d'j");
|
||||
[Dd]id{WB}you/{NW} gtf_puts_case("d'ja");
|
||||
[Hh]ow{WB}are{WB}you/{NW} gtf_puts_case("howahrya");
|
||||
[Yy]ou/{NW} gtf_puts_case("yuh");
|
||||
[Ww]ith gtf_puts_case("wit'"); BEGIN(INW);
|
||||
[Dd]on't/{NW} gtf_puts_case("doan");
|
||||
[Ss]tupid/{NW} gtf_puts_case("stoopid");
|
||||
[Uu]nder gtf_puts_case("unner"); BEGIN(INW);
|
||||
[Tt]o/{NW} gtf_puts_case("tuh");
|
||||
[Aa]ctual gtf_puts_case("ackshul"); BEGIN(INW);
|
||||
[Nn]egro/{NW} gtf_puts_case("spade");
|
||||
[Pp]uerto{WB}[Rr]ican/{NW} gtf_puts_case("spic");
|
||||
[Ii]talian/{NW} gtf_puts_case("greaser");
|
||||
[Jj]ewish/{NW} gtf_puts_case("jew");
|
||||
[Jj]ew/{NW} gtf_puts_case("hebe");
|
||||
[Ii]sn't/{NW} gtf_puts_case("ain't");
|
||||
|
||||
{WC} { BEGIN(INW); gtf_echo(); }
|
||||
|
||||
}
|
||||
|
||||
<INW>{
|
||||
|
||||
[^Mm]mer/[^aeiouhrs] gtf_puts_case("mmoi"); BEGIN(INW);
|
||||
er/{NW} gtf_puts_case("uh"); BEGIN(NIW);
|
||||
[Ww]ord |
|
||||
[Hh]eard |
|
||||
[BbGgLlPpSs]urg |
|
||||
[CcHh][eu]r[ntv] { gtf_printf("%coi%c", yytext[0],
|
||||
yytext[yyleng-1]); }
|
||||
[Oo]re/{NW} gtf_puts_case("awh"); BEGIN(NIW);
|
||||
[Oo]r gtf_puts_case("awh");
|
||||
[Oo]f gtf_puts_case("uhv");
|
||||
tion gtf_puts_case("shun");
|
||||
alk |
|
||||
our[st] |
|
||||
or[st] gtf_printf("awh%c", yytext[yyleng-1]);
|
||||
ause gtf_puts_case("awze");
|
||||
[Oo]ff gtf_puts_case("awhf");
|
||||
ing/{NW} gtf_puts_case("in'"); BEGIN(NIW);
|
||||
(l)?dn't/{NW} gtf_puts_case("n't"); BEGIN(NIW);
|
||||
t{WB}you/{NW} gtf_puts_case("tcha"); BEGIN(NIW);
|
||||
[ao]ther { gtf_printf("%cdder",
|
||||
yytext[0] == 'a' ? 'a' : 'u'); }
|
||||
[a-z]":" { *(yytext+1) = ',';
|
||||
gtf_printf("%s like, uhh:", yytext);
|
||||
BEGIN(NIW); }
|
||||
[a-z]"?" { *(yytext+1) = ',';
|
||||
gtf_printf("%s or what?", yytext);
|
||||
BEGIN(NIW); }
|
||||
! gtf_puts_case("! Okay?"); BEGIN(NIW);
|
||||
[a-z]"." { gtf_printf("%s %s", yytext,
|
||||
expletives[gtf_random(EXPLETIVES_LEN)]); }
|
||||
|
||||
{NW} BEGIN(NIW); unput(yytext[0]);
|
||||
|
||||
}
|
||||
|
||||