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,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]);
|
||||
|
||||
}
|
||||
|
||||
{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);
|
||||
}
|
||||
|
||||