File: rasterman

package info (click to toggle)
filters 2.55-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, forky, sid, trixie
  • size: 292 kB
  • ctags: 50
  • sloc: lex: 1,820; perl: 1,019; ansic: 217; makefile: 50
file content (101 lines) | stat: -rwxr-xr-x 1,691 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/perl

$row = "!qwertyuiop!asdfghjkl!zxcvbnm!";
@row_array = split(//, $row);

while (<>) {
	chomp;
	y/A-Z/a-z/;
	s/\byou\b/u/gi;
	s/\bpeople\b/ppl/gi;
	s/\bthrough\b/thru/gi;
	s/\bthough\b/tho/gi;
	s/\bnope\b/nup/gi;
	s/\baustralia\b/oz/gi;
	s/\bfilm\b/flim/gi;
	s/\bsucks\b/sux/gi;
	s/\benough\b/enuff/gi;
	s/\ba lot\b/a shitload/gi;
	s/\bstuff\b/shit/gi;
	s/, /.. /g;
	s/\.$/.../g;

	@lets = split(//);

	$strlen = $#lets;

	for ($x = 0; $x < $strlen; $x++) {
		if (rand() < 0.01) {
		    swap(\@lets, $x, $x + 1);
		    next;
		}

		if (rand() < 0.10 && $lets[$x] eq " ") {
		    swap(\@lets, $x - 1, $x - 2);
		    next;
		}

		if(rand() < 0.01) {
		    $i = insert_adjacent(\@lets, $x, $lets[$x]);
		    $strlen += $i;
		    next;
		}

		if(rand() < 0.01) {
		    splice(@lets, $x, 1);
		    $strlen--;
		    next;
		}
	}

	print join("", @lets) . "\n";
}

sub insert_adjacent {
    my($aref, $pos, $let) = @_;
    
    
    $newlet = get_adjacent($let);

    if( !$newlet ) {
	return 0;
    }

    splice(@$aref, $pos + 1, 0, $newlet);
    return 1;
}


sub get_adjacent {
    my($let) = @_;

    return 0 if $let !~ /[a-zA-Z]/;

    $i = index($row, $let);
    $before = $row_array[$i - 1];
    $after = $row_array[$i + 1];

    

    if( $before eq "!" || (rand() < rand() && $after ne "!"))  {
	return $after;
    } else {
	return $before;
    }
}

sub swap {
    my($aref, $n, $m) = @_;
    my($tmp);

    if(defined($$aref[$n]) && defined($$aref[$m])) {
	if(! (($$aref[$n] =~ /[A-Z ]/ && $$aref[$m] =~ /[A-Z ]/) ||
	      ($$aref[$n] =~ /[a-z ]/ && $$aref[$m] =~ /[a-z ]/) )) {
	    return;
	}
	$tmp = $$aref[$n];
	$$aref[$n] = $$aref[$m];
	$$aref[$m] = $tmp;
    }
}