File: rcs.awk

package info (click to toggle)
ruby1.8 1.8.7.358-7.1%2Bdeb7u3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 27,864 kB
  • sloc: ruby: 247,750; ansic: 144,038; yacc: 5,900; sh: 2,667; lisp: 1,626; tcl: 949; makefile: 374; sed: 129; xml: 122; awk: 36; cpp: 28; asm: 25; perl: 18; python: 6
file content (33 lines) | stat: -rw-r--r-- 638 bytes parent folder | download | duplicates (15)
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
BEGIN {
    sw = 40.0;
    dw = 78.0;
    hdw = dw / 2.0;
    w = 20.0;
    h =1.0;
    d = 0.2;
    ss="abcdefghijklmnopqrstuvwxyz0123456789!#$%^&*()-=\\[];'`,./";
    rnd = srand();
}

{
    xr = -hdw; y = h * 1.0; maxxl = -999;
    s = "";
    while (xr < hdw) {
	x = xr * (1 + y) - y * w / 2;
	i = (x / (1 + h) + sw /2);
	c = (0 < i && i < length($0)) ? substr($0, i, 1) : "0";
	y = h - d * c;
	xl = xr - w * y / (1 + y);
	if (xl < -hdw || xl >= hdw || xl <= maxxl) {
	    t = rand() * length(ss);
	    c = substr(ss, t, 1);
	}
	else {
	    c = substr(s, xl + hdw, 1);
	    maxxl = xl;
	}
	s = s c;
	xr = xr + 1;
    }
    print s;
}