aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Tcl_shipped.html98
-rw-r--r--jim_tcl.txt23
2 files changed, 89 insertions, 32 deletions
diff --git a/Tcl_shipped.html b/Tcl_shipped.html
index fbe5fbd..9168e7c 100644
--- a/Tcl_shipped.html
+++ b/Tcl_shipped.html
@@ -676,11 +676,6 @@ Direct command line editing rather than the <em>history</em> command
Expression shorthand syntax: <tt>$(&#8230;)</tt>
</p>
</li>
-<li>
-<p>
-The <em>binary</em> command is not supported
-</p>
-</li>
</ol></div>
</div>
</div>
@@ -720,6 +715,36 @@ Additional variables in <tt>tcl_platform()</tt>
<em>local</em> procs now push existing commands and <em>upcall</em> can call them
</p>
</li>
+<li>
+<p>
+Add <em>loop</em> command (TclX compatible)
+</p>
+</li>
+<li>
+<p>
+Add <em>aio</em> <em>buffering</em> command
+</p>
+</li>
+<li>
+<p>
+<em>info complete</em> can now return the missing character
+</p>
+</li>
+<li>
+<p>
+<em>binary format</em> and <em>binary scan</em> are now (optionally) supported
+</p>
+</li>
+<li>
+<p>
+Add <em>string byterange</em>
+</p>
+</li>
+<li>
+<p>
+Built-in regexp now support non-greedy repetition (*?, +?, ??)
+</p>
+</li>
</ol></div>
</div>
<div class="sect2">
@@ -772,7 +797,7 @@ Optional UTF-8 support
</li>
<li>
<p>
-Optional built-in regexp engines for better Tcl compatibility and UTF-8 support
+Optional built-in regexp engine for better Tcl compatibility and UTF-8 support
</p>
</li>
<li>
@@ -2660,12 +2685,13 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"><a href="#_lmap">lmap</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_load">load</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_local">local</a></p></td>
+<td align="left" valign="top"><p class="table"><a href="#_loop">loop</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_lrange">lrange</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_lrepeat">lrepeat</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_lreplace">lreplace</a></p></td>
-<td align="left" valign="top"><p class="table"><a href="#_lreverse">lreverse</a></p></td>
</tr>
<tr>
+<td align="left" valign="top"><p class="table"><a href="#_lreverse">lreverse</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_lsearch">lsearch</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_lset">lset</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_lsort">lsort</a></p></td>
@@ -2673,9 +2699,9 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"><a href="#cmd_1">os.fork</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#cmd_1">os.gethostname</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#cmd_1">os.getids</a></p></td>
-<td align="left" valign="top"><p class="table"><a href="#cmd_1">os.uptime</a></p></td>
</tr>
<tr>
+<td align="left" valign="top"><p class="table"><a href="#cmd_1">os.uptime</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#cmd_1">os.wait</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_package">package</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_pid">pid</a></p></td>
@@ -2683,9 +2709,9 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"><a href="#_proc">proc</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_puts">puts</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_pwd">pwd</a></p></td>
-<td align="left" valign="top"><p class="table"><a href="#_rand">rand</a></p></td>
</tr>
<tr>
+<td align="left" valign="top"><p class="table"><a href="#_rand">rand</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_range">range</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_read">read</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_ref">ref</a></p></td>
@@ -2693,9 +2719,9 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"><a href="#_regsub">regsub</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_rename">rename</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_return">return</a></p></td>
-<td align="left" valign="top"><p class="table"><a href="#_scan">scan</a></p></td>
</tr>
<tr>
+<td align="left" valign="top"><p class="table"><a href="#_scan">scan</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_seek">seek</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_set">set</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_setref">setref</a></p></td>
@@ -2703,9 +2729,9 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"><a href="#_sleep">sleep</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_socket">socket</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_source">source</a></p></td>
-<td align="left" valign="top"><p class="table"><a href="#_split">split</a></p></td>
</tr>
<tr>
+<td align="left" valign="top"><p class="table"><a href="#_split">split</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_stackdump">stackdump</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_stacktrace">stacktrace</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_string">string</a></p></td>
@@ -2713,9 +2739,9 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"><a href="#_switch">switch</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_syslog">syslog</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_tailcall">tailcall</a></p></td>
-<td align="left" valign="top"><p class="table"><a href="#_tell">tell</a></p></td>
</tr>
<tr>
+<td align="left" valign="top"><p class="table"><a href="#_tell">tell</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_throw">throw</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_time">time</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_try">try</a></p></td>
@@ -2723,9 +2749,9 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"><a href="#_unset">unset</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_upcall">upcall</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#cmd_2">update</a></p></td>
-<td align="left" valign="top"><p class="table"><a href="#_uplevel">uplevel</a></p></td>
</tr>
<tr>
+<td align="left" valign="top"><p class="table"><a href="#_uplevel">uplevel</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_upvar">upvar</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#cmd_2">vwait</a></p></td>
<td align="left" valign="top"><p class="table"><a href="#_while">while</a></p></td>
@@ -2733,7 +2759,6 @@ cellspacing="0" cellpadding="4">
<td align="left" valign="top"><p class="table"></p></td>
<td align="left" valign="top"><p class="table"></p></td>
<td align="left" valign="top"><p class="table"></p></td>
-<td align="left" valign="top"><p class="table"></p></td>
</tr>
</tbody>
</table>
@@ -3956,14 +3981,6 @@ The legal <strong>option</strong>'s (which may be abbreviated) are:
</dt>
<dd>
<p>
- Returns a list of all open <em>aio</em> channels.
-</p>
-</dd>
-<dt class="hdlist1">
-<tt><strong>info channels</strong></tt>
-</dt>
-<dd>
-<p>
Returns a list of all open file handles from <em>open</em> or <em>socket</em>
</p>
</dd>
@@ -3981,7 +3998,7 @@ The legal <strong>option</strong>'s (which may be abbreviated) are:
</p>
</dd>
<dt class="hdlist1">
-<tt><strong>info complete</strong> <em>command</em></tt>
+<tt><strong>info complete</strong> <em>command</em> ?<em>missing</em>?</tt>
</dt>
<dd>
<p>
@@ -3991,7 +4008,8 @@ The legal <strong>option</strong>'s (which may be abbreviated) are:
This command is typically used in line-oriented input environments
to allow users to type in commands that span multiple lines; if the
command isn&#8217;t complete, the script can delay evaluating it until additional
- lines have been typed to complete the command.
+ lines have been typed to complete the command. If <strong>varName</strong> is specified, the
+ missing character is stored in the variable with that name.
</p>
</dd>
<dt class="hdlist1">
@@ -4299,6 +4317,19 @@ than waiting until garbage collection.</p></div>
</div></div>
</div>
<div class="sect2">
+<h3 id="_loop">loop</h3>
+<div class="paragraph"><p><tt><strong>loop</strong> <em>var first limit ?incr? body</em></tt></p></div>
+<div class="paragraph"><p>Similar to <em>for</em> except simpler and possibly more efficient.
+With a positive increment, equivalent to:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><tt>for {set var $first} {$var &lt; $limit} {incr var $incr} $body</tt></pre>
+</div></div>
+<div class="paragraph"><p>If <strong>incr</strong> is not specified, 1 is used.
+Note that setting the loop variable inside the loop does not
+affect the loop count.</p></div>
+</div>
+<div class="sect2">
<h3 id="_lindex">lindex</h3>
<div class="paragraph"><p><tt><strong>lindex</strong> <em>list index</em></tt></p></div>
<div class="paragraph"><p>Treats <strong>list</strong> as a Tcl list and returns element <strong>index</strong> from it
@@ -5603,6 +5634,15 @@ Any hexadecimal digit character ([0-9A-Fa-f]).
</p>
</dd>
<dt class="hdlist1">
+<tt><strong>string byterange</strong> <em>string first last</em></tt>
+</dt>
+<dd>
+<p>
+ Like <em>string range</em> except works on bytes rather than characters. These commands
+ are identical if UTF-8 support is not enabled
+</p>
+</dd>
+<dt class="hdlist1">
<tt><strong>string repeat</strong> <em>string count</em></tt>
</dt>
<dd>
@@ -6235,6 +6275,14 @@ uid 1000 euid 1000 gid 100 egid 100</tt></pre>
</p>
</dd>
<dt class="hdlist1">
+<tt>$handle <strong>buffering none|line|full</strong></tt>
+</dt>
+<dd>
+<p>
+ Sets the buffering mode of the stream.
+</p>
+</dd>
+<dt class="hdlist1">
<tt>$handle <strong>accept</strong></tt>
</dt>
<dd>
@@ -6977,7 +7025,7 @@ official policies, either expressed or implied, of the Jim Tcl Project.</tt></pr
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Last updated 2011-06-01 13:11:48 EST
+Last updated 2011-06-10 14:47:19 EST
</div>
</div>
</body>
diff --git a/jim_tcl.txt b/jim_tcl.txt
index 1bf20dd..cffbae1 100644
--- a/jim_tcl.txt
+++ b/jim_tcl.txt
@@ -51,7 +51,6 @@ The major differences with Tcl 8.5/8.6 are:
11. Variable traces are not supported
12. Direct command line editing rather than the 'history' command
13. Expression shorthand syntax: +$(...)+
-14. The 'binary' command is not supported
RECENT CHANGES
--------------
@@ -65,6 +64,11 @@ Changes between 0.70 and 0.71
5. Additional variables in +tcl_platform()+
6. 'local' procs now push existing commands and 'upcall' can call them
7. Add 'loop' command (TclX compatible)
+8. Add 'aio' 'buffering' command
+9. 'info complete' can now return the missing character
+10. 'binary format' and 'binary scan' are now (optionally) supported
+11. Add 'string byterange'
+12. Built-in regexp now support non-greedy repetition (*?, +?, ??)
Changes between 0.63 and 0.70
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -77,7 +81,7 @@ Changes between 0.63 and 0.70
7. The 'exec' command now only uses vfork(), not fork()
8. Unit test framework is less verbose and more Tcl-compatible
9. Optional UTF-8 support
-10. Optional built-in regexp engines for better Tcl compatibility and UTF-8 support
+10. Optional built-in regexp engine for better Tcl compatibility and UTF-8 support
11. Command line editing in interactive mode, e.g. 'jimsh'
TCL INTRODUCTION
@@ -2507,9 +2511,6 @@ The legal *option*'s (which may be abbreviated) are:
the name of a Tcl command procedure.
+*info channels*+::
- Returns a list of all open 'aio' channels.
-
-+*info channels*+::
Returns a list of all open file handles from 'open' or 'socket'
+*info commands* ?'pattern'?+::
@@ -2520,14 +2521,15 @@ The legal *option*'s (which may be abbreviated) are:
are returned. Matching is determined using the same rules as for
'string match'.
-+*info complete* 'command'+::
++*info complete* 'command' ?'missing'?+::
Returns 1 if *command* is a complete Tcl command in the sense of
having no unclosed quotes, braces, brackets or array element names,
If the command doesn't appear to be complete then 0 is returned.
This command is typically used in line-oriented input environments
to allow users to type in commands that span multiple lines; if the
command isn't complete, the script can delay evaluating it until additional
- lines have been typed to complete the command.
+ lines have been typed to complete the command. If *varName* is specified, the
+ missing character is stored in the variable with that name.
+*info exists* 'varName'+::
Returns '1' if the variable named *varName* exists in the
@@ -3780,6 +3782,10 @@ The legal options (which may be abbreviated) are:
it is treated as if it were 'end'. If *first* is greater than
*last* then an empty string is returned.
++*string byterange* 'string first last'+::
+ Like 'string range' except works on bytes rather than characters. These commands
+ are identical if UTF-8 support is not enabled
+
+*string repeat* 'string count'+::
Returns a new string consisting of *string* repeated *count* times.
@@ -4285,6 +4291,9 @@ aio
Note that in general ANSI I/O interacts badly with non-blocking I/O.
Use with care.
++$handle *buffering none|line|full*+::
+ Sets the buffering mode of the stream.
+
+$handle *accept*+::
Server socket only: Accept a connection and return stream