From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#23779: 25.0.95; consing "SHELLVAR" onto process-environment doesn't remove it from subprocess env Date: Fri, 17 Jun 2016 10:11:58 +0300 Message-ID: <837fdocmrl.fsf@gnu.org> References: Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1466147566 13038 80.91.229.3 (17 Jun 2016 07:12:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 17 Jun 2016 07:12:46 +0000 (UTC) Cc: 23779@debbugs.gnu.org To: Noam Postavsky Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jun 17 09:12:35 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bDnxB-0005Rb-6T for geb-bug-gnu-emacs@m.gmane.org; Fri, 17 Jun 2016 09:12:33 +0200 Original-Received: from localhost ([::1]:54427 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDnxA-0002x6-FH for geb-bug-gnu-emacs@m.gmane.org; Fri, 17 Jun 2016 03:12:32 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57062) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDnwl-0002mQ-O6 for bug-gnu-emacs@gnu.org; Fri, 17 Jun 2016 03:12:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDnwg-0007Zc-OW for bug-gnu-emacs@gnu.org; Fri, 17 Jun 2016 03:12:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:59693) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDnwg-0007ZX-L0 for bug-gnu-emacs@gnu.org; Fri, 17 Jun 2016 03:12:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bDnwg-00038E-HR for bug-gnu-emacs@gnu.org; Fri, 17 Jun 2016 03:12:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 17 Jun 2016 07:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23779 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 23779-submit@debbugs.gnu.org id=B23779.146614747111978 (code B ref 23779); Fri, 17 Jun 2016 07:12:02 +0000 Original-Received: (at 23779) by debbugs.gnu.org; 17 Jun 2016 07:11:11 +0000 Original-Received: from localhost ([127.0.0.1]:43797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDnvr-000378-1J for submit@debbugs.gnu.org; Fri, 17 Jun 2016 03:11:11 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:37719) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDnvp-00036v-HJ for 23779@debbugs.gnu.org; Fri, 17 Jun 2016 03:11:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDnvf-0007TK-EU for 23779@debbugs.gnu.org; Fri, 17 Jun 2016 03:11:04 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:60269) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDnvf-0007TC-Au; Fri, 17 Jun 2016 03:10:59 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4164 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bDnvd-0007BM-DD; Fri, 17 Jun 2016 03:10:57 -0400 In-reply-to: (message from Noam Postavsky on Thu, 16 Jun 2016 23:33:02 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:119656 Archived-At: > From: Noam Postavsky > Date: Thu, 16 Jun 2016 23:33:02 -0400 > > (check-env-var "SHELL");=>"SHELL=/bin/bash" > (let ((process-environment (copy-sequence process-environment))) > (setenv "SHELL" nil) > (check-env-var "SHELL"));=>nil > (let ((process-environment (cons "SHELL" process-environment))) > (check-env-var "SHELL"));=>"SHELL=/bin/bash" > (let ((process-environment (cons "SHELL=" process-environment))) > (check-env-var "SHELL"));=>"SHELL=" > > As you can see from the 3rd expression, contrary to its docstring, > consing the env variable "SHELL" onto process-environment has no > effect at all. > > process-environment is a variable defined in ‘C source code’. > Its value is > [...] > Documentation: > List of overridden environment variables for subprocesses to inherit. > Each element should be a string of the form ENVVARNAME=VALUE. > > Entries in this list take precedence to those in the frame-local > environments. Therefore, let-binding ‘process-environment’ is an easy > way to temporarily change the value of an environment variable, > irrespective of where it comes from. To use ‘process-environment’ to > remove an environment variable, include only its name in the list, > without "=VALUE". Where does it say that you can use 'cons' or 'push', and only them, to the effect of removing the variable from the environment passed to child processes? process-environment is just a simple list, so these two functions just _add_ another member to the list, they don't remove the old member. My reading of the last sentence you cite is that you must manually remove the old member "SHELL=whatever", and _then_ add a member that has no value. Am I missing something?