path: root/mcon/U/Setvar.U
diff options
Diffstat (limited to 'mcon/U/Setvar.U')
1 files changed, 50 insertions, 0 deletions
diff --git a/mcon/U/Setvar.U b/mcon/U/Setvar.U
new file mode 100644
index 0000000..645d271
--- /dev/null
+++ b/mcon/U/Setvar.U
@@ -0,0 +1,50 @@
+?RCS: $Id: Setvar.U,v 1994/10/29 15:58:28 ram Exp $
+?RCS: Copyright (c) 1991-1993, Raphael Manfredi
+?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 3.0.
+?RCS: $Log: Setvar.U,v $
+?RCS: Revision 1994/10/29 15:58:28 ram
+?RCS: patch36: call ./whoa explicitely instead of relying on PATH
+?RCS: Revision 3.0 1993/08/18 12:05:16 ram
+?RCS: Baseline for dist 3.0 netwide release.
+?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: To use it, say:
+?X: val=<value>
+?X: set d_variable
+?X: eval $setvar
+?MAKE:Setvar: Whoa
+?MAKE: -pick add $@ %<
+?LINT:define 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.
+?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";;