Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site cvl.UUCP
Path: utzoo!linus!philabs!seismo!rlgvax!cvl!jcw
From: jcw@cvl.UUCP
Newsgroups: net.micro.pc
Subject: Re: "Env. Variables & Disk junk - (nf)"
Message-ID: <486@cvl.UUCP>
Date: Wed, 13-Jul-83 14:31:57 EDT
Article-I.D.: cvl.486
Posted: Wed Jul 13 14:31:57 1983
Date-Received: Thu, 14-Jul-83 20:01:21 EDT
References: <160@ihlpf.UUCP>
Organization: U. of Md. Computer Vision Lab
Lines: 15

When COMMAND invokes a program, inside the program's Program Segment
Prefix is a pointer to its environment.  However, it is a pointer to
a *copy* of the environment of the shell.  The upshot is you can modify
the environment block to your heart's content but when the program exits
that block is freed up and the shell's block has not changed.  That is
why set has to be an internal command.  The only way I can think of to
change the shell's env. is to go searching blindly through memory for
it, and that's more than slightly gross.

A note a few days ago mentioned the ENVIRON statement (undocumented) in
BASIC 2.0, that sets environment variables.  I thought that since BASIC
was done by Microsoft that it might implement some trick to permanently
change environment variables.  No such luck, they go away too.

-Jay Weber {..!seismo!rlgvax!cvl!jcw}