Also close bug
[filters.git] / censor
CommitLineData
e99ec255 1#!/usr/bin/perl
2# Censor filter.
3# Copyright 2002 by Joey Hess under the terms of the GNU GPL.
4
5# Yes, this program is self-modifying code, if you want it to be.
6if (exists $ENV{ADD_WORD}) {
7 open(IN, $0) || die "cannot read myself";
8 @lines=<IN>;
9 close IN;
10 open OUT, ">$0" || die "cannot write myself";
11 for (@lines) {
12 print OUT $_;
13 if (/^__DATA__\n$/) {
14 open(DATAOUT, "|sort|uniq|column >> $0");
15 $ENV{ADD_WORD} =~ y/n-za-m/a-z/;
16 print DATAOUT "$ENV{ADD_WORD}\n";
17 print DATAOUT join("\n",
18 map { chomp; split ' ', $_ } <DATA>);
19 close DATAOUT;
20 exit;
21 }
22 }
23}
24
25$censored = join("|", reverse sort { $a cmp $b }
26 grep { length $_ }
27 map { chomp; y/a-z/n-za-m/; split ' ', $_ } <DATA>);
28
29while (<>) {
30 s/\b($censored)ed/CENSORED/ig; # don't say "CENSOREDed"
31 s/\b($censored)/CENSORED/ig;
32 print $_;
33}
34
35__DATA__
5dda6db3 36ahqr enaql gjng pbpx t-fcbg
37anxrq encr grng pbzrvat t\f+fcbg
38avccyr erne guebng pbzvat tebva
39bcravat fangpu gvg pebgpu ubbgre
40beny fchax gvggl penc ubeal
41betl fcrez gvggvr penpx ubyr
42betnfz fcuvapgre hgrehf pernz uhzc
43certanag fghq ihyin phag unaqwbo
44cevpx fgnss intvan phz urnq
45chff fhpx ivetva phzzvat wvfz
46chffl fjnyybj ivoengbe pnzr xabo
47chffvrf fperj jbzo preivk xvff
48chovp frk jrg pureel ybir
49chqraqhz frkhny juber pyvg ybire
5e2a9814 50chzc frrq kkk pyvgbevf ybirq
5dda6db3 51cnagvrf frzra nany pyvggl ybnq
52crargengr funsg nerbyn pyvznk ynovn
53crargengrq funt nff qevyyrq ynvq
54cravf funttvat nffubyr qrsybjre yrfovna
55crgre fuvg obbo qvpx yvcf
56crpxre fvrt\furvy oernfg qvyqb znfgheong
57cunyyhf fyhg ohgg rebgvp znfgheongr
58cvff fyhggvfu ohggbpx rerpgvba znfgheongvat
59ebfrohq fyvg onyy rkcbfrq znzznel
60ebq gbathr ovgpu shpx znzznevrf
61ehg gbby oybj snpvny
This page took 0.012622 seconds and 4 git commands to generate.