head	1.6;
access;
symbols
	tcllib-1-13:1.6
	tcllib-1-12:1.6
	tklib-0-5:1.6
	tcllib-1-11-1:1.6
	tcllib-1-11:1.6
	tcllib-1-10:1.6
	tcllib-1-9:1.6
	tcllib-1-8:1.6
	tcllib-1-7:1.6
	tcllib-1-6-1:1.6
	tcllib-1-6-branch:1.6.0.6
	tcllib-1-6:1.6
	tcllib-1-4-0:1.6
	tcllib-1-3-0:1.6
	tcllib-1-2-0:1.6.0.4
	RELEASES:1.6.0.2
	tcllib-1-1-0:1.5
	tcllib-1-0-0:1.5
	tclpro-1-5-0:1.5
	tcllib-0-8-0:1.5
	ajuba-ajuba3-3-0-beta-base:1.4
	tclpro-1-4-1:1.3
	tcllib-0-6-1:1.3
	tclpro-1-4-0:1.2
	ajuba-ajuba2-2-1-base:1.1
	tcllib-0-5:1.1
	ajuba-ajuba2-2-0:1.1;
locks; strict;
comment	@# @;


1.6
date	2002.01.18.20.51.16;	author andreas_kupries;	state Exp;
branches;
next	1.5;

1.5
date	2000.10.02.02.23.44;	author kuchler;	state Exp;
branches;
next	1.4;

1.4
date	2000.09.04.06.20.02;	author steve;	state Exp;
branches;
next	1.3;

1.3
date	2000.08.16.22.02.43;	author kuchler;	state Exp;
branches;
next	1.2;

1.2
date	2000.07.09.20.13.34;	author kuchler;	state Exp;
branches;
next	1.1;

1.1
date	2000.06.02.18.24.13;	author ericm;	state Exp;
branches;
next	;


desc
@@


1.6
log
@
	* Bumped version to 1.2, new release. Summary of changes here. See
	  the individual Changelogs to see the detailed changes in each
	  module.

	  New modules: calendar, crc, doctools, irc, smtpd, and stooop.

	  calendar:	Version is	0.1
	  crc:		Version is	1.0
	  doctools:	Version is	1.0
	  irc:		Version is	0.1
	  smtpd:	Version is	1.0
	  stooop:	Version is	4.3

	  Changed modules: base64, comm, control, csv, fileutil, ftp,
	  html, math, mime, ncgi, nntp, pop3, struct, textutil, and uri.

	  base64:	Version stays @@	2.2, but got new subpackage.
	  comm:		Version up to	3.7.1
	  control:	Version up to	0.2
	  csv:		Version up to	0.2
	  fileutil:	Version up to	1.3
	  ftp:		Version up to	2.3
	  html:		Version up to	1.2
	  math:		Version up to	1.2
	  mime:		Version up to	1.3.1
	  ncgi:		Version up to	1.2.1
	  nntp:		Version up to	0.2
	  pop3:		Version up to	1.5.1
	  struct:	Version up to	1.2
	  textutil:	Version up to	0.4
	  uri:		Version up to	1.1
@
text
@=========================
ftp 2.3 (08/16/2000)
=========================

files:

	README                - this file
	ChangeLog             - change log

	ftp.tcl               - ftp library package
	ftpdemo.tcl           - ftp test program
        pkgIndex.tcl          - package index file for ftp package

        example/README        - Overview of the example scripts
	example/hpupdate.tcl  - ftp example "homepage update"
	example/mirror.tcl    - ftp example "directoy mirror"
	example/newer.tcl     - ftp example "software update"
	
	docs/*html            - HTML manual pages

1. Introduction
===============

In order to speed up the update of homepage files on the ftp server of
my ISP, in spring of 1996 I looked for a useful solution. In those days 
I worked with Linux and used the Linux inside ftp tool.
As fan of Tcl/Tk 'expect' was my next choice. It is excelently
suitabled to control interactive processes like ftp sessions. 
A little bit more Tcl/Tk source and hpupdate 0.1 was ready, a script
for the automatical update of homepage files without subdirectories.

In the beginning of 1997 I was intense employed with RFC 959.
Simultaneous I played with the Tcl socket command. Thus the 
FTP library for Tcl was developed...


2. Overview
===============

The FTP Library Package extends tcl/tk with commands to support the 
FTP protocol. The library package is 100% tcl code, no extensions, no
C stuff. It is easily to include in programs with 

             package require ftp 2.2

Now everybody can write an own ftp program with an own GUI. It works
with Windows, UNIX, and also, but not tested on Mac. The ftp package
makes it comfortable and quick to create small tcl scripts for downloading
files or directory trees. The ftp::Open command creates a session handle for
each connection, and that handle is then used as the first argument to the
rest of the commands.

  Supports the following commands:

      ftp::Open <server> <user> <passwd>
      ftp::Close <handle>
      ftp::Cd <handle> <directory>
      ftp::Pwd <handle>
      ftp::Type <handle> <?ascii|binary|tenex?>        
      ftp::List <handle> <?directory?>
      ftp::NList <handle> <?directory?>
      ftp::FileSize <handle> <file>
      ftp::ModTime <handle> <file>
      ftp::Delete <handle> <file>
      ftp::Rename <handle> <from> <to>
      ftp::Put <handle> <(local | -data "data")> <?remote?>
      ftp::Append <handle> <(local | -data "data")> <?remote?>
      ftp::Get <handle> <remote> <?(local | -variable varname)?>
      ftp::Reget <handle> <remote> <?local?>
      ftp::Newer <handle> <remote> <?local?>
      ftp::MkDir <handle> <directory>
      ftp::RmDir <handle> <directory>
      ftp::Quote <handle> <arg1> <arg2> ...
      
This new Releases use the new "fcopy" command to transfer binary data 
between two channels. There is also a version 0.4 of ftp for
tcl7.6/tk4.2, which works stable using the undocumented command 
"unsupported0" for binary data transfer.


@


1.5
log
@* ftp.tcl: Moved the call to 'DisplayMsg' from inside of the
  fileevent loop (in ftp::StateHandler) to WaitorTimeout.  Now
  errors that occur in StateHandler won't be thrown until after the
  the asynchronous (fileevent) portion of the code has completed.
  ftp::OpenActiveConn and ftp::OpenPassiveConn can both still generate
  errors in the event loop, which will cause a bgerror to be thrown.
  Added some (untested) code to support Tenex mode ftp transfers.  So
  far tenex mode sends across 'TYPE L', and then does the transfer with
  a binary encoded channel. Since I don't have a tenex system to test
  it with, this feature is very alpha at this point.
@
text
@d2 1
a2 1
ftp 2.2 (08/16/2000)
@


1.4
log
@Added asynchronous operation to FTP module.
@
text
@d59 1
a59 1
      ftp::Type <handle> <?ascii|binary?>        
d75 1
a75 1
This new Releases uses the new "fcopy" command to transfer binary data 
@


1.3
log
@* README
* ftp.tcl
* pkgIndex.tcl
* docs/*.html: Added new optional arguments to the Get, Put, and
 Append commands.  The Append and Put commands have a new optional
 argument '-data "data"' that can be used to specify data to transfer
 instead of transferring data from a local file.  The Get command has
 a new optional argument '-variable varname' that specifies a variable
 to store the retrieved data into, that can be used instead of
 specifying a local filename.  Updated the documentation to reflect
 the changes and bumped the version number from 2.0 to 2.1 because
 new features were added.
@
text
@d2 1
a2 1
ftp 2.1 (08/16/2000)
d44 1
a44 1
             package require ftp 2.1
@


1.2
log
@ Updated for the change of ftp_lib.tcl -> ftp.tcl, for
 the change of ftp_demo.tcl to ftpdemo.tcl, and for the FTP namespace
 change.  Made lots of fixes to complete the partially done work to
 make ftp handle multiple concurrent ftps at the same time. Updated the
 version in the docs, examples, source, and pkgIndex to be version 2.0
 and updated the docs, examples, and tests to work with the new/latest
 version.
@
text
@d2 1
a2 1
ftp 2.0 (07/09/2000)
d44 1
a44 1
             package require ftp 2.0
d66 3
a68 3
      ftp::Put <handle> <local> <?remote?>
      ftp::Append <handle> <local> <?remote?>
      ftp::Get <handle> <remote> <?local?>
@


1.1
log
@ftp lib module from Steffen Traeger.
@
text
@d2 1
a2 1
ftp_lib 1.2 (04/21/99)
d8 1
a8 1
	CHANGES               - change log
d10 8
a17 5
	ftp.tcl           - FTP library package
	ftpdemo.tcl           - ftp_lib test program

	example/mirror.tcl    - ftp_lib example "directoy mirror"
	example/newer.tcl     - ftp_lib example "software update"
d24 1
a24 1
In order to speed up the update of homepage files on the FTP server of
d26 1
a26 1
I worked with Linux and used the Linux inside FTP tool.
d28 1
a28 1
suitabled to control interactive processes like FTP sessions. 
d44 1
a44 1
             package require FTP 1.2
d46 2
a47 2
Now everybody can write an own FTP program with an own GUI. It works
with Windows, UNIX, and also, but not tested on Mac. The ftp_lib
d49 3
a51 1
files or directory trees.
d55 19
a73 19
      FTP::Open <server> <user> <passwd>
      FTP::Close
      FTP::Cd <directory>
      FTP::Pwd
      FTP::Type <?ascii|binary?>        
      FTP::List <?directory?>
      FTP::NList <?directory?>
      FTP::FileSize <file>
      FTP::ModTime <file>
      FTP::Delete <file>
      FTP::Rename <from> <to>
      FTP::Put <local> <?remote?>
      FTP::Append <local> <?remote?>
      FTP::Get <remote> <?local?>
      FTP::Reget <remote> <?local?>
      FTP::Newer <remote> <?local?>
      FTP::MkDir <directory>
      FTP::RmDir <directory>
      FTP::Quote <arg1> <arg2> ...
d76 1
a76 1
between two channels. There is also a version 0.4 of ftp_lib for
@

