** TODO

Envy::Util or Envy::UI
  library of functions to assist in presentation
  factor envy.IN & DB.IN
  fuzzy match

Read the $ENVY_PATH one component at a time!  Big performance win on
slow file-systems (like mine! :-)

switch to PERL_MM_OPT

explicit dependencies for refcnt>1

include package   # always reload; no dimensions?

support for dimension migration (aliases)

real lexical analysis -- use XS?

improve catalogue

machine generate shell script variants (see Rc)
  keeps sh/csh in sync
  less chance of bugs
  make compatible with rc/es!

regression tests
  dimension swapping
  tests for fuzzy match
  tests for .priv
  top-level switching

comparison operations -
  against the same envy symbolic name
    or against two different
  diff similarly named env files - shadowed report

might be a way to avoid the need for ETOP in the login scripts?

pipe long output through $ENV{PAGER}?
  can't fix envy.pl because shell will eval STDOUT!

umask 0;  # Figure out how to run setuid 'envy'?

documentation for:
  First - the most important thing is to understand - agree on it!  :-)
  Envy::DB API

---------------------------------------- GRAPHICAL ENVY PROJECT ---------

Tony.Parent@Symbios.COM wrote:
This afternoon I started prototyping some stuff for a graphical envy
module picker/cshrc creator. (Not sure whether I want to use the
dotfile generator or not.) I'm using perl-TK, so can directly use the
Envy::DB routines.

What I'm finding I need is the tree stuff we talked about
before. Basically I need to be able to query the DB to find dimensions
that are NOT loaded. (Dimensions that are loaded could maybe be
obtained from the ENVY_STATE and ENVY_DIMENSION environment
variables. I also need to query for children. Now most of this would
be more parsing of the .env files correct? I don't see where you
actually save the dimensions etc of files that aren't loaded. Any
thing you want me to keep in mind as I work on this? I'm thinking
it'll be a generic query subroutine in the DB.IN and some stuff in
envy.pl to add a 'envy.pl tree' command.

On Thu, 3 Sep 1998 Tony.Parent@Symbios.COM wrote:
> me in the DB code. Correct me if I'm wrong, but so far I'm thinking that
> I'll essetially have to load each module to make sure the vars are set and
> I get the correct sub module.
 
Gack!  Your right!  What a mess!  :-)
 
> a.env:
> 
> # Set the site variable
> require SITE 
> require b_$SITE
> 
> In order to show the correct b_<site>.env module I'll have to fully load "a"
> first. 
 
---------------------------------------------- PIE IN THE SKY! ---

store ENVY_STATE, etc, as compressed binhex?!

envy.pl
  show loaded dimensions in PROMPT?
&
  in the 'envy list' the marker is always 'x'
    make the marker dependent on where the file was loaded?

script to test maximum number of characters per environment variable?

macro-ize?
  unshift(VAR, ' ', COMPONENTS)
  push(VAR, ' ', COMPONENTS)

Implement BSD make's "?=" variable assignment operator.  The variable
is assigned the specified value only if that variable is not already
defined.  Unload must be eager.  Does anyone want this?

split/join of any very long variable?
