gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-2639-g07e4003
Date: Wed, 19 Jul 2017 01:00:38 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, feature/namespaces has been updated
       via  07e4003f9cf877c64bf3aee2829a1c80b3ab0a10 (commit)
      from  544ca984f6c43636f9dca31be73e00ceac8ad5e3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=07e4003f9cf877c64bf3aee2829a1c80b3ab0a10

commit 07e4003f9cf877c64bf3aee2829a1c80b3ab0a10
Author: Arnold D. Robbins <address@hidden>
Date:   Wed Jul 19 08:00:22 2017 +0300

    Add awklib/eg/lib/ns_passwd.awk to the repo.

diff --git a/awklib/eg/lib/ns_passwd.awk b/awklib/eg/lib/ns_passwd.awk
new file mode 100644
index 0000000..b9b6bce
--- /dev/null
+++ b/awklib/eg/lib/ns_passwd.awk
@@ -0,0 +1,72 @@
+# ns_passwd.awk --- access password file information
+#
+# Arnold Robbins, address@hidden, Public Domain
+# May 1993
+# Revised October 2000
+# Revised December 2010
+#
+# Reworked for namespaces June 2017, with help from
+# Andrew J.: Schorr, address@hidden
+
address@hidden "passwd"
+
+BEGIN {
+    # tailor this to suit your system
+    Awklib = "/usr/local/libexec/awk/"
+}
+
+function Init(    oldfs, oldrs, olddol0, pwcat, using_fw, using_fpat)
+{
+    if (Inited)
+        return
+
+    oldfs = FS
+    oldrs = RS
+    olddol0 = $0
+    using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
+    using_fpat = (PROCINFO["FS"] == "FPAT")
+    FS = ":"
+    RS = "\n"
+
+    pwcat = Awklib "pwcat"
+    while ((pwcat | getline) > 0) {
+        Byname[$1] = $0
+        Byuid[$3] = $0
+        Bycount[++Total] = $0
+    }
+    close(pwcat)
+    Count = 0
+    Inited = 1
+    FS = oldfs
+    if (using_fw)
+        FIELDWIDTHS = FIELDWIDTHS
+    else if (using_fpat)
+        FPAT = FPAT
+    RS = oldrs
+    $0 = olddol0
+}
+
+function awk::getpwnam(name)
+{
+    Init()
+    return Byname[name]
+}
+
+function awk::getpwuid(uid)
+{
+    Init()
+    return Byuid[uid]
+}
+
+function awk::getpwent()
+{
+    Init()
+    if (Count < Total)
+        return Bycount[++Count]
+    return ""
+}
+
+function awk::endpwent()
+{
+    Count = 0
+}

-----------------------------------------------------------------------

Summary of changes:
 test/nsprof2.awk => awklib/eg/lib/ns_passwd.awk | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
 copy test/nsprof2.awk => awklib/eg/lib/ns_passwd.awk (87%)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]