aboutsummaryrefslogtreecommitdiff
path: root/coreutils-5.3.0-bin/share/awk/group.awk
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils-5.3.0-bin/share/awk/group.awk')
-rw-r--r--coreutils-5.3.0-bin/share/awk/group.awk87
1 files changed, 87 insertions, 0 deletions
diff --git a/coreutils-5.3.0-bin/share/awk/group.awk b/coreutils-5.3.0-bin/share/awk/group.awk
new file mode 100644
index 0000000..ba8ae50
--- /dev/null
+++ b/coreutils-5.3.0-bin/share/awk/group.awk
@@ -0,0 +1,87 @@
+# group.awk --- functions for dealing with the group file
+#
+# Arnold Robbins, arnold@skeeve.com, Public Domain
+# May 1993
+# Revised October 2000
+
+BEGIN \
+{
+ # Change to suit your system
+ _gr_awklib = "c:/progra~1/Gawk/libexec/awk/"
+}
+
+function _gr_init( oldfs, oldrs, olddol0, grcat,
+ using_fw, n, a, i)
+{
+ if (_gr_inited)
+ return
+
+ oldfs = FS
+ oldrs = RS
+ olddol0 = $0
+ using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
+ FS = ":"
+ RS = "\n"
+
+ grcat = _gr_awklib "grcat"
+ while ((grcat | getline) > 0) {
+ if ($1 in _gr_byname)
+ _gr_byname[$1] = _gr_byname[$1] "," $4
+ else
+ _gr_byname[$1] = $0
+ if ($3 in _gr_bygid)
+ _gr_bygid[$3] = _gr_bygid[$3] "," $4
+ else
+ _gr_bygid[$3] = $0
+
+ n = split($4, a, "[ \t]*,[ \t]*")
+ for (i = 1; i <= n; i++)
+ if (a[i] in _gr_groupsbyuser)
+ _gr_groupsbyuser[a[i]] = \
+ _gr_groupsbyuser[a[i]] " " $1
+ else
+ _gr_groupsbyuser[a[i]] = $1
+
+ _gr_bycount[++_gr_count] = $0
+ }
+ close(grcat)
+ _gr_count = 0
+ _gr_inited++
+ FS = oldfs
+ if (using_fw)
+ FIELDWIDTHS = FIELDWIDTHS
+ RS = oldrs
+ $0 = olddol0
+}
+function getgrnam(group)
+{
+ _gr_init()
+ if (group in _gr_byname)
+ return _gr_byname[group]
+ return ""
+}
+function getgrgid(gid)
+{
+ _gr_init()
+ if (gid in _gr_bygid)
+ return _gr_bygid[gid]
+ return ""
+}
+function getgruser(user)
+{
+ _gr_init()
+ if (user in _gr_groupsbyuser)
+ return _gr_groupsbyuser[user]
+ return ""
+}
+function getgrent()
+{
+ _gr_init()
+ if (++_gr_count in _gr_bycount)
+ return _gr_bycount[_gr_count]
+ return ""
+}
+function endgrent()
+{
+ _gr_count = 0
+}