?RCS: $Id: Setvar.U 1 2006-08-24 12:32:52Z rmanfredi $
?RCS:
?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
?RCS:
?RCS: You may redistribute only under the terms of the Artistic Licence,
?RCS: as specified in the README file that comes with the distribution.
?RCS: You may reuse parts of this distribution only within the terms of
?RCS: that same Artistic Licence; a copy of which may be found at the root
?RCS: of the source tree for dist 4.0.
?RCS:
?RCS: $Log: Setvar.U,v $
?RCS: Revision 3.0.1.1  1994/10/29  15:58:28  ram
?RCS: patch36: call ./whoa explicitly instead of relying on PATH
?RCS:
?RCS: Revision 3.0  1993/08/18  12:05:16  ram
?RCS: Baseline for dist 3.0 netwide release.
?RCS:
?X:
?X: This unit produces a variable that is intended to be eval'ed in
?X: order to define/undefine a symbol. A consistency check is made
?X: regarding any previous value and a warning is issued if there
?X: is any discrepancy.
?X:
?X: To use it, say:
?X: val=<value>
?X: set d_variable
?X: eval $setvar
?X:
?MAKE:Setvar: Whoa
?MAKE:	-pick add $@ %<
?LINT:define setvar
?S:setvar:
?S:	This shell variable is used internally by Configure to set a value
?S:	to a given symbol that is defined or not. A typical use is:
?S:	val=<value computed>
?S:		set d_variable
?S:		eval $setvar
?S:	That will print a message in case the $val value is not the same
?S:	as the previous value of $d_variable.
?S:.
?V:setvar:val
?T:var was td tu
: function used to set '$1' to '$val'
setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
case "$val$was" in
$define$undef) . ./whoa; eval "$var=\$td";;
$undef$define) . ./whoa; eval "$var=\$tu";;
*) eval "$var=$val";;
esac'

