aboutsummaryrefslogtreecommitdiffstats
path: root/awklib/eg
diff options
context:
space:
mode:
Diffstat (limited to 'awklib/eg')
-rw-r--r--awklib/eg/lib/grcat.c4
-rw-r--r--awklib/eg/lib/pwcat.c6
-rw-r--r--awklib/eg/lib/round.awk2
-rw-r--r--awklib/eg/network/eliza.awk2
-rw-r--r--awklib/eg/prog/translate.awk16
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)