<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/blt/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/blt/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 12 Jul 2022 18:03:43 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/blt/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/blt/wiki/Home/?limit=25#aba4/6e0e/52ad/cae8/4395</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Oh, I see!  Vectors get created even without &lt;code&gt;create&lt;/code&gt;!  This might be good enough.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I'm not 100% clear as to why syntactical compatibility between  2.x and&lt;br/&gt;
3.x is needed. Nor why the vectors need to created in a single command.&lt;/p&gt;
&lt;p&gt;Is this because the TCL code making the call can't be changed?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The reason for my initiating this compatibility discussion is this:  if I want to write a code that I can distribute (to students, for example) I need to anticipate the environment in which they will be using it.  The vast majority of Linux distributions out there use a fork of BLT which calls itself "v 2.5.3" - just because there is a convenient Debian/Ubuntu package of it that is installed by default by &lt;code&gt;apt install blt&lt;/code&gt;.  ActiveTCL which dominates the Windows world has dropped support for BLT altogether, although one can still find a v.2.4.7z that will install and run there.  We tend to recommend to Windows users undroidwish/vanillawish which has BLT 2.4.7z built in, and this also works under Android and MacOS (&lt;a class="" href="https://androwish.org" rel="nofollow"&gt;androwish.org)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And I keep hoping to return all the "strays" back to this mother project.  Maybe when the official version 3.0 is released , it will be picked up by the Debian/Ubuntu maintainers.  Not everyone will be willing to install from source.&lt;/p&gt;
&lt;p&gt;That is why I found myself needing to focus on robust code that runs under all flavours of BLT.  As to the preference  for making multiple vectors in a single command: that's just a desire for compactness and similarity with variable declarations in any other language, and a mild irritation at having to modify perfectly good code that's been running for years.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Edward Sternin</dc:creator><pubDate>Tue, 12 Jul 2022 18:03:43 -0000</pubDate><guid>https://sourceforge.net5e8860deb71f7178a265cbb9a306710d327900c0</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/blt/wiki/Home/?limit=25#aba4/6e0e/52ad</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Sorry,  &lt;a class="user-mention" href="/u/ghowlett/"&gt;@ghowlett&lt;/a&gt;, I may have been unclear.  It's the loss of ability to declare &lt;strong&gt;multiple&lt;/strong&gt; vectors on one line that represents a discontinuity in syntax:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ bltsh30 
% blt::vector create x&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; t w
unknown switch &lt;span class="s2"&gt;"t"&lt;/span&gt;
The following switches are available:
   -variable varName
   -command &lt;span class="nb"&gt;command&lt;/span&gt;
   -watchunset bool
   -flush bool
   -length length
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;although I just noticed that there is in &lt;a class="" href="https://manpages.debian.org/jessie/blt-dev/blt::vector.3tcl" rel="nofollow"&gt;v.2.5.3&lt;/a&gt; from &lt;code&gt;blt-dev&lt;/code&gt; an option:&lt;br/&gt;
&lt;code&gt;vector configure -oldcreate bool&lt;/code&gt; which may be doing what I had in mind:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The configure operation sets the default options used in creating vectors: ... The -oldcreate enable the creation shortcut: vector vec1 vec2 ...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, this seems to not have been included in 3.0, so it's probably one of the non-canonical changes made in a fork of the BLT. It does seem like a reasonable approach, though I still think that simply preserving the old flexible syntax would be my first choice.&lt;br/&gt;
Even in the new syntax, I think the multiple-vector option could be maintained: all switches begin with a &lt;code&gt;-&lt;/code&gt;, so  in &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;vector create x -length 5 t w
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;it's pretty clear that vectors &lt;code&gt;t&lt;/code&gt; and &lt;code&gt;w&lt;/code&gt; would have a zero length.  Or one could use &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;vector create x -length 5 -- t w
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Edward Sternin</dc:creator><pubDate>Tue, 12 Jul 2022 00:20:43 -0000</pubDate><guid>https://sourceforge.net465bb0cec5166687451697668755c1868ac049f6</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/blt/wiki/Home/?limit=25#aef4</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Very simple but useful things that are missing in v.2.x : &lt;code&gt;[x min]&lt;/code&gt; and &lt;code&gt;[x max]&lt;/code&gt;.  This is difficult to overcome (my shortest version is  &lt;code&gt;x dup xx; xx sort; puts "$xx(0)"&lt;/code&gt; for min), and the best workaround I found is to use critcl:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="n"&gt;require&lt;/span&gt; &lt;span class="n"&gt;BLT&lt;/span&gt;
&lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;blt&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="n"&gt;require&lt;/span&gt; &lt;span class="n"&gt;critcl&lt;/span&gt;
&lt;span class="n"&gt;critcl&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;clibraries&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lBLT&lt;/span&gt;
&lt;span class="n"&gt;critcl&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;ccode&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;#include &amp;lt;tcl.h&amp;gt;&lt;/span&gt;
  &lt;span class="c1"&gt;#include &amp;lt;blt.h&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;critcl&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cproc&lt;/span&gt; &lt;span class="n"&gt;minValue&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;Tcl_Interp&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ip&lt;/span&gt; &lt;span class="n"&gt;Tcl_Obj&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;double&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Blt_Vector&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;Blt_GetVector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Tcl_GetString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;critcl&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cproc&lt;/span&gt; &lt;span class="n"&gt;maxValue&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;Tcl_Interp&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ip&lt;/span&gt; &lt;span class="n"&gt;Tcl_Obj&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;double&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Blt_Vector&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;Blt_GetVector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Tcl_GetString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;vector&lt;/span&gt; &lt;span class="n"&gt;create&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="n"&gt;seq&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"$x(:) is from [minValue x] to [maxValue x]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;the &lt;code&gt;Blt_Vector&lt;/code&gt; structure in C simply has the min/max within it, but in v.2.x access to them is not provided.  The above will work under all versions, fast and with no memory overhead. &lt;/p&gt;
&lt;p&gt;Unless I missed something and &lt;a class="user-mention" href="/u/gah/"&gt;@gah&lt;/a&gt; can correct me.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Edward Sternin</dc:creator><pubDate>Wed, 06 Jul 2022 23:44:44 -0000</pubDate><guid>https://sourceforge.net876ab394f7380cb21e1c532bcfe75130cf6e12c1</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/blt/wiki/Home/?limit=25#aba4</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;BLT v.3 significantly changed the syntax of the &lt;code&gt;vector&lt;/code&gt; command.  Since a lot of places are still running v.2.47z, trying to write universal code requires accommodations like these:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;proc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;newVector&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;len&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;BLT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="nv"&gt;.x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;allowed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;re&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;existing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vectors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;this&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;necessary&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BLT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;but&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;will&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;also&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;work&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BLT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="nv"&gt;.x&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;global&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BLT3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nf"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;info&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;exists&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vector&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;destroy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nf"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;len&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;len&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;BLT3&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nf"&gt;vector&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;length&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;len&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;BLT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;initializes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;NaN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;restore&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BLT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="nv"&gt;.x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;behaviour&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;initializing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="p"&gt;(:)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;\&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nf"&gt;vector&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;len&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;\&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nf"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;vector&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;take&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;care&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BLT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;v.2.x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;syntax&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"vector create x y(5) z..."&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="k"&gt;proc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vectorsCreate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;lv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nf"&gt;foreach&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;lv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;v_name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;lindex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;split&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;v_len&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;lindex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;split&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;newVector&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;v_name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;$&lt;/span&gt;&lt;span class="nv"&gt;v_len&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;With the above, both &lt;code&gt;newVector x 5&lt;/code&gt; and &lt;code&gt;vectorsCreate {y(3) z t(0)}&lt;/code&gt; (which is a slight modification of what in v.2.47z would have been &lt;code&gt;vector create y(3) z t(0)&lt;/code&gt;) work fine under all versions of BLT.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Edward Sternin</dc:creator><pubDate>Wed, 06 Jul 2022 23:26:59 -0000</pubDate><guid>https://sourceforge.net0b2d18487c195155973cccff047d17529ba73b49</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/blt/wiki/Home/?limit=25#219b</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;BLT 2.4z has been the mainstay of most Linux distributions for a while and, unfortunately, the recent changes to the code here have not yet made through to the distribution channels.  I wanted to make my code run under either the 2.x series or under the current 3.0 (4.0? in Readme) versions if you downloaded/compiled/installed that.  These are some of the tricks I had to use:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="n"&gt;BLTversion&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="n"&gt;require&lt;/span&gt; &lt;span class="n"&gt;BLT&lt;/span&gt;&lt;span class="p"&gt;]}]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt; &lt;span class="s2"&gt;"BLT and RBC packages are missing, maybe `sudo apt-get install blt`&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="n"&gt;vsatisfies&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;BLTversion&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="n"&gt;BLT3&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="n"&gt;BLT3&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="n"&gt;exists&lt;/span&gt; &lt;span class="n"&gt;BLTversion&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;catch&lt;/span&gt; &lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;blt&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c1"&gt;# in BLT3 blt::scale conflicts with tcl/tk scale&lt;/span&gt;
      &lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;blt&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;graph&lt;/span&gt;
      &lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;blt&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;vector&lt;/span&gt;
      &lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;blt&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;marker&lt;/span&gt;
      &lt;span class="n"&gt;namespace&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;blt&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;element&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Then, later on I can use the BLT3 flag to identify the incompatible bits of code:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; {&lt;span class="mh"&gt;$B&lt;/span&gt;&lt;span class="nv"&gt;LT3&lt;/span&gt;} {
    &lt;span class="k"&gt;if&lt;/span&gt; { [&lt;span class="nv"&gt;info&lt;/span&gt; &lt;span class="nv"&gt;exists&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; ] } { &lt;span class="nv"&gt;vector&lt;/span&gt; &lt;span class="nv"&gt;destroy&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; }  &lt;span class="c1"&gt;; vector create x  -length $size&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; { [&lt;span class="nv"&gt;info&lt;/span&gt; &lt;span class="nv"&gt;exists&lt;/span&gt; &lt;span class="nv"&gt;y&lt;/span&gt;] } { &lt;span class="nv"&gt;vector&lt;/span&gt; &lt;span class="nv"&gt;destroy&lt;/span&gt; &lt;span class="nv"&gt;y1&lt;/span&gt; } &lt;span class="c1"&gt;; vector create y -length $size&lt;/span&gt;
     } &lt;span class="k"&gt;else&lt;/span&gt; {&lt;span class="c1"&gt;;# BLT 2.x allowed to re-create existing vectors&lt;/span&gt;
    &lt;span class="nv"&gt;vector&lt;/span&gt; &lt;span class="nv"&gt;create&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;$&lt;span class="nv"&gt;size&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;y&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;$&lt;span class="nv"&gt;size&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
    }
&lt;/pre&gt;&lt;/div&gt;


&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;  &lt;span class="k"&gt;if&lt;/span&gt; {&lt;span class="mh"&gt;$B&lt;/span&gt;&lt;span class="nv"&gt;LT3&lt;/span&gt;} {
    $&lt;span class="nv"&gt;g&lt;/span&gt; &lt;span class="nv"&gt;axis&lt;/span&gt; &lt;span class="nv"&gt;configure&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;title&lt;/span&gt; $&lt;span class="nv"&gt;xlabel&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;grid&lt;/span&gt; &lt;span class="nv"&gt;yes&lt;/span&gt;
    $&lt;span class="nv"&gt;g&lt;/span&gt; &lt;span class="nv"&gt;axis&lt;/span&gt; &lt;span class="nv"&gt;configure&lt;/span&gt; &lt;span class="nv"&gt;y&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;title&lt;/span&gt; $&lt;span class="nv"&gt;ylabel&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;grid&lt;/span&gt; &lt;span class="nv"&gt;yes&lt;/span&gt;
  } &lt;span class="k"&gt;else&lt;/span&gt; {
    $&lt;span class="nv"&gt;g&lt;/span&gt; &lt;span class="nv"&gt;axis&lt;/span&gt; &lt;span class="nv"&gt;configure&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;title&lt;/span&gt; $&lt;span class="nv"&gt;xlabel&lt;/span&gt;
    $&lt;span class="nv"&gt;g&lt;/span&gt; &lt;span class="nv"&gt;axis&lt;/span&gt; &lt;span class="nv"&gt;configure&lt;/span&gt; &lt;span class="nv"&gt;y&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;title&lt;/span&gt; $&lt;span class="nv"&gt;ylabel&lt;/span&gt;
    $&lt;span class="nv"&gt;g&lt;/span&gt; &lt;span class="nv"&gt;grid&lt;/span&gt; &lt;span class="nv"&gt;configure&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;mapx&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;mapy&lt;/span&gt; &lt;span class="nv"&gt;y&lt;/span&gt;
    }
&lt;/pre&gt;&lt;/div&gt;


&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;proc&lt;/span&gt; &lt;span class="nv"&gt;AddZoomStack&lt;/span&gt; { } {
  &lt;span class="nv"&gt;global&lt;/span&gt; &lt;span class="nv"&gt;BLT3&lt;/span&gt; &lt;span class="nv"&gt;g&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; {&lt;span class="mh"&gt;$B&lt;/span&gt;&lt;span class="nv"&gt;LT3&lt;/span&gt;} {&lt;span class="nv"&gt;variable&lt;/span&gt; ::&lt;span class="nv"&gt;blt&lt;/span&gt;::&lt;span class="nv"&gt;Graph&lt;/span&gt;::&lt;span class="nv"&gt;_private&lt;/span&gt;} &lt;span class="k"&gt;else&lt;/span&gt; {&lt;span class="nv"&gt;global&lt;/span&gt; &lt;span class="nv"&gt;zoomInfo&lt;/span&gt;}
  &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;cmd&lt;/span&gt; {}
  &lt;span class="nv"&gt;foreach&lt;/span&gt; &lt;span class="nv"&gt;margin&lt;/span&gt; { &lt;span class="nv"&gt;xaxis&lt;/span&gt; &lt;span class="nv"&gt;yaxis&lt;/span&gt; &lt;span class="nv"&gt;x2axis&lt;/span&gt; &lt;span class="nv"&gt;y2axis&lt;/span&gt; } {
    &lt;span class="nv"&gt;foreach&lt;/span&gt; &lt;span class="nv"&gt;axis&lt;/span&gt; [$&lt;span class="nv"&gt;g&lt;/span&gt; $&lt;span class="nv"&gt;margin&lt;/span&gt; &lt;span class="nv"&gt;use&lt;/span&gt;] {
      &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;min&lt;/span&gt; [$&lt;span class="nv"&gt;g&lt;/span&gt; &lt;span class="nv"&gt;axis&lt;/span&gt; &lt;span class="nv"&gt;cget&lt;/span&gt; &lt;span class="mh"&gt;$a&lt;/span&gt;&lt;span class="nv"&gt;xis&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;min&lt;/span&gt;]&lt;span class="c1"&gt;; set max [$g axis cget $axis -max]&lt;/span&gt;
      &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;c&lt;/span&gt; [&lt;span class="nv"&gt;list&lt;/span&gt; $&lt;span class="nv"&gt;g&lt;/span&gt; &lt;span class="nv"&gt;axis&lt;/span&gt; &lt;span class="nv"&gt;configure&lt;/span&gt; &lt;span class="mh"&gt;$a&lt;/span&gt;&lt;span class="nv"&gt;xis&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;min&lt;/span&gt; $&lt;span class="nv"&gt;min&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;max&lt;/span&gt; $&lt;span class="nv"&gt;max&lt;/span&gt;]
      &lt;span class="nv"&gt;append&lt;/span&gt; &lt;span class="nv"&gt;cmd&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$c&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
      }
    }
  &lt;span class="k"&gt;if&lt;/span&gt; {&lt;span class="mh"&gt;$B&lt;/span&gt;&lt;span class="nv"&gt;LT3&lt;/span&gt;} { &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;_private&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;$&lt;span class="nv"&gt;g&lt;/span&gt;,&lt;span class="nv"&gt;stack&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; [&lt;span class="nv"&gt;linsert&lt;/span&gt; $&lt;span class="nv"&gt;_private&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;$&lt;span class="nv"&gt;g&lt;/span&gt;,&lt;span class="nv"&gt;stack&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mh"&gt;$c&lt;/span&gt;&lt;span class="nv"&gt;md&lt;/span&gt;]
  } &lt;span class="k"&gt;else&lt;/span&gt; {     &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;zoomInfo&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;$&lt;span class="nv"&gt;g&lt;/span&gt;,&lt;span class="nv"&gt;stack&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; [&lt;span class="nv"&gt;linsert&lt;/span&gt; $&lt;span class="nv"&gt;zoomInfo&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;$&lt;span class="nv"&gt;g&lt;/span&gt;,&lt;span class="nv"&gt;stack&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mh"&gt;$c&lt;/span&gt;&lt;span class="nv"&gt;md&lt;/span&gt;] }
  }
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Edward Sternin</dc:creator><pubDate>Tue, 11 Feb 2020 11:30:26 -0000</pubDate><guid>https://sourceforge.net08d8e7023c26eb685fca403215383fddfdcd0713</guid></item><item><title>Home modified by George A. Howlett</title><link>https://sourceforge.net/p/blt/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/p/blt/wiki/markdown_syntax/"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;p&gt;&lt;h6&gt;Project Members:&lt;/h6&gt;&lt;ul class="md-users-list"&gt;&lt;li&gt;&lt;a href="/u/ghowlett/"&gt;George A. Howlett&lt;/a&gt; (admin)&lt;/li&gt;&lt;li&gt;&lt;a href="/u/mmclennan/"&gt;Michael McLennan&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;span class="download-button-517fd9ea5fcbc9798b120e7f" style="margin-bottom: 1em; display: block;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">George A. Howlett</dc:creator><pubDate>Tue, 30 Apr 2013 14:49:17 -0000</pubDate><guid>https://sourceforge.net4c1a0dee6ea64935d0b3cc23f0d12b13eb371089</guid></item></channel></rss>