diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2014-10-01 22:01:05 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2014-10-01 22:01:05 +0300 |
commit | db0190d23e173d1869906385d00f3cbc01559b72 (patch) | |
tree | 60be24d3a21ccfe674d510961247463480a6ae87 /awklib | |
parent | a2a68eaafd161190d15a42cb2d54e297c5263860 (diff) | |
parent | 96490f609bec8ee0b1827faf893d0f6daecc9a53 (diff) | |
download | egawk-db0190d23e173d1869906385d00f3cbc01559b72.tar.gz egawk-db0190d23e173d1869906385d00f3cbc01559b72.tar.bz2 egawk-db0190d23e173d1869906385d00f3cbc01559b72.zip |
Merge branch 'master' into comment
Diffstat (limited to 'awklib')
-rw-r--r-- | awklib/eg/lib/processarray.awk | 12 | ||||
-rw-r--r-- | awklib/eg/lib/shellquote.awk | 22 | ||||
-rw-r--r-- | awklib/eg/prog/pi.awk | 18 |
3 files changed, 52 insertions, 0 deletions
diff --git a/awklib/eg/lib/processarray.awk b/awklib/eg/lib/processarray.awk new file mode 100644 index 00000000..79a86d1f --- /dev/null +++ b/awklib/eg/lib/processarray.awk @@ -0,0 +1,12 @@ +function process_array(arr, name, process, do_arrays, i, new_name) +{ + for (i in arr) { + new_name = (name "[" i "]") + if (isarray(arr[i])) { + if (do_arrays) + @process(new_name, arr[i]) + process_array(arr[i], new_name, process, do_arrays) + } else + @process(new_name, arr[i]) + } +} diff --git a/awklib/eg/lib/shellquote.awk b/awklib/eg/lib/shellquote.awk new file mode 100644 index 00000000..cd943dc7 --- /dev/null +++ b/awklib/eg/lib/shellquote.awk @@ -0,0 +1,22 @@ +# shell_quote --- quote an argument for passing to the shell +# +# Michael Brennan +# brennan@madronabluff.com +# September 2014 + +function shell_quote(s, # parameter + SINGLE, QSINGLE, i, X, n, ret) # locals +{ + if (s == "") + return "\"\"" + + SINGLE = "\x27" # single quote + QSINGLE = "\"\x27\"" + n = split(s, X, SINGLE) + + ret = SINGLE X[1] SINGLE + for (i = 2; i <= n; i++) + ret = ret QSINGLE SINGLE X[i] SINGLE + + return ret +} diff --git a/awklib/eg/prog/pi.awk b/awklib/eg/prog/pi.awk new file mode 100644 index 00000000..3297beff --- /dev/null +++ b/awklib/eg/prog/pi.awk @@ -0,0 +1,18 @@ +# pi.awk --- compute the digits of pi +# +# Katie Wasserman, katie@wass.net +# August 2014 + +BEGIN { + digits = 100000 + two = 2 * 10 ^ digits + pi = two + for (m = digits * 4; m > 0; --m) { + d = m * 2 + 1 + x = pi * m + div(x, d, result) + pi = result["quotient"] + pi = pi + two + } + print pi +} |