aboutsummaryrefslogtreecommitdiffstats
path: root/awklib/eg
diff options
context:
space:
mode:
Diffstat (limited to 'awklib/eg')
-rw-r--r--awklib/eg/lib/mktime.awk2
-rw-r--r--awklib/eg/lib/round.awk32
-rw-r--r--awklib/eg/prog/cut.awk2
-rw-r--r--awklib/eg/prog/wc.awk2
4 files changed, 35 insertions, 3 deletions
diff --git a/awklib/eg/lib/mktime.awk b/awklib/eg/lib/mktime.awk
index 60c5b60d..f43d6d19 100644
--- a/awklib/eg/lib/mktime.awk
+++ b/awklib/eg/lib/mktime.awk
@@ -73,7 +73,7 @@ function mktime(str, res1, res2, a, b, i, j, t, diff)
a[3] < 1 || a[3] > 31 ||
a[4] < 0 || a[4] > 23 ||
a[5] < 0 || a[5] > 59 ||
- a[6] < 0 || a[6] > 61 )
+ a[6] < 0 || a[6] > 60 )
return -1
res1 = _tm_addup(a)
diff --git a/awklib/eg/lib/round.awk b/awklib/eg/lib/round.awk
new file mode 100644
index 00000000..d484e148
--- /dev/null
+++ b/awklib/eg/lib/round.awk
@@ -0,0 +1,32 @@
+# round --- do normal rounding
+#
+# Arnold Robbins, arnold@gnu.ai.mit.edu, August, 1996
+# Public Domain
+
+function round(x, ival, aval, fraction)
+{
+ ival = int(x) # integer part, int() truncates
+
+ # see if fractional part
+ if (ival == x) # no fraction
+ return x
+
+ if (x < 0) {
+ aval = -x # absolute value
+ ival = int(aval)
+ fraction = aval - ival
+ if (fraction >= .5)
+ return int(x) - 1 # -2.5 --> -3
+ else
+ return int(x) # -2.3 --> -2
+ } else {
+ fraction = x - ival
+ if (fraction >= .5)
+ return ival + 1
+ else
+ return ival
+ }
+}
+
+# test harness
+{ print $0, round($0) }
diff --git a/awklib/eg/prog/cut.awk b/awklib/eg/prog/cut.awk
index c69e6492..7c0da75e 100644
--- a/awklib/eg/prog/cut.awk
+++ b/awklib/eg/prog/cut.awk
@@ -92,7 +92,7 @@ function set_charlist( field, i, j, f, g, t,
if (index(f[i], "-") != 0) { # range
m = split(f[i], g, "-")
if (m != 2 || g[1] >= g[2]) {
- printf(bad character list: %s\n",
+ printf("bad character list: %s\n",
f[i]) > "/dev/stderr"
exit 1
}
diff --git a/awklib/eg/prog/wc.awk b/awklib/eg/prog/wc.awk
index e9898159..e5553116 100644
--- a/awklib/eg/prog/wc.awk
+++ b/awklib/eg/prog/wc.awk
@@ -27,7 +27,7 @@ BEGIN {
if (! do_lines && ! do_words && ! do_chars)
do_lines = do_words = do_chars = 1
- print_total = (ARC - i > 2)
+ print_total = (ARGC - i > 2)
}
function beginfile(file)
{