From: charless@sco.COM (Charlie Stross)
Subject: Re: Is it Naivete, Stupidity or Homophobia? (Re: Recent Peeve
Organization: SCO Technical Waffle and Blurb Department
Date: Mon, 23 Nov 1992 10:48:00 GMT


In article <1992Nov20.233609.5917@igor.tamri.com> donb@igor.tamri.com (Don Baldwin) writes:
>
>Oh oh, the dreaded PC label rears its ugly head.  Well my man, there
>are all kinds of Political Correctness.  If I post a politically
>unpopular opinion in talk.politics.guns, even if it doesn't favor
>additional controls but only maintaining the status quo, I get toasted.
>Even a little thing like calling a Colt .45 semi-auto an "automatic"
>could get me in trouble, despite the fact that an NRA safety manual I
>have from 20-30 years ago uses that term.  That's PC for ya.
>
For your edification, here's something I've been working
on. It ain't 100% finished yet, but here goes ...

------------------------ cut here ---------------------------

/*
	The politically correct filter ... V 0.1  
        by Charlie Stross (charless@scol.sco.com)
        incorporating large chunks of censor.l by
        Andrew Templin (nosilla@bsu-cs.bsu.edu)
	and the PC dictionary by Geoff Miller
	(geoffm@purplehaze.corp.sun.com).

	To compile under SVR3-ish unix:

	lex pcfilt.l
	cc -o pcfilt -O lex.yy.c -ll
	rm lex.yy.[oc]

	(For BSD flavours like SunOS you might need 
	to fiddle with the cc flags)

	Use in a pipe ... e.g.

	cat myfile.asc | pcfilt >myfile.politically.corrected

	To do:
	1.	tune up the kludgy case-recognizers in the
		censor.l section (top of file)
	2.	figure out how to compile under BSD
	3.	hack in some kind of general suffix/prefix
		handler for plurals, etc.
	4.	write an inverse filter (pc to english)

*/


T	[" .!?,"]*

%e 1500
%p 4000
%n 1000

%%

"[Aa]ss"		printf("[BUTTOCKS]");
"Damn"			printf("[CURSE]");
"damn"			printf("[CURSE]");
"DAMN"			printf("[CURSE]");
"fuck"			printf("[FORNICATE]");
"Fuck"			printf("[FORNICATE]");
"FUCK"			printf("[FORNICATE]");
"shit"			printf("[EXCREMENT]");
"Shit"			printf("[EXCREMENT]");
"SHIT"			printf("[EXCREMENT]");
"bitch"			printf("[FEMALE DOG]");
"Bitch"			printf("[FEMALE DOG]");
"BITCH"			printf("[FEMALE DOG]");
"pecker"		printf("[PHALLUS]");
"Pecker"		printf("[PHALLUS]");
"PECKER"		printf("[PHALLUS]");
"nipple"		printf("[MAMMARY OUTLET]");
"Nipple"		printf("[MAMMARY OUTLET]");
"NIPPLE"		printf("[MAMMARY OUTLET]");
"breast"		printf("[BUSOM]");
"Breash"		printf("[BUSOM]");
"BREAST"		printf("[BUSOM]");
"fucking"		printf("[FORNICATING]");
"Fucking"		printf("[FORNICATING]");
"FUCKING"		printf("[FORNICATING]");
"fucked"		printf("[FORNICATED]");
"Fucked"		printf("[FORNICATED]");
"FUCKED"		printf("[FORNICATED]");
"damned"		printf("[CURSED]");
"Damned"		printf("[CURSED]");
"DAMNED"		printf("[CURSED]");
"damning"		printf("[CURSING]");
"Damning"		printf("[CURSING]");
"DAMNING"		printf("[CURSING]");
"piss"			printf("[URINATE]");
"Piss"			printf("[URINATE]");
"PISS"			printf("[URINATE]");
"asshole"		printf("[DONKEY BUTTOCKS]");
"Asshole"		printf("[DONKEY BUTTOCKS]");
"ASSHOLE"		printf("[DONKEY BUTTOCKS]");
"prick"			printf("[PHALLUS]");
"Prick"			printf("[PHALLUS]");
"PRICK"			printf("[PHALLUS]");
"cock"			printf("[PHALLUS]");
"Cock"			printf("[PHALLUS]");
"COCK"			printf("[PHALLUS]");
"pussy"			printf("[VAGINA]");
"Pussy"			printf("[VAGINA]");
"PUSSY"			printf("[VAGINA]");
"twat"			printf("[VAGINA]");
"Twat"			printf("[VAGINA]");
"TWAT"			printf("[VAGINA]");
"cunt"			printf("[VAGINA]");
"Cunt"			printf("[VAGINA]");
"CUNT"			printf("[VAGINA]");
"dick"			printf("[RICHARD]");
"Dick"			printf("[RICHARD]");
"DICK"			printf("[RICHARD]");
"cum"			printf("[EJACULATE]");
"Cum"			printf("[EJACULATE]");
"CUM"			printf("[EJACULATE]");
"jack off"		printf("[MASTERBATE]");
"Jack Off"		printf("[MASTERBATE]");
"JACK OFF"		printf("[MASTERBATE]");
"wet dream"		printf("[NOCTURNAL EMISSION]");
"Wet Dream"		printf("[NOCTURNAL EMISSION]");
"WET DREAM"		printf("[NOCTURNAL EMISSION]");
"jerk off"		printf("[MASTERBATE]");
"Jerk Off"		printf("[MASTERBATE]");
"JERK OFF"		printf("[MASTERBATE]");
"bastard"		printf("[ILLEGITIMATE CHILD]");
"Bastard"		printf("[ILLEGITIMATE CHILD]");
"BASTARD"		printf("[ILLEGITIMATE CHILD]");
"slut"			printf("[WANTON WOMAN]");
"Slut"			printf("[WANTON WOMAN]");
"SLUT"			printf("[WANTON WOMAN]");
"whore"			printf("[PROSTITUTE]");
"Whore"			printf("[PROSTITUTE]");
"WHORE"			printf("[PROSTITUTE]");
"suck"			printf("[INHALE]");
"Suck"			printf("[INHALE]");
"SUCK"			printf("[INHALE]");
"blow"			printf("[EXHALE]");
"Blow"			printf("[EXHALE]");
"BLOW"			printf("[EXHALE]");
"immigrant"		printf("undocumented worker");
"illegal alien"		printf("undocumented worker");
"cripple"		printf("physically handicapped");
"crippled"		printf("physically challenged");
"crazy"			printf("emotionally handicapped");
"macho"			printf("immature");
"retarded"		printf("special");
"moron"			printf("developmentally disabled");
"unemployed"		printf("occupationally challenged");
"dead"			printf("metabolically challenged");
"deaf"			printf("hearing impaired");
"blind"			printf("optically challenged");
"addict"		printf("chemically dependant");
"drug abuse"		printf("substance abuse");
"sexual orientation"	printf("affectional preference");
"bum"			printf("homeless");
"bums"			printf("the homeless");
"slaughter"		printf("put away");
"poor"			printf("economically deprived");
"short"			printf("vertically impaired");
"old"			printf("temporally enriched");
"black"			printf("non-white");
"colored people"	printf("people of color");
"race"			printf("ethnicity");
"ghost"			printf("dimensionally impaired");
"waiter"		printf("food server");
"waitress" 		printf("waitperson");
"woman"			printf("person");
"janitor"		printf("waste removal consultant");
"secretary"		printf("administrative assistant");
"AIDS victim"		printf("person with AIDS");
"wimp"			printf("new man");
"euphemistic"		printf("politically correct");
"conservative"		printf("fascist");
"republican"		printf("iran-contra sponsoring neo-fundamentalist lackey"); 
"right wing"		printf("politically incorrect");
"left wing"		printf("right on");
"liberal"		printf("politically correct");
"God"			printf("white male patriarchal deity");
"Jesus"			printf("son of white male patriarchal deity");
"meat"			printf("dead flesh torn from animals");
"owl"			printf("endangered species");
"gun"			printf("weapon of indiscriminate mass destruction");
"FBI"			printf("secret police");
"CIA"			printf("secret police");
"white"			printf("ethnically challenged");
"chicano"		printf("hispanic");
"chinese"		printf("non-caucasian");
"burger"		printf("oppressive patriarchal dead-meat in a bun");
"terrorist"		printf("freedom fighter");


.			ECHO;
%%

main ()
{
	srand(getpid());
	yylex();
}

-- 
Charlie Stross aka charless@scol.sco.com ..... UNIX oriented text mangler
WARNING: The opinions voiced in the preceding electronic document are the
product of a warped mind. Take two before meals.