536 changed files with 147889 additions and 40595 deletions
@ -0,0 +1,36 @@
|
||||
This software (GRIDPLUS) is Copyright (c) 2004-2015 by Adrian Davis (adrian@satisoft.com). |
||||
|
||||
The author hereby grants permission to use, copy, modify, distribute, |
||||
and license this software and its documentation for any purpose, provided |
||||
that existing copyright notices are retained in all copies and that |
||||
this notice is included verbatim in any distributions. No written agreement, |
||||
license, or royalty fee is required for any of the authorized uses. |
||||
Modifications to this software may be copyrighted by their authors |
||||
and need not follow the licensing terms described here, provided that |
||||
the new terms are clearly indicated on the first page of each file |
||||
where they apply. |
||||
|
||||
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY |
||||
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES |
||||
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY |
||||
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY |
||||
OF SUCH DAMAGE. |
||||
|
||||
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, |
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE |
||||
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE |
||||
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, |
||||
OR MODIFICATIONS. |
||||
|
||||
GOVERNMENT USE: If you are acquiring this software on behalf of the |
||||
U.S. government, the Government shall have only "Restricted Rights" |
||||
in the software and related documentation as defined in the Federal |
||||
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you |
||||
are acquiring the software on behalf of the Department of Defense, |
||||
the software shall be classified as "Commercial Computer Software" |
||||
and the Government shall have only "Restricted Rights" as defined in |
||||
Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, |
||||
the authors grant the U.S. Government and others acting in its behalf |
||||
permission to use and distribute the software in accordance with the |
||||
terms specified in this license. |
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,3 @@
|
||||
2.12b0 |
||||
#First line must be a tm version number |
||||
#all other lines are ignored. |
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,76 @@
|
||||
# -*- tcl -*- Tcl package index file |
||||
# --- --- --- Handcrafted, final generation by configure. |
||||
|
||||
if {[package vsatisfies [package provide Tcl] 9.0-]} { |
||||
package ifneeded tkimg 2.1.0 [list load [file join $dir tcl9tkimg210.dll]] |
||||
} else { |
||||
package ifneeded tkimg 2.1.0 [list load [file join $dir tkimg210t.dll]] |
||||
} |
||||
# Compatibility hack. When asking for the old name of the package |
||||
# then load all format handlers and base libraries provided by tkImg. |
||||
# Actually we ask only for the format handlers, the required base |
||||
# packages will be loaded automatically through the usual package |
||||
# mechanism. |
||||
|
||||
# When reading images without specifying it's format (option -format), |
||||
# the available formats are tried in reversed order as listed here. |
||||
# Therefore file formats with some "magic" identifier, which can be |
||||
# recognized safely, should be added at the end of this list. |
||||
|
||||
package ifneeded Img 2.1.0 { |
||||
package require img::window |
||||
package require img::tga |
||||
package require img::ico |
||||
package require img::pcx |
||||
package require img::sgi |
||||
package require img::sun |
||||
package require img::xbm |
||||
package require img::xpm |
||||
package require img::jpeg |
||||
package require img::png |
||||
package require img::tiff |
||||
package require img::bmp |
||||
package require img::ppm |
||||
package require img::pixmap |
||||
package provide Img 2.1.0 |
||||
} |
||||
|
||||
package ifneeded img::bmp 2.1.0 [list load [file join $dir tcl9tkimgbmp210.dll]] |
||||
package ifneeded img::dted 2.1.0 [list load [file join $dir tcl9tkimgdted210.dll]] |
||||
package ifneeded img::flir 2.1.0 [list load [file join $dir tcl9tkimgflir210.dll]] |
||||
package ifneeded img::gif 2.1.0 [list load [file join $dir tcl9tkimggif210.dll]] |
||||
package ifneeded img::ico 2.1.0 [list load [file join $dir tcl9tkimgico210.dll]] |
||||
if {[package vsatisfies [package provide Tcl] 9.0]} { |
||||
package ifneeded jpegtcl 9.6.0 [list load [file join $dir tcl9jpegtcl960.dll]] |
||||
} else { |
||||
package ifneeded jpegtcl 9.6.0 [list load [file join $dir jpegtcl960t.dll]] |
||||
} |
||||
package ifneeded img::jpeg 2.1.0 [list load [file join $dir tcl9tkimgjpeg210.dll]] |
||||
if {[package vsatisfies [package provide Tcl] 9.0]} { |
||||
package ifneeded zlibtcl 1.3.1 [list load [file join $dir tcl9zlibtcl131.dll]] |
||||
} else { |
||||
package ifneeded zlibtcl 1.3.1 [list load [file join $dir zlibtcl131t.dll]] |
||||
} |
||||
if {[package vsatisfies [package provide Tcl] 9.0]} { |
||||
package ifneeded pngtcl 1.6.48 [list load [file join $dir tcl9pngtcl1648.dll]] |
||||
} else { |
||||
package ifneeded pngtcl 1.6.48 [list load [file join $dir pngtcl1648t.dll]] |
||||
} |
||||
if {[package vsatisfies [package provide Tcl] 9.0]} { |
||||
package ifneeded tifftcl 4.7.0 [list load [file join $dir tcl9tifftcl470.dll]] |
||||
} else { |
||||
package ifneeded tifftcl 4.7.0 [list load [file join $dir tifftcl470t.dll]] |
||||
} |
||||
package ifneeded img::pcx 2.1.0 [list load [file join $dir tcl9tkimgpcx210.dll]] |
||||
package ifneeded img::pixmap 2.1.0 [list load [file join $dir tcl9tkimgpixmap210.dll]] |
||||
package ifneeded img::png 2.1.0 [list load [file join $dir tcl9tkimgpng210.dll]] |
||||
package ifneeded img::ppm 2.1.0 [list load [file join $dir tcl9tkimgppm210.dll]] |
||||
package ifneeded img::ps 2.1.0 [list load [file join $dir tcl9tkimgps210.dll]] |
||||
package ifneeded img::raw 2.1.0 [list load [file join $dir tcl9tkimgraw210.dll]] |
||||
package ifneeded img::sgi 2.1.0 [list load [file join $dir tcl9tkimgsgi210.dll]] |
||||
package ifneeded img::sun 2.1.0 [list load [file join $dir tcl9tkimgsun210.dll]] |
||||
package ifneeded img::tga 2.1.0 [list load [file join $dir tcl9tkimgtga210.dll]] |
||||
package ifneeded img::tiff 2.1.0 [list load [file join $dir tcl9tkimgtiff210.dll]] |
||||
package ifneeded img::window 2.1.0 [list load [file join $dir tcl9tkimgwindow210.dll]] |
||||
package ifneeded img::xbm 2.1.0 [list load [file join $dir tcl9tkimgxbm210.dll]] |
||||
package ifneeded img::xpm 2.1.0 [list load [file join $dir tcl9tkimgxpm210.dll]] |
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
package ifneeded TclCurl 8.15.0 "[list load [file join $dir tcl9TclCurl8150.dll] Tclcurl]; [list source [file join $dir tclcurl.tcl]]" |
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,143 @@
|
||||
################################################################################ |
||||
################################################################################ |
||||
#### tclcurl.tcl |
||||
################################################################################ |
||||
################################################################################ |
||||
## Includes the tcl part of TclCurl |
||||
################################################################################ |
||||
################################################################################ |
||||
## (c) 2001-2011 Andres Garcia Garcia. fandom@telefonica.net |
||||
## See the file "license.terms" for information on usage and redistribution |
||||
## of this file and for a DISCLAIMER OF ALL WARRANTIES. |
||||
################################################################################ |
||||
################################################################################ |
||||
|
||||
namespace eval curl { |
||||
|
||||
################################################################################ |
||||
# configure |
||||
# Invokes the 'curl-config' script to be able to know what features have |
||||
# been compiled in the installed version of libcurl. |
||||
# Possible options are '-prefix', '-feature' and 'vernum' |
||||
################################################################################ |
||||
proc ::curl::curlConfig {option} { |
||||
|
||||
if {$::tcl_platform(platform)=="windows"} { |
||||
error "This command is not available in Windows" |
||||
} |
||||
|
||||
switch -exact -- $option { |
||||
-prefix { |
||||
return [exec curl-config --prefix] |
||||
} |
||||
-feature { |
||||
set featureList [exec curl-config --feature] |
||||
regsub -all {\\n} $featureList { } featureList |
||||
return $featureList |
||||
} |
||||
-vernum { |
||||
return [exec curl-config --vernum] |
||||
} |
||||
-ca { |
||||
return [exec curl-config --ca] |
||||
} |
||||
default { |
||||
error "bad option '$option': must be '-prefix', '-feature', '-vernum' or '-ca'" |
||||
} |
||||
} |
||||
return |
||||
} |
||||
|
||||
################################################################################ |
||||
# transfer |
||||
# The transfer command is used for simple transfers in which you don't |
||||
# want to request more than one file. |
||||
# |
||||
# Parameters: |
||||
# Use the same parameters you would use in the 'configure' command to |
||||
# configure the download and the same as in 'getinfo' with a 'info' |
||||
# prefix to get info about the transfer. |
||||
################################################################################ |
||||
proc ::curl::transfer {args} { |
||||
variable getInfo |
||||
variable curlBodyVar |
||||
|
||||
set i 0 |
||||
set newArgs "" |
||||
catch {unset getInfo} |
||||
|
||||
if {[llength $args]==0} { |
||||
puts "No transfer configured" |
||||
return |
||||
} |
||||
|
||||
foreach {option value} $args { |
||||
set noPassOption 0 |
||||
set block 1 |
||||
switch -regexp -- $option { |
||||
-info.* { |
||||
set noPassOption 1 |
||||
regsub -- {-info} $option {} option |
||||
set getInfo($option) $value |
||||
} |
||||
-block { |
||||
set noPassOption 1 |
||||
set block $value |
||||
} |
||||
-bodyvar { |
||||
upvar $value curlBodyVar |
||||
set value curlBodyVar |
||||
} |
||||
-headervar { |
||||
upvar $value curlHeaderVar |
||||
set value curlHeaderVar |
||||
} |
||||
-errorbuffer { |
||||
upvar $value curlErrorVar |
||||
set value curlErrorVar |
||||
} |
||||
} |
||||
if {$noPassOption==0} { |
||||
lappend newArgs $option $value |
||||
} |
||||
} |
||||
|
||||
if {[catch {::curl::init} curlHandle]} { |
||||
error "Could not init a curl session: $curlHandle" |
||||
} |
||||
|
||||
if {[catch {eval $curlHandle configure $newArgs} result]} { |
||||
$curlHandle cleanup |
||||
error $result |
||||
} |
||||
|
||||
if {$block==1} { |
||||
if {[catch {$curlHandle perform} result]} { |
||||
$curlHandle cleanup |
||||
error $result |
||||
} |
||||
if {[info exists getInfo]} { |
||||
foreach {option var} [array get getInfo] { |
||||
upvar $var info |
||||
set info [eval $curlHandle getinfo $option] |
||||
} |
||||
} |
||||
if {[catch {$curlHandle cleanup} result]} { |
||||
error $result |
||||
} |
||||
} else { |
||||
# We create a multiHandle |
||||
set multiHandle [curl::multiinit] |
||||
|
||||
# We add the easy handle to the multi handle. |
||||
$multiHandle addhandle $curlHandle |
||||
|
||||
# So now we create the event source passing the multiHandle as a parameter. |
||||
curl::createEventSource $multiHandle |
||||
|
||||
# And we return, it is non blocking after all. |
||||
} |
||||
return 0 |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,320 @@
|
||||
<HTML><HEAD><TITLE>Manpage of TclCurl</TITLE> |
||||
</HEAD><BODY> |
||||
<H1>TclCurl</H1> |
||||
Section: TclCurl Multi Interface (3)<BR>Updated: 03 September 2011<BR><HR> |
||||
|
||||
<A NAME="lbAB"> </A> |
||||
<H2>NAME</H2> |
||||
|
||||
TclCurl: - get a URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE, LDAP, |
||||
LDAPS, IMAP, IMAPS, POP, POP3, SMTP, SMTPS and gopher syntax. |
||||
<A NAME="lbAC"> </A> |
||||
<H2>SYNOPSIS</H2> |
||||
|
||||
<B>curl::multiinit</B> |
||||
|
||||
<P> |
||||
<I>multiHandle</I><B> addhandle</B> |
||||
|
||||
<P> |
||||
<I>multiHandle</I><B> removehandle</B> |
||||
|
||||
<P> |
||||
<I>multiHandle</I><B> configure</B> |
||||
|
||||
<P> |
||||
<I>multiHandle</I><B> perform</B> |
||||
|
||||
<P> |
||||
<I>multiHandle</I><B> active</B> |
||||
|
||||
<P> |
||||
<I>multiHandle</I><B> getinfo </B> |
||||
|
||||
<P> |
||||
<I>multihandle</I><B> cleanup</B> |
||||
|
||||
<P> |
||||
<I>multihandle</I><B> auto</B> |
||||
|
||||
<P> |
||||
<B>curl::multistrerror </B><I>errorCode</I> |
||||
|
||||
<P> |
||||
<A NAME="lbAD"> </A> |
||||
<H2>DESCRIPTION</H2> |
||||
|
||||
TclCurl's multi interface introduces several new abilities that the easy |
||||
interface refuses to offer. They are mainly: |
||||
<ul> |
||||
<li>Enable a "pull" interface. The application that uses TclCurl decides where |
||||
and when to get/send data.<br><br> |
||||
<li>Enable multiple simultaneous transfers in the same thread without making it |
||||
complicated for the application.<br><br> |
||||
<li>Keep Tk GUIs 'alive' while transfers are taking place.<br><br> |
||||
</ul> |
||||
<P> |
||||
</DL> |
||||
<A NAME="lbAE"> </A> |
||||
<H2>Blocking</H2> |
||||
|
||||
A few areas in the code are still using blocking code, even when used from the |
||||
multi interface. While we certainly want and intend for these to get fixed in |
||||
the future, you should be aware of the following current restrictions: |
||||
<ul> |
||||
<li>Name resolves on non-windows unless c-ares is used.</B> |
||||
|
||||
<li>GnuTLS SSL connections.</B> |
||||
|
||||
<li>Active FTP connections.</B> |
||||
|
||||
<li>HTTP proxy CONNECT operations.</B> |
||||
|
||||
<li>SCP and SFTP connections.</B> |
||||
|
||||
<li>SFTP transfers.</B> |
||||
|
||||
<li>TFTP transfers</B> |
||||
|
||||
<li>file:// transfers.</B> |
||||
</ul> |
||||
|
||||
<P> |
||||
<A NAME="lbAF"> </A> |
||||
<H2>curl::multiinit</H2> |
||||
|
||||
This procedure must be the first one to call, it returns a <I>multiHandle</I> |
||||
that you need to use to invoke TclCurl procedures. The init MUST have a |
||||
corresponding call to <I>cleanup</I> when the operation is completed. |
||||
<P> |
||||
<B>RETURN VALUE</B> |
||||
|
||||
<P> |
||||
<I>multiHandle</I> |
||||
|
||||
to use. |
||||
<P> |
||||
<A NAME="lbAG"> </A> |
||||
<H2>multiHandle addhandle ?easyHandle?</H2> |
||||
|
||||
<P> |
||||
Each single transfer is built up with an 'easy' handle, the kind we have been |
||||
using so far with TclCurl, you must create them and setup the appropriate |
||||
options for each of them. Then we add them to the 'multi stack' using the |
||||
<I>addhandle</I> command. |
||||
<P> |
||||
If the easy handle is not set to use a shared or global DNS cache, it will be made |
||||
to use the DNS cache that is shared between all easy handles within the multi handle. |
||||
<P> |
||||
When an easy handle has been added to a multi stack, you can not and you must not use |
||||
<I>perform</I> on that handle! |
||||
<P> |
||||
<P> |
||||
<I>multiHandle</I> |
||||
|
||||
is the return code from the <I>curl::multiinit</I> call. |
||||
<P> |
||||
<B>RETURN VALUE</B> |
||||
|
||||
The possible return values are: |
||||
<DL COMPACT> |
||||
<DT>-1<DD> |
||||
Handle added to the multi stack, please call |
||||
<I>perform</I> |
||||
|
||||
soon |
||||
<DT>0<DD> |
||||
Handle added ok. |
||||
<DT>1<DD> |
||||
Invalid multi handle. |
||||
<DT>2<DD> |
||||
Invalid 'easy' handle. It could mean that it isn't an easy handle at all, or possibly that |
||||
the handle already is in used by this or another multi handle. |
||||
<DT>3<DD> |
||||
Out of memory, you should never get this. |
||||
<DT>4<DD> |
||||
You found a bug in TclCurl. |
||||
<P> |
||||
</DL> |
||||
<A NAME="lbAH"> </A> |
||||
<H2>multiHandle removehandle ?easyHandle?</H2> |
||||
|
||||
<P> |
||||
When a transfer is done or if we want to stop a transfer before it is completed, |
||||
we can use the <I>removehandle</I> command. Once removed from the multi handle, |
||||
we can again use other easy interface functions on it. |
||||
<P> |
||||
Please note that when a single transfer is completed, the easy handle is still |
||||
left added to the multi stack. You need to remove it and then close or, possibly, |
||||
set new options to it and add it again to the multi handle to start another transfer. |
||||
<P> |
||||
<P> |
||||
<B>RETURN VALUE</B> |
||||
|
||||
The possible return values are: |
||||
<DL COMPACT> |
||||
<DT>0<DD> |
||||
Handle removed ok. |
||||
<DT>1<DD> |
||||
Invalid multi handle. |
||||
<DT>2<DD> |
||||
Invalid 'easy' handle. |
||||
<DT>3<DD> |
||||
Out of memory, you should never get this. |
||||
<DT>4<DD> |
||||
You found a bug in TclCurl. |
||||
<P> |
||||
</DL> |
||||
<A NAME="lbAI"> </A> |
||||
<H2>multiHandle configure</H2> |
||||
|
||||
So far the only option is: |
||||
<DL COMPACT> |
||||
<DT><B>-pipelining</B> |
||||
|
||||
<DD> |
||||
Pass a 1 to enable or 0 to disable. Enabling pipelining on a multi handle will |
||||
make it attempt to perform HTTP Pipelining as far as possible for transfers using |
||||
this handle. This means that if you add a second request that can use an already |
||||
existing connection, the second request will be "piped" on the same connection |
||||
rather than being executed in parallel. |
||||
<DT><B>-maxconnects</B> |
||||
|
||||
<DD> |
||||
Pass a number which will be used as the maximum amount of simultaneously open |
||||
connections that TclCurl may cache. Default is 10, and TclCurl will enlarge |
||||
the size for each added easy handle to make it fit 4 times the number of added |
||||
easy handles. |
||||
<P> |
||||
By setting this option, you can prevent the cache size to grow beyond the limit |
||||
set by you. When the cache is full, curl closes the oldest one in the cache to |
||||
prevent the number of open connections to increase. |
||||
<P> |
||||
This option is for the multi handle's use only, when using the easy interface you should instead use it's own <B>maxconnects</B> option. |
||||
<P> |
||||
</DL> |
||||
<A NAME="lbAJ"> </A> |
||||
<H2>multiHandle perform</H2> |
||||
|
||||
Adding the easy handles to the multi stack does not start any transfer. |
||||
Remember that one of the main ideas with this interface is to let your |
||||
application drive. You drive the transfers by invoking |
||||
<I>perform.</I> |
||||
|
||||
TclCurl will then transfer data if there is anything available to transfer. |
||||
It'll use the callbacks and everything else we have setup in the individual |
||||
easy handles. It'll transfer data on all current transfers in the multi stack |
||||
that are ready to transfer anything. It may be all, it may be none. |
||||
<P> |
||||
When you call <B>perform</B> and the amount of Irunning handles is |
||||
changed from the previous call (or is less than the amount of easy handles |
||||
you added to the multi handle), you know that there is one or more |
||||
transfers less "running". You can then call <I>getinfo</I> to |
||||
get information about each individual completed transfer. |
||||
<P> |
||||
<B>RETURN VALUE</B> |
||||
|
||||
If everything goes well, it returns the number of running handles, '0' if all |
||||
are done. In case of error, it will return the error code. |
||||
<P> |
||||
<A NAME="lbAK"> </A> |
||||
<H2>multiHandle active</H2> |
||||
|
||||
In order to know if any of the easy handles are ready to transfer data before |
||||
invoking |
||||
<I>perform</I> |
||||
|
||||
you can use the |
||||
<I>active</I> |
||||
|
||||
command, it will return the number of transfers currently active. |
||||
<P> |
||||
<B>RETURN VALUE</B> |
||||
|
||||
The number of active transfers or '-1' in case of error. |
||||
<P> |
||||
<A NAME="lbAL"> </A> |
||||
<H2>multiHandle getinfo</H2> |
||||
|
||||
This procedure returns very simple information about the transfers, you |
||||
can get more detail information using the <I>getinfo</I> |
||||
command on each of the easy handles. |
||||
<P> |
||||
<P> |
||||
<B>RETURN VALUE</B> |
||||
|
||||
A list with the following elements: |
||||
<DL COMPACT> |
||||
<DT>easyHandle about which the info is about.<DD> |
||||
<DT>state of the transfer, '1' if it is done.<DD> |
||||
<DT>exit code of the transfer, '0' if there was no error,...<DD> |
||||
<DT>Number of messages still in the info queue.<DD> |
||||
<DT>In case there are no messages in the queue it will return {"" 0 0 0}.<DD> |
||||
<P> |
||||
</DL> |
||||
<A NAME="lbAM"> </A> |
||||
<H2>multiHandle cleanup</H2> |
||||
|
||||
This procedure must be the last one to call for a multi stack, it is the opposite of the |
||||
<I>curl::multiinit</I> |
||||
|
||||
procedure and must be called with the same |
||||
<I>multiHandle</I> |
||||
|
||||
as input as the |
||||
<B>curl::multiinit</B> |
||||
|
||||
call returned. |
||||
<P> |
||||
<A NAME="lbAN"> </A> |
||||
<H2>multiHandle auto ?-command <I>command</I>?</H2> |
||||
|
||||
Using this command Tcl's event loop will take care of periodically invoking <B>perform</B> |
||||
for you, before using it, you must have already added at least one easy handle to |
||||
the multi handle. |
||||
<P> |
||||
The <B>command</B> option allows you to specify a command to invoke after all the easy |
||||
handles have finished their transfers, even though I say it is an option, the truth is |
||||
you must use this command to cleanup all the handles, otherwise the transfered files |
||||
may not be complete. |
||||
<P> |
||||
This support is still in a very experimental state, it may still change without warning. |
||||
Any and all comments are welcome. |
||||
<P> |
||||
You can find a couple of examples at <B>tests/multi</B>. |
||||
<P> |
||||
<A NAME="lbAO"> </A> |
||||
<H2>curl::multistrerror errorCode</H2> |
||||
|
||||
This procedure returns a string describing the error code passed in the argument. |
||||
<P> |
||||
<A NAME="lbAP"> </A> |
||||
<H2>SEE ALSO</H2> |
||||
|
||||
<I>tclcurl, curl.</I> |
||||
|
||||
<P> |
||||
|
||||
<HR> |
||||
<A NAME="index"> </A><H2>Index</H2> |
||||
<DL> |
||||
<DT><A HREF="#lbAB">NAME</A><DD> |
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD> |
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD> |
||||
<DT><A HREF="#lbAE">Blocking</A><DD> |
||||
<DT><A HREF="#lbAF">curl::multiinit</A><DD> |
||||
<DT><A HREF="#lbAG">multiHandle addhandle ?easyHandle?</A><DD> |
||||
<DT><A HREF="#lbAH">multiHandle removehandle ?easyHandle?</A><DD> |
||||
<DT><A HREF="#lbAI">multiHandle configure</A><DD> |
||||
<DT><A HREF="#lbAJ">multiHandle perform</A><DD> |
||||
<DT><A HREF="#lbAK">multiHandle active</A><DD> |
||||
<DT><A HREF="#lbAL">multiHandle getinfo</A><DD> |
||||
<DT><A HREF="#lbAM">multiHandle cleanup</A><DD> |
||||
<DT><A HREF="#lbAN">multiHandle auto ?-command <I>command</I>?</A><DD> |
||||
<DT><A HREF="#lbAO">curl::multistrerror errorCode</A><DD> |
||||
<DT><A HREF="#lbAP">SEE ALSO</A><DD> |
||||
</DL> |
||||
<HR> |
||||
This document was created by man2html, using the manual pages.<BR> |
||||
</BODY> |
||||
</HTML> |
||||
@ -0,0 +1,112 @@
|
||||
<HTML><HEAD><TITLE>Manpage of TclCurl</TITLE> |
||||
</HEAD><BODY> |
||||
<H1>TclCurl</H1> |
||||
Section: TclCurl share data api (3)<BR>Updated: 03 October 2011<BR><HR> |
||||
|
||||
<A NAME="lbAB"> </A> |
||||
<H2>NAME</H2> |
||||
TclCurl: - get a URL with FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE, LDAP, |
||||
LDAPS, IMAP, IMAPS, POP, POP3, SMTP, SMTPS and gopher syntax. |
||||
<A NAME="lbAC"> </A> |
||||
<H2>SYNOPSIS</H2> |
||||
|
||||
<B>curl::shareinit</B> |
||||
|
||||
<P> |
||||
<I>shareHandle</I><B> share </B><I>?data?</I> |
||||
|
||||
<P> |
||||
<I>shareHandle</I><B> unshare </B><I>?data?</I> |
||||
|
||||
<P> |
||||
<I>shareHandle</I><B> cleanup</B> |
||||
|
||||
<P> |
||||
<B>curl::sharestrerror </B><I>errorCode</I> |
||||
|
||||
<P> |
||||
<P> |
||||
<A NAME="lbAD"> </A> |
||||
<H2>DESCRIPTION</H2> |
||||
|
||||
<P> |
||||
With the share API, you can have two or more 'easy' handles sharing data |
||||
among them, so far they can only share cookies and DNS data. |
||||
<P> |
||||
<A NAME="lbAE"> </A> |
||||
<H2>curl::shareinit</H2> |
||||
|
||||
This procedure must be the first one to call, it returns a <B>shareHandle</B> |
||||
that you need to use to share data among handles using the <B>-share</B> option |
||||
to the <B>configure</B> command. The init MUST have a corresponding call to |
||||
<B>cleanup</B> when the operation is completed. |
||||
<P> |
||||
<B>RETURN VALUE</B> |
||||
|
||||
<P> |
||||
<B>shareHandle</B> to use. |
||||
<P> |
||||
<A NAME="lbAF"> </A> |
||||
<H2>shareHandle share ?data?</H2> |
||||
|
||||
<P> |
||||
The parameter specifies a type of data that should be shared. This may be set |
||||
to one of the values described below: |
||||
<P> |
||||
<DL COMPACT><DT><DD> |
||||
<DL COMPACT> |
||||
<DT><B>cookies</B> |
||||
|
||||
<DD> |
||||
Cookie data will be shared across the easy handles using this shared object. |
||||
<P> |
||||
<DT><B>dns</B> |
||||
|
||||
<DD> |
||||
Cached DNS hosts will be shared across the easy handles using this shared object. |
||||
</DL> |
||||
</DL> |
||||
|
||||
<P> |
||||
<A NAME="lbAG"> </A> |
||||
<H2>shareHandle unshare ?data?</H2> |
||||
|
||||
This command does the opposite of <B>share</B>. The specified parameter will no |
||||
longer be shared. Valid values are the same as those for <B>share</B>. |
||||
<P> |
||||
<A NAME="lbAH"> </A> |
||||
<H2>sharehandle cleanup</H2> |
||||
|
||||
<P> |
||||
Deletes a shared object. The share handle cannot be used anymore after this |
||||
function has been called. |
||||
<P> |
||||
<A NAME="lbAI"> </A> |
||||
<H2>curl::sharestrerror errorCode</H2> |
||||
|
||||
Returns a string describing the error code passed in the argument. |
||||
<P> |
||||
<A NAME="lbAJ"> </A> |
||||
<H2>SEE ALSO</H2> |
||||
|
||||
<I>curl, TclCurl</I> |
||||
|
||||
<P> |
||||
|
||||
<HR> |
||||
<A NAME="index"> </A><H2>Index</H2> |
||||
<DL> |
||||
<DT><A HREF="#lbAB">NAME</A><DD> |
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD> |
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD> |
||||
<DT><A HREF="#lbAE">curl::shareinit</A><DD> |
||||
<DT><A HREF="#lbAF">shareHandle share ?data?</A><DD> |
||||
<DT><A HREF="#lbAG">shareHandle unshare ?data?</A><DD> |
||||
<DT><A HREF="#lbAH">sharehandle cleanup</A><DD> |
||||
<DT><A HREF="#lbAI">curl::sharestrerror errorCode</A><DD> |
||||
<DT><A HREF="#lbAJ">SEE ALSO</A><DD> |
||||
</DL> |
||||
<HR> |
||||
This document was created by man2html, using the manual pages.<BR> |
||||
</BODY> |
||||
</HTML> |
||||
@ -0,0 +1,386 @@
|
||||
# |
||||
# Critcl - build C extensions on-the-fly |
||||
# |
||||
# Copyright (c) 2001-2007 Jean-Claude Wippler |
||||
# Copyright (c) 2002-2007 Steve Landers |
||||
# |
||||
# See http://wiki.tcl.tk/critcl |
||||
# |
||||
# This is the Critcl runtime that loads the appropriate |
||||
# shared library when a package is requested |
||||
# |
||||
|
||||
namespace eval ::critcl::runtime {} |
||||
|
||||
proc ::critcl::runtime::loadlib {dir package version libname initfun tsrc mapping args} { |
||||
# XXX At least parts of this can be done by the package generator, |
||||
# XXX like listing the Tcl files to source. The glob here allows |
||||
# XXX code-injection after-the-fact, by simply adding a .tcl in |
||||
# XXX the proper place. |
||||
set path [file join $dir [MapPlatform $mapping]] |
||||
set ext [info sharedlibextension] |
||||
set lib [file join $path $libname$ext] |
||||
set provide [list] |
||||
|
||||
# Now the runtime equivalent of a series of 'preFetch' commands. |
||||
if {[llength $args]} { |
||||
set preload [file join $path preload$ext] |
||||
foreach p $args { |
||||
set prelib [file join $path $p$ext] |
||||
if {[file readable $preload] && [file readable $prelib]} { |
||||
lappend provide [list load $preload];# XXX Move this out of the loop, do only once. |
||||
lappend provide [list ::critcl::runtime::preload $prelib] |
||||
} |
||||
} |
||||
} |
||||
|
||||
lappend provide [list load $lib $initfun] |
||||
foreach t $tsrc { |
||||
lappend loadcmd "::critcl::runtime::Fetch \$dir [list $t]" |
||||
} |
||||
lappend provide "package provide $package $version" |
||||
package ifneeded $package $version [join $provide "\n"] |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::runtime::preFetch {path ext dll} { |
||||
set preload [file join $path preload$ext] |
||||
if {![file readable $preload]} return |
||||
|
||||
set prelib [file join $path $dll$ext] |
||||
if {![file readable $prelib]} return |
||||
|
||||
load $preload ; # Defines next command. |
||||
::critcl::runtime::preload $prelib |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::runtime::Fetch {dir t} { |
||||
# The 'Ignore' disables compile & run functionality. |
||||
|
||||
# Background: If the regular critcl package is already loaded, and |
||||
# this prebuilt package uses its defining .tcl file also as a |
||||
# 'tsources' then critcl might try to collect data and build it |
||||
# because of the calls to its API, despite the necessary binaries |
||||
# already being present, just not in the critcl cache. That is |
||||
# redundant in the best case, and fails in the worst case (no |
||||
# compiler), preventing the use o a perfectly fine package. The |
||||
# 'ignore' call now tells critcl that it should ignore any calls |
||||
# made to it by the sourced files, and thus avoids that trouble. |
||||
|
||||
# The other case, the regular critcl package getting loaded after |
||||
# this prebuilt package is irrelevant. At that point the tsources |
||||
# were already run, and used the dummy procedures defined in the |
||||
# critcl-rt.tcl, which ignore the calls by definition. |
||||
|
||||
set t [file join $dir tcl $t] |
||||
::critcl::Ignore $t |
||||
uplevel #0 [list source $t] |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::runtime::precopy {dll} { |
||||
# This command is only used on Windows when preloading out of a |
||||
# VFS that doesn't support direct loading (usually, a Starkit) |
||||
# - we preserve the dll name so that dependencies are satisfied |
||||
# - The critcl::runtime::preload command is defined in the supporting |
||||
# "preload" package, implemented in "critcl/lib/critcl/critcl_c/preload.c" |
||||
|
||||
global env |
||||
if {[info exists env(TEMP)]} { |
||||
set dir $env(TEMP) |
||||
} elseif {[info exists env(TMP)]} { |
||||
set dir $env(TMP) |
||||
} elseif {[file exists $env(HOME)]} { |
||||
set dir $env(HOME) |
||||
} else { |
||||
set dir . |
||||
} |
||||
set dir [file join $dir TCL[pid]] |
||||
set i 0 |
||||
while {[file exists $dir]} { |
||||
append dir [incr i] |
||||
} |
||||
set new [file join $dir [file tail $dll]] |
||||
file mkdir $dir |
||||
file copy $dll $new |
||||
return $new |
||||
} |
||||
|
||||
proc ::critcl::runtime::MapPlatform {{mapping {}}} { |
||||
# A sibling of critcl::platform that applies the platform mapping |
||||
|
||||
set platform [::platform::generic] |
||||
set version $::tcl_platform(osVersion) |
||||
if {[string match "macosx-*" $platform]} { |
||||
# "normalize" the osVersion to match OSX release numbers |
||||
set v [split $version .] |
||||
set v1 [lindex $v 0] |
||||
set v2 [lindex $v 1] |
||||
incr v1 -4 |
||||
set version 10.$v1.$v2 |
||||
} else { |
||||
# Strip trailing non-version info |
||||
regsub -- {-.*$} $version {} version |
||||
} |
||||
foreach {config map} $mapping { |
||||
if {![string match $config $platform]} continue |
||||
set minver [lindex $map 1] |
||||
if {[package vcompare $version $minver] < 0} continue |
||||
set platform [lindex $map 0] |
||||
break |
||||
} |
||||
return $platform |
||||
} |
||||
|
||||
# Dummy implementation of the critcl package, if not present |
||||
if {![llength [info commands ::critcl::Ignore]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::Ignore {args} { |
||||
namespace eval ::critcl::v {} |
||||
set ::critcl::v::ignore([file normalize [lindex $args 0]]) . |
||||
} |
||||
} |
||||
if {![llength [info commands ::critcl::api]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::api {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::at]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::at {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::cache]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::cache {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::ccode]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::ccode {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::ccommand]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::ccommand {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::cdata]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::cdata {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::cdefines]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::cdefines {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::cflags]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::cflags {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::cheaders]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::cheaders {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::check]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::check {args} {return 0} |
||||
} |
||||
if {![llength [info commands ::critcl::cinit]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::cinit {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::clibraries]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::clibraries {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::compiled]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::compiled {args} {return 1} |
||||
} |
||||
if {![llength [info commands ::critcl::compiling]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::compiling {args} {return 0} |
||||
} |
||||
if {![llength [info commands ::critcl::config]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::config {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::cproc]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::cproc {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::csources]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::csources {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::debug]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::debug {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::done]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::done {args} {return 1} |
||||
} |
||||
if {![llength [info commands ::critcl::failed]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::failed {args} {return 0} |
||||
} |
||||
if {![llength [info commands ::critcl::framework]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::framework {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::include]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::include {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::ldflags]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::ldflags {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::license]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::license {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::load]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::load {args} {return 1} |
||||
} |
||||
if {![llength [info commands ::critcl::make]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::make {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::meta]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::meta {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::platform]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::platform {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::preload]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::preload {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::source]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::source {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::tcl]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::tcl {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::tk]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::tk {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::tsources]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::tsources {args} {} |
||||
} |
||||
if {![llength [info commands ::critcl::userconfig]]} { |
||||
namespace eval ::critcl {} |
||||
proc ::critcl::userconfig {args} {} |
||||
} |
||||
|
||||
# Define a clone of platform::generic, if needed |
||||
if {![llength [info commands ::platform::generic]]} { |
||||
namespace eval ::platform {} |
||||
proc ::platform::generic {} { |
||||
global tcl_platform |
||||
|
||||
set plat [string tolower [lindex $tcl_platform(os) 0]] |
||||
set cpu $tcl_platform(machine) |
||||
|
||||
switch -glob -- $cpu { |
||||
sun4* { |
||||
set cpu sparc |
||||
} |
||||
intel - |
||||
ia32* - |
||||
i*86* { |
||||
set cpu ix86 |
||||
} |
||||
x86_64 { |
||||
if {$tcl_platform(wordSize) == 4} { |
||||
# See Example <1> at the top of this file. |
||||
set cpu ix86 |
||||
} |
||||
} |
||||
ppc - |
||||
"Power*" { |
||||
set cpu powerpc |
||||
} |
||||
"arm*" { |
||||
set cpu arm |
||||
} |
||||
ia64 { |
||||
if {$tcl_platform(wordSize) == 4} { |
||||
append cpu _32 |
||||
} |
||||
} |
||||
} |
||||
|
||||
switch -glob -- $plat { |
||||
windows { |
||||
if {$tcl_platform(platform) eq "unix"} { |
||||
set plat cygwin |
||||
} else { |
||||
set plat win32 |
||||
} |
||||
if {$cpu eq "amd64"} { |
||||
# Do not check wordSize, win32-x64 is an IL32P64 platform. |
||||
set cpu x86_64 |
||||
} |
||||
} |
||||
sunos { |
||||
set plat solaris |
||||
if {[string match "ix86" $cpu]} { |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
set cpu x86_64 |
||||
} |
||||
} elseif {![string match "ia64*" $cpu]} { |
||||
# sparc |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
append cpu 64 |
||||
} |
||||
} |
||||
} |
||||
darwin { |
||||
set major [lindex [split $tcl_platform(osVersion) .] 0] |
||||
if {$major > 19} { |
||||
set plat macos |
||||
} else { |
||||
set plat macosx |
||||
} |
||||
# Correctly identify the cpu when running as a 64bit |
||||
# process on a machine with a 32bit kernel |
||||
if {$cpu eq "ix86"} { |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
set cpu x86_64 |
||||
} |
||||
} |
||||
} |
||||
aix { |
||||
set cpu powerpc |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
append cpu 64 |
||||
} |
||||
} |
||||
hp-ux { |
||||
set plat hpux |
||||
if {![string match "ia64*" $cpu]} { |
||||
set cpu parisc |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
append cpu 64 |
||||
} |
||||
} |
||||
} |
||||
osf1 { |
||||
set plat tru64 |
||||
} |
||||
default { |
||||
set plat [lindex [split $plat _-] 0] |
||||
} |
||||
} |
||||
|
||||
return "${plat}-${cpu}" |
||||
} |
||||
} |
||||
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
if {![package vsatisfies [package provide Tcl] 9.0]} {return} |
||||
package ifneeded ankh 1.1 "[list proc __critcl_load__ {dir} { ; source [file join $dir critcl-rt.tcl] ; set path [file join $dir [::critcl::runtime::MapPlatform]] ; set ext [info sharedlibextension] ; set lib [file join $path "ankh$ext"] ; load $lib Ankh ; ::critcl::runtime::Fetch $dir policy_1.tcl ; package provide ankh 1.1 ; catch {rename __critcl_load__ {}}}] ; [list __critcl_load__ $dir]" |
||||
@ -0,0 +1,47 @@
|
||||
# -*- tcl -*- |
||||
## Ankh - Andreas Kupries Hashes |
||||
## (c) 2021-2024 Andreas Kupries http://wiki.tcl.tk/andreas%20kupries |
||||
|
||||
# Generate the public ensemble structure from the low-level hash commands. |
||||
|
||||
# # ## ### ##### ######## ############# |
||||
|
||||
foreach hash { |
||||
aich |
||||
blake2b blake2s |
||||
btih |
||||
ed2k |
||||
edonr/224 edonr/256 edonr/384 edonr/512 |
||||
gost12/256 gost12/512 |
||||
gost94 |
||||
has160 |
||||
md4 |
||||
md5 |
||||
ripemd160 |
||||
sha1 |
||||
sha2/224 sha2/256 sha2/384 sha2/512 |
||||
sha3/224 sha3/256 sha3/384 sha3/512 |
||||
snefru/128 snefru/256 |
||||
tiger |
||||
tth |
||||
whirlpool |
||||
} { |
||||
namespace eval ::ak::hash [list namespace export $hash] |
||||
# All the aggregated commands are defined as cprocs and cconsts. |
||||
namespace eval ::ak::hash::${hash} { |
||||
namespace export path channel string size references |
||||
namespace ensemble create |
||||
} |
||||
} |
||||
|
||||
namespace eval ::ak::hash { |
||||
namespace export list version |
||||
namespace ensemble create |
||||
} |
||||
namespace eval ::ak { |
||||
namespace export hash |
||||
namespace ensemble create |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# |
||||
return |
||||
@ -0,0 +1,17 @@
|
||||
Package ankh 1.1 |
||||
Meta platform win32-x86_64 |
||||
Meta build::date 2025-12-14 |
||||
Meta generated::by {critcl 3.3.1} ashok |
||||
Meta generated::date critcl |
||||
Meta require critcl::cutil |
||||
Meta license Under a BSD license. |
||||
Meta author {Andreas Kupries} |
||||
Meta summary Commands for using a variety of cryptographically secure |
||||
Meta summary hash functions |
||||
Meta description This package provides a number of commands giving |
||||
Meta description access to a variety of cryptographically secure hash |
||||
Meta description functions, old and new. |
||||
Meta subject hash {cryptographically secure hash} {secure hash} md4 md5 |
||||
Meta subject sha1 sha2 sha3 haval ripemd |
||||
Meta included tcl/policy_1.tcl critcl-rt.tcl win32-x86_64/ankh.dll |
||||
Meta entrytclcommand {eval "[list proc __critcl_load__ {dir} { ; source [file join $dir critcl-rt.tcl] ; set path [file join $dir [::critcl::runtime::MapPlatform]] ; set ext [info sharedlibextension] ; set lib [file join $path "ankh$ext"] ; load $lib Ankh ; ::critcl::runtime::Fetch $dir policy_1.tcl ; package provide ankh 1.1 ; catch {rename __critcl_load__ {}}}] ; [list __critcl_load__ $dir]"} |
||||
Binary file not shown.
@ -1,32 +1,32 @@
|
||||
# |
||||
# Tcl package index file - generated from pkgIndex.tcl.in |
||||
# |
||||
|
||||
package ifneeded cffi 2.0.3 \ |
||||
[list apply [list {dir} { |
||||
package require platform |
||||
set package_ns ::cffi |
||||
set initName [string totitle cffi] |
||||
if {[package vsatisfies [package require Tcl] 9]} { |
||||
set fileName "tcl9cffi203.dll" |
||||
} else { |
||||
set fileName "cffi203.dll" |
||||
} |
||||
set platformId [platform::identify] |
||||
set searchPaths [list [file join $dir $platformId] \ |
||||
{*}[lmap platformId [platform::patterns $platformId] { |
||||
file join $dir $platformId |
||||
}] \ |
||||
$dir] |
||||
foreach path $searchPaths { |
||||
set lib [file join $path $fileName] |
||||
if {[file exists $lib]} { |
||||
uplevel #0 [list load $lib $initName] |
||||
# Load was successful |
||||
set ${package_ns}::dll_path $lib |
||||
set ${package_ns}::package_dir $dir |
||||
return |
||||
} |
||||
} |
||||
error "Could not locate $fileName in directories [join $searchPaths {, }]" |
||||
}] $dir] |
||||
# |
||||
# Tcl package index file - generated from pkgIndex.tcl.in |
||||
# |
||||
|
||||
package ifneeded cffi 2.0.3 \ |
||||
[list apply [list {dir} { |
||||
package require platform |
||||
set package_ns ::cffi |
||||
set initName [string totitle cffi] |
||||
if {[package vsatisfies [package require Tcl] 9]} { |
||||
set fileName "tcl9cffi203.dll" |
||||
} else { |
||||
set fileName "cffi203t.dll" |
||||
} |
||||
set platformId [platform::identify] |
||||
set searchPaths [list [file join $dir $platformId] \ |
||||
{*}[lmap platformId [platform::patterns $platformId] { |
||||
file join $dir $platformId |
||||
}] \ |
||||
$dir] |
||||
foreach path $searchPaths { |
||||
set lib [file join $path $fileName] |
||||
if {[file exists $lib]} { |
||||
uplevel #0 [list load $lib $initName] |
||||
# Load was successful |
||||
set ${package_ns}::dll_path $lib |
||||
set ${package_ns}::package_dir $dir |
||||
return |
||||
} |
||||
} |
||||
error "Could not locate $fileName in directories [join $searchPaths {, }]" |
||||
}] $dir] |
||||
Binary file not shown.
@ -1,67 +0,0 @@
|
||||
# itclConfig.sh -- |
||||
# |
||||
# This shell script (for sh) is generated automatically by Itcl's |
||||
# configure script. It will create shell variables for most of |
||||
# the configuration options discovered by the configure script. |
||||
# This script is intended to be included by the configure scripts |
||||
# for Itcl extensions so that they don't have to figure this all |
||||
# out for themselves. This file does not duplicate information |
||||
# already provided by tclConfig.sh, so you may need to use that |
||||
# file in addition to this one. |
||||
# |
||||
# The information in this file is specific to a single platform. |
||||
|
||||
# Itcl's version number. |
||||
itcl_VERSION='4.3.2' |
||||
ITCL_VERSION='4.3.2' |
||||
|
||||
# The name of the Itcl library (may be either a .a file or a shared library): |
||||
itcl_LIB_FILE=tcl9itcl432.dll |
||||
ITCL_LIB_FILE=tcl9itcl432.dll |
||||
|
||||
# String to pass to linker to pick up the Itcl library from its |
||||
# build directory. |
||||
itcl_BUILD_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2 -litcl432' |
||||
ITCL_BUILD_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2 -litcl432' |
||||
|
||||
# String to pass to linker to pick up the Itcl library from its |
||||
# installed directory. |
||||
itcl_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Install/Tcl/lib/itcl4.3.2 -litcl432' |
||||
ITCL_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Install/Tcl/lib/itcl4.3.2 -litcl432' |
||||
|
||||
# The name of the Itcl stub library (a .a file): |
||||
itcl_STUB_LIB_FILE=libitclstub.a |
||||
ITCL_STUB_LIB_FILE=libitclstub.a |
||||
|
||||
# String to pass to linker to pick up the Itcl stub library from its |
||||
# build directory. |
||||
itcl_BUILD_STUB_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2 -litclstub' |
||||
ITCL_BUILD_STUB_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2 -litclstub' |
||||
|
||||
# String to pass to linker to pick up the Itcl stub library from its |
||||
# installed directory. |
||||
itcl_STUB_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Install/Tcl/lib/itcl4.3.2 -litclstub' |
||||
ITCL_STUB_LIB_SPEC='-LC:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Install/Tcl/lib/itcl4.3.2 -litclstub' |
||||
|
||||
# String to pass to linker to pick up the Itcl stub library from its |
||||
# build directory. |
||||
itcl_BUILD_STUB_LIB_PATH='C:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2/libitclstub.a' |
||||
ITCL_BUILD_STUB_LIB_PATH='C:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2/libitclstub.a' |
||||
|
||||
# String to pass to linker to pick up the Itcl stub library from its |
||||
# installed directory. |
||||
itcl_STUB_LIB_PATH='C:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Install/Tcl/lib/itcl4.3.2/libitclstub.a' |
||||
ITCL_STUB_LIB_PATH='C:/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Install/Tcl/lib/itcl4.3.2/libitclstub.a' |
||||
|
||||
# Location of the top-level source directories from which [incr Tcl] |
||||
# was built. This is the directory that contains generic, unix, etc. |
||||
# If [incr Tcl] was compiled in a different place than the directory |
||||
# containing the source files, this points to the location of the sources, |
||||
# not the location where [incr Tcl] was compiled. |
||||
itcl_SRC_DIR='/c/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2' |
||||
ITCL_SRC_DIR='/c/BawtBuilds/TclDistribution/TclDistribution-9.0.1-9.0.1/Windows/x64/Release/Build/Tcl/pkgs/itcl4.3.2' |
||||
|
||||
# String to pass to the compiler so that an extension can |
||||
# find installed Itcl headers. |
||||
itcl_INCLUDE_SPEC='' |
||||
ITCL_INCLUDE_SPEC='' |
||||
Binary file not shown.
@ -1,14 +0,0 @@
|
||||
# -*- tcl -*- |
||||
# Tcl package index file, version 1.1 |
||||
# |
||||
|
||||
if {![package vsatisfies [package provide Tcl] 8.6-]} {return} |
||||
|
||||
if {[package vsatisfies [package provide Tcl] 9.0-]} { |
||||
package ifneeded itcl 4.3.2 \ |
||||
[list load [file join $dir tcl9itcl432.dll] Itcl] |
||||
} else { |
||||
package ifneeded itcl 4.3.2 \ |
||||
[list load [file join $dir itcl432.dll] Itcl] |
||||
} |
||||
package ifneeded Itcl 4.3.2 [list package require -exact itcl 4.3.2] |
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
# -*- tcl -*- |
||||
# Tcl package index file, version 1.1 |
||||
# |
||||
|
||||
if {![package vsatisfies [package provide Tcl] 8.6-]} {return} |
||||
|
||||
if {[package vsatisfies [package provide Tcl] 9.0-]} { |
||||
package ifneeded itcl 4.3.5 \ |
||||
[list load [file join $dir tcl9itcl435.dll] Itcl] |
||||
} else { |
||||
package ifneeded itcl 4.3.5 \ |
||||
[list load [file join $dir itcl435.dll] Itcl] |
||||
} |
||||
package ifneeded Itcl 4.3.5 [list package require -exact itcl 4.3.5] |
||||
Binary file not shown.
@ -0,0 +1,26 @@
|
||||
# this is a program for testing the stubs interface ItclCreateObject. |
||||
# it uses itclTestRegisterC.c with the call C function functionality, |
||||
# so it also tests that feature. |
||||
# you need to define in Makefile CFLAGS: -DITCL_DEBUG_C_INTERFACE |
||||
# for makeing that work. |
||||
package require itcl |
||||
|
||||
::itcl::class ::c1 { |
||||
public method c0 {args} @cArgFunc |
||||
public method m1 { args } { puts "Hello Tcl $args" } |
||||
} |
||||
|
||||
set obj1 [::c1 #auto ] |
||||
$obj1 m1 World |
||||
|
||||
# C method cargFunc implements a call to Itcl_CreateObject! |
||||
# |
||||
# args for method c0 of class ::c1 |
||||
# arg1 does not matter |
||||
# arg2 is the class name |
||||
# arg3 is the full class name (full path name) |
||||
# arg4 is the object name of the created Itcl object |
||||
set obj2 [$obj1 c0 ::itcl::parser::handleClass ::c1 ::c1 ::c1::c11] |
||||
# test, if it is working! |
||||
$obj2 m1 Folks |
||||
|
||||
@ -0,0 +1,5 @@
|
||||
if {[package vsatisfies [package provide Tcl] 9.0-]} { |
||||
package ifneeded sqlite3 3.51.0 [list load [file join $dir tcl9sqlite3510.dll] [string totitle sqlite3]] |
||||
} else { |
||||
package ifneeded sqlite3 3.51.0 [list load [file join $dir sqlite3510t.dll] [string totitle sqlite3]] |
||||
} |
||||
@ -0,0 +1,15 @@
|
||||
.TH sqlite3 n 4.1 "Tcl-Extensions" |
||||
.HS sqlite3 tcl |
||||
.BS |
||||
.SH NAME |
||||
sqlite3 \- an interface to the SQLite3 database engine |
||||
.SH SYNOPSIS |
||||
\fBsqlite3\fI command_name ?filename?\fR |
||||
.br |
||||
.SH DESCRIPTION |
||||
SQLite3 is a self-contains, zero-configuration, transactional SQL database |
||||
engine. This extension provides an easy to use interface for accessing |
||||
SQLite database files from Tcl. |
||||
.PP |
||||
For full documentation see \fIhttp://www.sqlite.org/\fR and |
||||
in particular \fIhttp://www.sqlite.org/tclsqlite.html\fR. |
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue