File: rcs.awk

package info (click to toggle)
ruby3.4 3.4.5-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 154,784 kB
  • sloc: ruby: 1,259,653; ansic: 829,955; yacc: 28,233; pascal: 7,359; sh: 3,864; python: 1,799; cpp: 1,158; asm: 808; makefile: 801; javascript: 414; lisp: 109; perl: 62; awk: 36; sed: 4; xml: 4
file content (33 lines) | stat: -rw-r--r-- 649 bytes parent folder | download | duplicates (8)
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;
}