Re: zsh oddities with recent -current

From: Andrey Chernov <ache_at_nagual.pp.ru>
Date: Wed, 25 Jul 2007 12:47:56 +0400
On Wed, Jul 25, 2007 at 05:33:05PM +0930, Daniel O'Connor wrote:
> I updated my -current box (laptop) on the 18th and I have 2 strange 
> issues with zsh.
> 
> 1) I can't unset environmental variables set before the shell started, 
> eg..

zsh uses system's putenv() but home-rolled delete from environment 
(instead of unsetenv()). It clearly violates POSIX since it forbids to mix 
putenv/setenv/unsetenv with direct environ manipulations:

"Conforming applications are required not to modify environ directly, but 
to use only the functions described here to manipulate the process 
environment as an abstract object. Thus, the implementation of the 
environment access functions has complete control over the data structure 
used to represent the environment (subject to the requirement that environ 
be maintained as a list of strings with embedded equal signs for 
applications that wish to scan the environment). This constraint allows 
the implementation to properly manage the memory it allocates, either by 
using allocated storage for all variables (copying them on the first 
invocation of setenv() or unsetenv()), or keeping track of which strings 
are currently in allocated space and which are not, via a separate table 
or some other means."

Quick fix will be just to disable HAVE_PUTENV config option. It gains 
nothing in the code but makes troubles.

-- 
http://ache.pp.ru/

Received on Wed Jul 25 2007 - 06:47:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:15 UTC