diff options
author | aiju <aiju@phicode.de> | 2011-08-08 19:01:38 +0200 |
---|---|---|
committer | aiju <aiju@phicode.de> | 2011-08-08 19:01:38 +0200 |
commit | e09ef984f0faaff47a5d762ed316875b1b91e6ef (patch) | |
tree | 37697bf052c0a9265c409cbac71e64b69aa606f2 /rc/bin/bullshit | |
parent | b14408f5c68d8aa556f0b0e36bead8b8eda236e9 (diff) |
more bullshit
Diffstat (limited to 'rc/bin/bullshit')
-rwxr-xr-x | rc/bin/bullshit | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/rc/bin/bullshit b/rc/bin/bullshit index 0579bd28d..998d6c60c 100755 --- a/rc/bin/bullshit +++ b/rc/bin/bullshit @@ -6,8 +6,14 @@ function min(a, b){ else return a } +function suffix(){ + if(hassuffix = (rand() < 0.2)) + return suffixes[int(rand() * nsuffix)] + return "" +} $2 == "*" { protocol[nprotocol++] = $1; next } $2 == "$" { end[nend++] = $1; next } +$2 == "%" { suffixes[nsuffix++] = $1; next } $2 == "^" { start[nstart++] = $1; next } $2 == "|" { noend[nword] = 1 } { word[nword++] = $1; next } @@ -15,14 +21,15 @@ END { srand() last = -1 out = 0 - total = int(rand() * 7) + total = int(rand() * 7) + 3 n = int(rand() * min(total - out, 3)) for(i = 0; i < n; i++) printf "%s ", start[int(rand() * nstart)] out += n + hassuffix = 0 n = int(rand() * min(total - out, 3)) for(i = 0; i < n; i++) - printf "%s ", word[last = int(rand() * nword)] + printf "%s%s ", word[last = int(rand() * nword)], suffix() out += n if(rand() > 0.5){ n = int(rand() * 3) @@ -30,13 +37,14 @@ END { printf "%s %s", protocol[int(rand() * nprotocol)], (i != n-1) ? "over " : "" out += n last = -1 + hassuffix = 0 } n = int(rand() * min(total - out, 3)) if(out + n == 1 || last == -1) n += 2 for(i = 0; i < n; i++) - printf "%s ", word[last = int(rand() * nword)] - if(rand() > 0.5 || (last >= 0 && noend[last])) + printf "%s%s ", word[last = int(rand() * nword)], suffix() + if(rand() > 0.5 || (last >= 0 && noend[last]) || hassuffix) printf "%s ", word[int(rand() * nend)] print "" } |