diff options
Diffstat (limited to 'contrib/awk/awklib/eg/lib')
-rw-r--r-- | contrib/awk/awklib/eg/lib/assert.awk | 2 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/bits2str.awk | 16 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/cliff_rand.awk | 14 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/ftrans.awk | 4 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/getopt.awk | 20 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/gettime.awk | 15 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/grcat.c | 6 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/groupawk.in | 9 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/join.awk | 1 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/libintl.awk | 9 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/nextfile.awk | 1 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/noassign.awk | 17 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/ord.awk | 18 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/passwdawk.in | 9 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/pwcat.c | 7 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/readable.awk | 16 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/rewind.awk | 20 | ||||
-rw-r--r-- | contrib/awk/awklib/eg/lib/round.awk | 4 |
18 files changed, 143 insertions, 45 deletions
diff --git a/contrib/awk/awklib/eg/lib/assert.awk b/contrib/awk/awklib/eg/lib/assert.awk index 50f42e7..bbfc066 100644 --- a/contrib/awk/awklib/eg/lib/assert.awk +++ b/contrib/awk/awklib/eg/lib/assert.awk @@ -1,4 +1,6 @@ # assert --- assert that a condition is true. Otherwise exit. + +# # Arnold Robbins, arnold@gnu.org, Public Domain # May, 1993 diff --git a/contrib/awk/awklib/eg/lib/bits2str.awk b/contrib/awk/awklib/eg/lib/bits2str.awk new file mode 100644 index 0000000..9725ee8 --- /dev/null +++ b/contrib/awk/awklib/eg/lib/bits2str.awk @@ -0,0 +1,16 @@ +# bits2str --- turn a byte into readable 1's and 0's + +function bits2str(bits, data, mask) +{ + if (bits == 0) + return "0" + + mask = 1 + for (; bits != 0; bits = rshift(bits, 1)) + data = (and(bits, mask) ? "1" : "0") data + + while ((length(data) % 8) != 0) + data = "0" data + + return data +} diff --git a/contrib/awk/awklib/eg/lib/cliff_rand.awk b/contrib/awk/awklib/eg/lib/cliff_rand.awk new file mode 100644 index 0000000..345447e --- /dev/null +++ b/contrib/awk/awklib/eg/lib/cliff_rand.awk @@ -0,0 +1,14 @@ +# cliff_rand.awk --- generate Cliff random numbers +# +# Arnold Robbins, arnold@gnu.org, Public Domain +# December 2000 + +BEGIN { _cliff_seed = 0.1 } + +function cliff_rand() +{ + _cliff_seed = (100 * log(_cliff_seed)) % 1 + if (_cliff_seed < 0) + _cliff_seed = - _cliff_seed + return _cliff_seed +} diff --git a/contrib/awk/awklib/eg/lib/ftrans.awk b/contrib/awk/awklib/eg/lib/ftrans.awk index cec615b..b0743e2 100644 --- a/contrib/awk/awklib/eg/lib/ftrans.awk +++ b/contrib/awk/awklib/eg/lib/ftrans.awk @@ -2,8 +2,8 @@ # # user supplies beginfile() and endfile() functions # -# Arnold Robbins, arnold@gnu.org, November 1992 -# Public Domain +# Arnold Robbins, arnold@gnu.org, Public Domain +# November 1992 FNR == 1 { if (_filename_ != "") diff --git a/contrib/awk/awklib/eg/lib/getopt.awk b/contrib/awk/awklib/eg/lib/getopt.awk index dae20e5..9375305 100644 --- a/contrib/awk/awklib/eg/lib/getopt.awk +++ b/contrib/awk/awklib/eg/lib/getopt.awk @@ -1,28 +1,26 @@ -# getopt --- do C library getopt(3) function in awk +# getopt.awk --- do C library getopt(3) function in awk # -# arnold@gnu.org -# Public domain +# Arnold Robbins, arnold@gnu.org, Public Domain # # Initial version: March, 1991 # Revised: May, 1993 # External variables: -# Optind -- index of ARGV for first non-option argument +# Optind -- index in ARGV of first non-option argument # Optarg -- string value of argument to current option -# Opterr -- if non-zero, print our own diagnostic +# Opterr -- if nonzero, print our own diagnostic # Optopt -- current option letter -# Returns +# Returns: # -1 at end of options # ? for unrecognized option # <c> a character representing the current option -# Private Data -# _opti index in multi-flag option, e.g., -abc -function getopt(argc, argv, options, optl, thisopt, i) +# Private Data: +# _opti -- index in multi-flag option, e.g., -abc +function getopt(argc, argv, options, thisopt, i) { - optl = length(options) - if (optl == 0) # no options given + if (length(options) == 0) # no options given return -1 if (argv[Optind] == "--") { # all done diff --git a/contrib/awk/awklib/eg/lib/gettime.awk b/contrib/awk/awklib/eg/lib/gettime.awk index 82f09d7..c425123 100644 --- a/contrib/awk/awklib/eg/lib/gettime.awk +++ b/contrib/awk/awklib/eg/lib/gettime.awk @@ -1,6 +1,8 @@ -# gettimeofday --- get the time of day in a usable format +# gettimeofday.awk --- get the time of day in a usable format +# # Arnold Robbins, arnold@gnu.org, Public Domain, May 1993 # + # Returns a string in the format of output of date(1) # Populates the array argument time with individual values: # time["second"] -- seconds (0 - 59) @@ -11,17 +13,17 @@ # time["month"] -- month of year (1 - 12) # time["monthname"] -- name of the month # time["shortmonth"] -- short name of the month -# time["year"] -- year within century (0 - 99) -# time["fullyear"] -- year with century (19xx or 20xx) +# time["year"] -- year modulo 100 (0 - 99) +# time["fullyear"] -- full year # time["weekday"] -- day of week (Sunday = 0) # time["altweekday"] -- day of week (Monday = 0) -# time["weeknum"] -- week number, Sunday first day -# time["altweeknum"] -- week number, Monday first day # time["dayname"] -- name of weekday # time["shortdayname"] -- short name of weekday # time["yearday"] -- day of year (0 - 365) # time["timezone"] -- abbreviation of timezone name # time["ampm"] -- AM or PM designation +# time["weeknum"] -- week number, Sunday first day +# time["altweeknum"] -- week number, Monday first day function gettimeofday(time, ret, now, i) { @@ -32,8 +34,7 @@ function gettimeofday(time, ret, now, i) ret = strftime("%a %b %d %H:%M:%S %Z %Y", now) # clear out target array - for (i in time) - delete time[i] + delete time # fill in values, force numeric values to be # numeric by adding 0 diff --git a/contrib/awk/awklib/eg/lib/grcat.c b/contrib/awk/awklib/eg/lib/grcat.c index 570b323..d34ddd5 100644 --- a/contrib/awk/awklib/eg/lib/grcat.c +++ b/contrib/awk/awklib/eg/lib/grcat.c @@ -2,9 +2,9 @@ * grcat.c * * Generate a printable version of the group database - * - * Arnold Robbins, arnold@gnu.org - * May 1993 + */ +/* + * Arnold Robbins, arnold@gnu.org, May 1993 * Public Domain */ diff --git a/contrib/awk/awklib/eg/lib/groupawk.in b/contrib/awk/awklib/eg/lib/groupawk.in index 11a72a5..9d8b402 100644 --- a/contrib/awk/awklib/eg/lib/groupawk.in +++ b/contrib/awk/awklib/eg/lib/groupawk.in @@ -1,13 +1,17 @@ # group.awk --- functions for dealing with the group file +# # Arnold Robbins, arnold@gnu.org, Public Domain # May 1993 +# Revised October 2000 BEGIN \ { # Change to suit your system _gr_awklib = "/usr/local/libexec/awk/" } -function _gr_init( oldfs, oldrs, olddol0, grcat, n, a, i) + +function _gr_init( oldfs, oldrs, olddol0, grcat, + using_fw, n, a, i) { if (_gr_inited) return @@ -15,6 +19,7 @@ function _gr_init( oldfs, oldrs, olddol0, grcat, n, a, i) oldfs = FS oldrs = RS olddol0 = $0 + using_fw = (PROCINFO["FS"] == "FIELDWIDTHS") FS = ":" RS = "\n" @@ -43,6 +48,8 @@ function _gr_init( oldfs, oldrs, olddol0, grcat, n, a, i) _gr_count = 0 _gr_inited++ FS = oldfs + if (using_fw) + FIELDWIDTHS = FIELDWIDTHS RS = oldrs $0 = olddol0 } diff --git a/contrib/awk/awklib/eg/lib/join.awk b/contrib/awk/awklib/eg/lib/join.awk index f52f5e6..e17b427 100644 --- a/contrib/awk/awklib/eg/lib/join.awk +++ b/contrib/awk/awklib/eg/lib/join.awk @@ -1,4 +1,5 @@ # join.awk --- join an array into a string +# # Arnold Robbins, arnold@gnu.org, Public Domain # May 1993 diff --git a/contrib/awk/awklib/eg/lib/libintl.awk b/contrib/awk/awklib/eg/lib/libintl.awk new file mode 100644 index 0000000..a9402c2 --- /dev/null +++ b/contrib/awk/awklib/eg/lib/libintl.awk @@ -0,0 +1,9 @@ +function bindtextdomain(dir, domain) +{ + return dir +} + +function dcgettext(string, domain, category) +{ + return string +} diff --git a/contrib/awk/awklib/eg/lib/nextfile.awk b/contrib/awk/awklib/eg/lib/nextfile.awk index 4bb07bc..caedf0e 100644 --- a/contrib/awk/awklib/eg/lib/nextfile.awk +++ b/contrib/awk/awklib/eg/lib/nextfile.awk @@ -1,5 +1,6 @@ # nextfile --- skip remaining records in current file # correctly handle successive occurrences of the same file +# # Arnold Robbins, arnold@gnu.org, Public Domain # May, 1993 diff --git a/contrib/awk/awklib/eg/lib/noassign.awk b/contrib/awk/awklib/eg/lib/noassign.awk new file mode 100644 index 0000000..d6d176e --- /dev/null +++ b/contrib/awk/awklib/eg/lib/noassign.awk @@ -0,0 +1,17 @@ +# noassign.awk --- library file to avoid the need for a +# special option that disables command-line assignments +# +# Arnold Robbins, arnold@gnu.org, Public Domain +# October 1999 + +function disable_assigns(argc, argv, i) +{ + for (i = 1; i < argc; i++) + if (argv[i] ~ /^[A-Za-z_][A-Za-z_0-9]*=.*/) + argv[i] = ("./" argv[i]) +} + +BEGIN { + if (No_command_assign) + disable_assigns(ARGC, ARGV) +} diff --git a/contrib/awk/awklib/eg/lib/ord.awk b/contrib/awk/awklib/eg/lib/ord.awk index b19149e..3eacbcc 100644 --- a/contrib/awk/awklib/eg/lib/ord.awk +++ b/contrib/awk/awklib/eg/lib/ord.awk @@ -1,16 +1,15 @@ # ord.awk --- do ord and chr -# + # Global identifiers: # _ord_: numerical values indexed by characters # _ord_init: function to initialize _ord_ # -# Arnold Robbins -# arnold@gnu.org -# Public Domain +# Arnold Robbins, arnold@gnu.org, Public Domain # 16 January, 1992 # 20 July, 1992, revised BEGIN { _ord_init() } + function _ord_init( low, high, i, t) { low = sprintf("%c", 7) # BEL is ascii 7 @@ -37,18 +36,9 @@ function ord(str, c) c = substr(str, 1, 1) return _ord_[c] } + function chr(c) { # force c to be numeric by adding 0 return sprintf("%c", c + 0) } -#### test code #### -# BEGIN \ -# { -# for (;;) { -# printf("enter a character: ") -# if (getline var <= 0) -# break -# printf("ord(%s) = %d\n", var, ord(var)) -# } -# } diff --git a/contrib/awk/awklib/eg/lib/passwdawk.in b/contrib/awk/awklib/eg/lib/passwdawk.in index dd6ee7f..5f6f9e2 100644 --- a/contrib/awk/awklib/eg/lib/passwdawk.in +++ b/contrib/awk/awklib/eg/lib/passwdawk.in @@ -1,21 +1,26 @@ # passwd.awk --- access password file information +# # Arnold Robbins, arnold@gnu.org, Public Domain # May 1993 +# Revised October 2000 BEGIN { # tailor this to suit your system _pw_awklib = "/usr/local/libexec/awk/" } -function _pw_init( oldfs, oldrs, olddol0, pwcat) +function _pw_init( oldfs, oldrs, olddol0, pwcat, using_fw) { if (_pw_inited) return + oldfs = FS oldrs = RS olddol0 = $0 + using_fw = (PROCINFO["FS"] == "FIELDWIDTHS") FS = ":" RS = "\n" + pwcat = _pw_awklib "pwcat" while ((pwcat | getline) > 0) { _pw_byname[$1] = $0 @@ -26,6 +31,8 @@ function _pw_init( oldfs, oldrs, olddol0, pwcat) _pw_count = 0 _pw_inited = 1 FS = oldfs + if (using_fw) + FIELDWIDTHS = FIELDWIDTHS RS = oldrs $0 = olddol0 } diff --git a/contrib/awk/awklib/eg/lib/pwcat.c b/contrib/awk/awklib/eg/lib/pwcat.c index 591b852..b9a7134 100644 --- a/contrib/awk/awklib/eg/lib/pwcat.c +++ b/contrib/awk/awklib/eg/lib/pwcat.c @@ -2,10 +2,9 @@ * pwcat.c * * Generate a printable version of the password database - * - * Arnold Robbins - * arnold@gnu.org - * May 1993 + */ +/* + * Arnold Robbins, arnold@gnu.org, May 1993 * Public Domain */ diff --git a/contrib/awk/awklib/eg/lib/readable.awk b/contrib/awk/awklib/eg/lib/readable.awk new file mode 100644 index 0000000..51705ae --- /dev/null +++ b/contrib/awk/awklib/eg/lib/readable.awk @@ -0,0 +1,16 @@ +# readable.awk --- library file to skip over unreadable files +# +# Arnold Robbins, arnold@gnu.org, Public Domain +# October 2000 + +BEGIN { + for (i = 1; i < ARGC; i++) { + if (ARGV[i] ~ /^[A-Za-z_][A-Za-z0-9_]*=.*/ \ + || ARGV[i] == "-") + continue # assignment or standard input + else if ((getline junk < ARGV[i]) < 0) # unreadable + delete ARGV[i] + else + close(ARGV[i]) + } +} diff --git a/contrib/awk/awklib/eg/lib/rewind.awk b/contrib/awk/awklib/eg/lib/rewind.awk new file mode 100644 index 0000000..3328661 --- /dev/null +++ b/contrib/awk/awklib/eg/lib/rewind.awk @@ -0,0 +1,20 @@ +# rewind.awk --- rewind the current file and start over +# +# Arnold Robbins, arnold@gnu.org, Public Domain +# September 2000 + +function rewind( i) +{ + # shift remaining arguments up + for (i = ARGC; i > ARGIND; i--) + ARGV[i] = ARGV[i-1] + + # make sure gawk knows to keep going + ARGC++ + + # make current file next to get done + ARGV[ARGIND+1] = FILENAME + + # do it + nextfile +} diff --git a/contrib/awk/awklib/eg/lib/round.awk b/contrib/awk/awklib/eg/lib/round.awk index 67ce646..bf16c2b 100644 --- a/contrib/awk/awklib/eg/lib/round.awk +++ b/contrib/awk/awklib/eg/lib/round.awk @@ -1,7 +1,7 @@ # round --- do normal rounding # -# Arnold Robbins, arnold@gnu.org, August, 1996 -# Public Domain +# Arnold Robbins, arnold@gnu.org, Public Domain +# August, 1996 function round(x, ival, aval, fraction) { |