diff options
Diffstat (limited to 'awklib/eg')
-rw-r--r-- | awklib/eg/lib/grcat.c | 4 | ||||
-rw-r--r-- | awklib/eg/lib/pwcat.c | 6 | ||||
-rw-r--r-- | awklib/eg/lib/round.awk | 2 | ||||
-rw-r--r-- | awklib/eg/network/eliza.awk | 2 | ||||
-rw-r--r-- | awklib/eg/prog/translate.awk | 16 |
5 files changed, 22 insertions, 8 deletions
diff --git a/awklib/eg/lib/grcat.c b/awklib/eg/lib/grcat.c index fd35c832..6c36fe96 100644 --- a/awklib/eg/lib/grcat.c +++ b/awklib/eg/lib/grcat.c @@ -32,8 +32,12 @@ char **argv; int i; while ((g = getgrent()) != NULL) { +#ifdef ZOS_USS + printf("%s:%ld:", g->gr_name, (long) g->gr_gid); +#else printf("%s:%s:%ld:", g->gr_name, g->gr_passwd, (long) g->gr_gid); +#endif for (i = 0; g->gr_mem[i] != NULL; i++) { printf("%s", g->gr_mem[i]); if (g->gr_mem[i+1] != NULL) diff --git a/awklib/eg/lib/pwcat.c b/awklib/eg/lib/pwcat.c index 09457148..6b5c7858 100644 --- a/awklib/eg/lib/pwcat.c +++ b/awklib/eg/lib/pwcat.c @@ -27,9 +27,15 @@ char **argv; struct passwd *p; while ((p = getpwent()) != NULL) +#ifdef ZOS_USS + printf("%s:%ld:%ld:%s:%s\n", + p->pw_name, (long) p->pw_uid, + (long) p->pw_gid, p->pw_dir, p->pw_shell); +#else printf("%s:%s:%ld:%ld:%s:%s:%s\n", p->pw_name, p->pw_passwd, (long) p->pw_uid, (long) p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell); +#endif endpwent(); return 0; diff --git a/awklib/eg/lib/round.awk b/awklib/eg/lib/round.awk index c5e993f1..899645f1 100644 --- a/awklib/eg/lib/round.awk +++ b/awklib/eg/lib/round.awk @@ -9,7 +9,7 @@ function round(x, ival, aval, fraction) # see if fractional part if (ival == x) # no fraction - return x + return ival # ensure no decimals if (x < 0) { aval = -x # absolute value diff --git a/awklib/eg/network/eliza.awk b/awklib/eg/network/eliza.awk index 75e353a7..15ee2c46 100644 --- a/awklib/eg/network/eliza.awk +++ b/awklib/eg/network/eliza.awk @@ -37,7 +37,7 @@ function HandleGET() { } else if (MENU[2] == "AboutELIZA") { Document = "This is an implementation of the famous ELIZA\ program by Joseph Weizenbaum. It is written in GAWK and\ -/bin/sh: expad: command not found + uses an HTML GUI." } else if (MENU[2] == "StartELIZA") { gsub(/\+/, " ", GETARG["YouSay"]) # Here we also have to substitute coded special characters diff --git a/awklib/eg/prog/translate.awk b/awklib/eg/prog/translate.awk index 0db239ad..cf7f3897 100644 --- a/awklib/eg/prog/translate.awk +++ b/awklib/eg/prog/translate.awk @@ -2,26 +2,30 @@ # # Arnold Robbins, arnold@skeeve.com, Public Domain # August 1989 +# February 2009 - bug fix # Bugs: does not handle things like: tr A-Z a-z, it has # to be spelled out. However, if `to' is shorter than `from', # the last character in `to' is used for the rest of `from'. -function stranslate(from, to, target, lf, lt, t_ar, i, c) +function stranslate(from, to, target, lf, lt, ltarget, t_ar, i, c, + result) { lf = length(from) lt = length(to) + ltarget = length(target) for (i = 1; i <= lt; i++) t_ar[substr(from, i, 1)] = substr(to, i, 1) if (lt < lf) for (; i <= lf; i++) t_ar[substr(from, i, 1)] = substr(to, lt, 1) - for (i = 1; i <= lf; i++) { - c = substr(from, i, 1) - if (index(target, c) > 0) - gsub(c, t_ar[c], target) + for (i = 1; i <= ltarget; i++) { + c = substr(target, i, 1) + if (c in t_ar) + c = t_ar[c] + result = result c } - return target + return result } function translate(from, to) |