From owner-freebsd-current@FreeBSD.ORG Fri Jul 13 22:28:18 2007 Return-Path: X-Original-To: freebsd-current@FreeBSD.org Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4513716A404 for ; Fri, 13 Jul 2007 22:28:18 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from mail.farley.org (farley.org [67.64.95.201]) by mx1.freebsd.org (Postfix) with ESMTP id 057A713C4A7 for ; Fri, 13 Jul 2007 22:28:17 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from thor.farley.org (thor.farley.org [192.168.1.5]) by mail.farley.org (8.14.1/8.14.1) with ESMTP id l6DMU67f055977; Fri, 13 Jul 2007 17:30:06 -0500 (CDT) (envelope-from scf@FreeBSD.org) Date: Fri, 13 Jul 2007 17:27:58 -0500 (CDT) From: "Sean C. Farley" To: Andrey Chernov In-Reply-To: <20070713203915.GA20270@nagual.pp.ru> Message-ID: <20070713171942.Q26096@thor.farley.org> References: <20070707130859.GA96605@nagual.pp.ru> <20070707131359.GB96605@nagual.pp.ru> <20070707133102.C14065@thor.farley.org> <20070707191835.GA4368@nagual.pp.ru> <20070707205410.B14065@thor.farley.org> <20070708020940.GA80166@nagual.pp.ru> <20070708171727.GA90490@nagual.pp.ru> <20070713162742.GA16260@nagual.pp.ru> <20070713142545.K26096@thor.farley.org> <20070713202433.GA19856@nagual.pp.ru> <20070713203915.GA20270@nagual.pp.ru> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.1 X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on mail.farley.org Cc: freebsd-current Subject: Re: Environment handling broken in /bin/sh with changes to t,set,put}env() X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jul 2007 22:28:18 -0000 On Sat, 14 Jul 2007, Andrey Chernov wrote: > On Sat, Jul 14, 2007 at 12:24:33AM +0400, Andrey Chernov wrote: >> 1) I care in first hand about unsetenv() as my example states. There >> nowhere said in the specs that unsetenv() may modify environ _content_, >> manpage says about pointers only. > > Moreover, they directly states (at least for some cases) that environment > should be left completely untouched, like that: > > "If the named variable does not exist in the current environment, the > environment shall be unchanged and the function is considered to have > completed successfully." *snipped part about setenv()* I agree that setenv() and unsetenv() follow the same requirement. Does that mean that environ is untouched or that the environment is unchanged? They seem to use both words (environ and environment) in the documentation making me think they are not necessarily the same thing. Currently, non-getenv() calls rebuilds the environ array if having never been changed before, but the "environment" is "unchanged" if the variable does not exist. Should that not meet that requirement? Sean -- scf@FreeBSD.org