It seems if you set a variable locally first, and then use
/set or
/var -g to change the value of the same var, the
/set or
/var -g will act as a local variable setter rather than a global one.
Here is a rather verbose example:
//var -s %X! Ok | set -s %X! Hello | echo -gaec i ** % $+ X! is local: $var(%X!,1).local | echo -gaec i ** During Script Processing: % $+ X! = %X! | .timer 1 0 echo -gaec i ** After Script Processing: % $!+ X! = % $+ X!
The same happens if used in a script file. (e.g., as an alias).
Initially, I thought this behavior was related to how the
%var = value method of setting a variable acts as a local variable setter if the same var is set locally first, but now I'm being told that this is not the case and that what I have described is actually a bug, which (naturally) is why I'm reporting it here.