diff options
Diffstat (limited to 'awklib/eg')
-rw-r--r-- | awklib/eg/lib/mktime.awk | 2 | ||||
-rw-r--r-- | awklib/eg/lib/round.awk | 32 | ||||
-rw-r--r-- | awklib/eg/prog/cut.awk | 2 | ||||
-rw-r--r-- | awklib/eg/prog/wc.awk | 2 |
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) { |