From 628837bf58f885225532b6c2de41b60ffa7c14e9 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Mon, 5 May 2014 17:46:19 +0300 Subject: Doc edits, through Chapter 9. --- awklib/eg/lib/ctime.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'awklib/eg/lib') diff --git a/awklib/eg/lib/ctime.awk b/awklib/eg/lib/ctime.awk index f37856c6..ca750370 100644 --- a/awklib/eg/lib/ctime.awk +++ b/awklib/eg/lib/ctime.awk @@ -4,7 +4,7 @@ function ctime(ts, format) { - format = "%a %b %e %H:%M:%S %Z %Y" + format = PROCINFO["strftime"] if (ts == 0) ts = systime() # use current time as default return strftime(format, ts) -- cgit v1.2.3 From 8b086817a7907d54dbe813f0dd05626b86e56cd1 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Thu, 15 May 2014 22:28:21 +0300 Subject: Edits through Chapter 11, fix displays for docbook. --- awklib/eg/lib/getopt.awk | 2 +- awklib/eg/lib/gettime.awk | 2 +- awklib/eg/lib/grcat.c | 2 +- awklib/eg/lib/pwcat.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'awklib/eg/lib') diff --git a/awklib/eg/lib/getopt.awk b/awklib/eg/lib/getopt.awk index 4283a7e1..db957ceb 100644 --- a/awklib/eg/lib/getopt.awk +++ b/awklib/eg/lib/getopt.awk @@ -70,7 +70,7 @@ BEGIN { # test program if (_getopt_test) { while ((_go_c = getopt(ARGC, ARGV, "ab:cd")) != -1) - printf("c = <%c>, optarg = <%s>\n", + printf("c = <%c>, Optarg = <%s>\n", _go_c, Optarg) printf("non-option arguments:\n") for (; Optind < ARGC; Optind++) diff --git a/awklib/eg/lib/gettime.awk b/awklib/eg/lib/gettime.awk index 4cb56330..3da9c8ab 100644 --- a/awklib/eg/lib/gettime.awk +++ b/awklib/eg/lib/gettime.awk @@ -31,7 +31,7 @@ function getlocaltime(time, ret, now, i) now = systime() # return date(1)-style output - ret = strftime("%a %b %e %H:%M:%S %Z %Y", now) + ret = strftime(PROCINFO["strftime"], now) # clear out target array delete time diff --git a/awklib/eg/lib/grcat.c b/awklib/eg/lib/grcat.c index ff2913a1..7d6b6a74 100644 --- a/awklib/eg/lib/grcat.c +++ b/awklib/eg/lib/grcat.c @@ -1,7 +1,7 @@ /* * grcat.c * - * Generate a printable version of the group database + * Generate a printable version of the group database. */ /* * Arnold Robbins, arnold@skeeve.com, May 1993 diff --git a/awklib/eg/lib/pwcat.c b/awklib/eg/lib/pwcat.c index 910e0329..934ef34e 100644 --- a/awklib/eg/lib/pwcat.c +++ b/awklib/eg/lib/pwcat.c @@ -1,7 +1,7 @@ /* * pwcat.c * - * Generate a printable version of the password database + * Generate a printable version of the password database. */ /* * Arnold Robbins, arnold@skeeve.com, May 1993 -- cgit v1.2.3 From ec27289f558e73b40c3d90f599cf392a9d03e864 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sun, 15 Jun 2014 20:36:33 +0300 Subject: Finish up summaries. Improvements in mystrtonum(). --- awklib/eg/lib/strtonum.awk | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'awklib/eg/lib') diff --git a/awklib/eg/lib/strtonum.awk b/awklib/eg/lib/strtonum.awk index a56ab50c..9342e789 100644 --- a/awklib/eg/lib/strtonum.awk +++ b/awklib/eg/lib/strtonum.awk @@ -3,8 +3,9 @@ # # Arnold Robbins, arnold@skeeve.com, Public Domain # February, 2004 +# Revised June, 2014 -function mystrtonum(str, ret, chars, n, i, k, c) +function mystrtonum(str, ret, n, i, k, c) { if (str ~ /^0[0-7]*$/) { # octal @@ -17,7 +18,7 @@ function mystrtonum(str, ret, chars, n, i, k, c) ret = ret * 8 + k } - } else if (str ~ /^0[xX][[:xdigit:]]+/) { + } else if (str ~ /^0[xX][[:xdigit:]]+$/) { # hexadecimal str = substr(str, 3) # lop off leading 0x n = length(str) @@ -25,10 +26,7 @@ function mystrtonum(str, ret, chars, n, i, k, c) for (i = 1; i <= n; i++) { c = substr(str, i, 1) c = tolower(c) - if ((k = index("0123456789", c)) > 0) - k-- # adjust for 1-basing in awk - else if ((k = index("abcdef", c)) > 0) - k += 9 + k = index("123456789abcdef", c) ret = ret * 16 + k } -- cgit v1.2.3 From 9e2907afe246b3930d9ae6043a2657c4492f4507 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Tue, 12 Aug 2014 21:15:26 +0300 Subject: Add div.awk to awklib. --- awklib/eg/lib/div.awk | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 awklib/eg/lib/div.awk (limited to 'awklib/eg/lib') diff --git a/awklib/eg/lib/div.awk b/awklib/eg/lib/div.awk new file mode 100644 index 00000000..9d919288 --- /dev/null +++ b/awklib/eg/lib/div.awk @@ -0,0 +1,17 @@ +# div --- do integer division + +# +# Arnold Robbins, arnold@skeeve.com, Public Domain +# July, 2014 + +function div(numerator, denominator, result, i) +{ + split("", result) + + numerator = int(numerator) + denominator = int(denominator) + result["quotient"] = int(numerator / denominator) + result["remainder"] = int(numerator % denominator) + + return 0.0 +} -- cgit v1.2.3 From 3defec04e39c4ca6987a21f79686576d9823c653 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sat, 23 Aug 2014 22:40:59 +0300 Subject: More reviewer comments. --- awklib/eg/lib/groupawk.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'awklib/eg/lib') diff --git a/awklib/eg/lib/groupawk.in b/awklib/eg/lib/groupawk.in index 0917b923..9382bce8 100644 --- a/awklib/eg/lib/groupawk.in +++ b/awklib/eg/lib/groupawk.in @@ -5,8 +5,7 @@ # Revised October 2000 # Revised December 2010 -BEGIN \ -{ +BEGIN { # Change to suit your system _gr_awklib = "/usr/local/libexec/awk/" } -- cgit v1.2.3 From 6c541fd0f75cd328dd80afec757ecccc833719af Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Fri, 29 Aug 2014 13:11:45 +0300 Subject: More doc updates. --- awklib/eg/lib/getopt.awk | 3 +-- awklib/eg/lib/strtonum.awk | 7 +++++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'awklib/eg/lib') diff --git a/awklib/eg/lib/getopt.awk b/awklib/eg/lib/getopt.awk index db957ceb..6b1f4c50 100644 --- a/awklib/eg/lib/getopt.awk +++ b/awklib/eg/lib/getopt.awk @@ -38,8 +38,7 @@ function getopt(argc, argv, options, thisopt, i) i = index(options, thisopt) if (i == 0) { if (Opterr) - printf("%c -- invalid option\n", - thisopt) > "/dev/stderr" + printf("%c -- invalid option\n", thisopt) > "/dev/stderr" if (_opti >= length(argv[Optind])) { Optind++ _opti = 0 diff --git a/awklib/eg/lib/strtonum.awk b/awklib/eg/lib/strtonum.awk index 9342e789..5e20626b 100644 --- a/awklib/eg/lib/strtonum.awk +++ b/awklib/eg/lib/strtonum.awk @@ -13,8 +13,9 @@ function mystrtonum(str, ret, n, i, k, c) ret = 0 for (i = 1; i <= n; i++) { c = substr(str, i, 1) - if ((k = index("01234567", c)) > 0) - k-- # adjust for 1-basing in awk + # index() returns 0 if c not in string, + # includes c == "0" + k = index("1234567", c) ret = ret * 8 + k } @@ -26,6 +27,8 @@ function mystrtonum(str, ret, n, i, k, c) for (i = 1; i <= n; i++) { c = substr(str, i, 1) c = tolower(c) + # index() returns 0 if c not in string, + # includes c == "0" k = index("123456789abcdef", c) ret = ret * 16 + k -- cgit v1.2.3 From 8a1df492afae19d544fa5e5b636ed427b2d1c3f5 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sun, 14 Sep 2014 19:28:50 +0300 Subject: Doc edits. --- awklib/eg/lib/strtonum.awk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'awklib/eg/lib') diff --git a/awklib/eg/lib/strtonum.awk b/awklib/eg/lib/strtonum.awk index 5e20626b..f82c89c5 100644 --- a/awklib/eg/lib/strtonum.awk +++ b/awklib/eg/lib/strtonum.awk @@ -13,8 +13,8 @@ function mystrtonum(str, ret, n, i, k, c) ret = 0 for (i = 1; i <= n; i++) { c = substr(str, i, 1) - # index() returns 0 if c not in string, - # includes c == "0" + # index() returns 0 if c not in string, + # includes c == "0" k = index("1234567", c) ret = ret * 8 + k @@ -27,8 +27,8 @@ function mystrtonum(str, ret, n, i, k, c) for (i = 1; i <= n; i++) { c = substr(str, i, 1) c = tolower(c) - # index() returns 0 if c not in string, - # includes c == "0" + # index() returns 0 if c not in string, + # includes c == "0" k = index("123456789abcdef", c) ret = ret * 16 + k -- cgit v1.2.3