Subject: bug#64529: closed (Re: bug#64529: 30.0.50; [PATCH] Add special $GID variable for Eshell)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 08 Jul 2023 19:28:02 +0000

Your bug report

#64529: 30.0.50; [PATCH] Add special $GID variable for Eshell

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
64529: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64529
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#64529: 30.0.50; [PATCH] Add special $GID variable for Eshell
From: Jim Porter <[email-masked]>
To: Michael Albinus <[email-masked]>
Cc: [email-masked]
Date: Sat, 8 Jul 2023 12:27:46 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On 7/8/2023 6:07 AM, Michael Albinus wrote:
> LGTM.

Thanks for taking a look. Merged as e074081af3d, and closing this now.

Subject: 30.0.50; [PATCH] Add special $GID variable for Eshell
From: Jim Porter <[email-masked]>
To: [email-masked]
Date: Fri, 7 Jul 2023 23:35:58 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Currently, Eshell has a special $UID variable that's connection-aware 
(so it returns the remote UID if the current directory is remote). 
However, it doesn't do this for $GID. Here's a patch to fix that.

From d5f4f5a944cb60f9068976d1d91e981d21c79cb2 Mon Sep 17 00:00:00 2001
From: Jim Porter <[email-masked]>
Date: Fri, 7 Jul 2023 23:18:33 -0700
Subject: [PATCH] Add special '$GID' variable in Eshell

* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add '$GID'.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/gid-var): New test.
* doc/misc/eshell.texi (Variables): Document '$GID'.
---
 doc/misc/eshell.texi              | 7 +++++++
 lisp/eshell/esh-var.el            | 1 +
 test/lisp/eshell/esh-var-tests.el | 4 ++++
 3 files changed, 12 insertions(+)

diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 5972d2834b0..a1f541da9da 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -993,6 +993,13 @@ Variables
 its value will be @acronym{UID} for the user associated with that
 remote connection.
 
+@vindex $GID
+@item $GID
+This returns the effective @acronym{GID} for the current user.  Like
+@code{$UID}, this variable is connection-aware, so when the current
+directory is remote, its value will be @acronym{GID} for the user
+associated with that remote connection.
+
 @vindex $_
 @item $_
 This refers to the last argument of the last command.  With a
diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el
index 7dcaff1e24f..c7c0a21d2a9 100644
--- a/lisp/eshell/esh-var.el
+++ b/lisp/eshell/esh-var.el
@@ -163,6 +163,7 @@ eshell-variable-aliases-list
     ("LINES" ,(lambda () (window-body-height nil 'remap)) t t)
     ("INSIDE_EMACS" eshell-inside-emacs t)
     ("UID" ,(lambda () (file-user-uid)) nil t)
+    ("GID" ,(lambda () (file-group-gid)) nil t)
 
     ;; for esh-ext.el
     ("PATH" (,(lambda () (string-join (eshell-get-path t) (path-separator)))
diff --git a/test/lisp/eshell/esh-var-tests.el b/test/lisp/eshell/esh-var-tests.el
index 771bd5a419c..3e58fe749dd 100644
--- a/test/lisp/eshell/esh-var-tests.el
+++ b/test/lisp/eshell/esh-var-tests.el
@@ -829,6 +829,10 @@ esh-var-test/uid-var
   "Test that $UID is equivalent to (user-uid) for local directories."
   (eshell-command-result-equal "echo $UID" (user-uid)))
 
+(ert-deftest esh-var-test/gid-var ()
+  "Test that $GID is equivalent to (group-gid) for local directories."
+  (eshell-command-result-equal "echo $GID" (group-gid)))
+
 (ert-deftest esh-var-test/last-status-var-lisp-command ()
   "Test using the \"last exit status\" ($?) variable with a Lisp command."
   (with-temp-eshell
-- 
2.25.1