summaryrefslogtreecommitdiff
path: root/rc/bin/bullshit
diff options
context:
space:
mode:
authoraiju <aiju@phicode.de>2011-08-08 19:01:38 +0200
committeraiju <aiju@phicode.de>2011-08-08 19:01:38 +0200
commite09ef984f0faaff47a5d762ed316875b1b91e6ef (patch)
tree37697bf052c0a9265c409cbac71e64b69aa606f2 /rc/bin/bullshit
parentb14408f5c68d8aa556f0b0e36bead8b8eda236e9 (diff)
more bullshit
Diffstat (limited to 'rc/bin/bullshit')
-rwxr-xr-xrc/bin/bullshit16
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 ""
}