94 changed files with 115240 additions and 0 deletions
@ -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
@ -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
File diff suppressed because it is too large
@ -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> |
File diff suppressed because it is too large
@ -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
@ -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]); |
|||
|
|||
} |
|||
|
|||
{EOT} /* ignore trailing EOT character */ |
|||
. gtf_echo(); |
|||
|
|||
%% |
|||
|
|||
/* |
|||
*/ |
|||
|
|||
#ifdef LIBRARY_MODE |
|||
|
|||
int gtf_filter_brooklyn(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_brooklyn(const char *input, char *buf, size_t bufsz) |
|||
{ |
|||
return(gtf_filter_brooklyn(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="brooklyn" |
|||
ProjectGUID="{A02DACFE-8B71-4BCB-AE8B-381AC81C9F10}" |
|||
RootNamespace="brooklyn" |
|||
Keyword="Win32Proj" |
|||
> |
|||
<Platforms> |
|||
<Platform |
|||
Name="Win32" |
|||
/> |
|||
</Platforms> |
|||
<ToolFiles> |
|||
</ToolFiles> |
|||
<Configurations> |
|||
<Configuration |
|||
Name="Debug|Win32" |
|||
OutputDirectory="$(SolutionDir)$(ConfigurationName)" |
|||
IntermediateDirectory="$(ProjectName).$(ConfigurationName)" |
|||
ConfigurationType="1" |
|||
CharacterSet="1" |
|||