Home » Archimedes archive » Acorn User » AU 1995-05.adf » !Internet_StarterPak » !TCPIP/TCPIP_Doc/Notes/FTPClient

!TCPIP/TCPIP_Doc/Notes/FTPClient

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1995-05.adf » !Internet_StarterPak
Filename: !TCPIP/TCPIP_Doc/Notes/FTPClient
Read OK:
File size: 3DFC bytes
Load address: 0000
Exec address: 0000
File contents
New facilities in FTP Client
============================

The FTP client in !TCPIP has undergone the first stage of improvements
aimed at sorted out UNIX -> RISC OS path convertion problems, and making
it a bit more automated.

These include:

  The addition of a highly configurable path name processor.
  The addition of a batch ftp facilty.
  The addition of an "mget" command.
  The addition of a "reget" command.
  The addition of a "quote" command.
  The addition of {ftp_data} and {ftp_list} variables.


Pathname Processor
------------------

The path handling is the main area of improvement, and now allows UNIX
style paths to be parsed for file type extraction from one or more file
name extensions and is able to work out appropriate processing based
upon the extensions present or elements in the basic file name.

On the basis of the file name and/or extensions, the ftp client can now
work out what file type to give the file, which directory to store it in
and whether to keep unconverted extensions, whether to keep directory
elements from the original remote path etc.

When there is more than one extension, it is able to sensible use one
extension to determine the file's type and another extension, or the
file's name, to determine in which directory the file should be placed.

These conversions are done according to a set of rules given in a new
!TCPIP resource file. (!TCPIPUser.PathEnt).

When downloading groups of files, for example, the entired contents of a
directory and subdirectories containing C source files, there are often
files which might end up being placed in a different directory to the
rest as a consequence of name/extension base placing. As this can be
undesirable, it is posible to switch off the fully automatic processing,
and force preset processing according to the type of download your are
doing. This is most useful when using the new batch facility.

Finally, just in case there are any problems that I have missed, the old
original path name handling is still available in a rather more useable
and improved form.

Whatever path processing options are in use, directories are
automatically created. The lack of this was one of the most annoying
problems with previous versions of the FTP client. Also filenames are no
longer actively truncated, allowing advantage to be taken of such
utilities as !LongFiles. With appropriate Risc OS configuration, overly
long filenames will still be truncated, but by Risc OS rather than the
FTP client.


PathEnt file
------------

The !TCPIPUser.PathEnt consist of a series of either options lines, or
name matching lines. When trying to match a name or extensions, three
types of matching are carried out. These are:

  1.  Match the file name to determine where to put the file.
  2.  Match an extension to determine where to put the file.
  3.  Match an extension to determine a file type.

The first match in each of the above categories is the one used. How
this effects the layout of the PathEnt file will become clear.

Each options line starts with a "$" character and is followed by
required options on the same line, each separated by a space.

There are three types of options line as follows:

$root <pathname>
"$root <FTP$Dir>"

This must be present, once only. The given pathname set the root
directory in which files are to be placed. Normally, this is set to
"<FTP$Dir>" which in turn is set to "!TCPIPUser.Downloads".

$default [<option>...]
Example: "$default nocase nfsext truncdir keepext in Misc type &fff"

This line must be present, once only. It sets the default path
processing options this are modified by options given later, or applied
directly to any paths that are not otherwise matched.

$ [<option>...]
Example: "$ rev1ext in Source"

This line contains options that are to be applied to subsequent
extension/filename decoding lines. Any options given are applied in
addition to those given in the default options line.

Lines starting with a "#" character, or blank lines are ignored.

Lines starting with a "." describe extensions matching. Other lines
describe filename matching.

Extension and file name matching lines are as follows:

<name>/.<ext>[|<name>/.<ext>...] <file type> [<options>]
Examples: ".c|.cpp|.c++|.h|.[1-8]|.s|.y|.l &fff"
          "rfc* &fff in RFCs"

"/" in the above is used to represent "or" in the syntax rather than the
usual "|" as "|" is literally used to separate extensions in a list.
There must be no spaces in the extensions part.

The use of wildcards is allowed in the name and extension as follows:

  "*"     matches any string of 0 or more characters.
  "?"     matches any single character.
  "[...]" matches a range of characters, for eg, [0-9] matches 0, 1, 2,
          3 ... 9.

The file type is a valid RISC OS file type, for example, "Text" "fff",
"&fff" etc.

Addition extension specific options may also be given by including the
option after the file type.


Options:

  nocase	Treat upper and lower case alike in matching

  keepext	Keep extensions as file/ext1/ext2 etc

  noext		Remove all extensions

  revext	Reverse extensions so that dir/file.a.b becomes
		dir.b.a.file

  rev1ext	Reverse 1st extension only, so that app/file.c.gz
		becomes app.c.file/gz

  nopath	Strip path prefix for remote name so.

  in <dir>      Places file in directory <dir>. Unless <dir> is a full
                path name, <dir> is assumed to be a sub-directory of the
                specified root directory.

  type <type>   Set the default type to be applied in the absence of any
                other information.

  nfsext        Enables the handling of Acorn NFS style ,xxx hex extensions.


Any option prefixed with "!" is switched off rather than on.

When a type is matched, the corresponding extension is allways removed.


An Example File


# Set the location of the downloads directory.

$root <FTP$Dir>


# Set default options as follows:
# case-insensitive matching, handling of NFS extensions, keep
# extensions as file/ext/ext unless told not to,
# place unmatched file in "<FTP$Dir>.Misc"
# set their type to Text (&fff)

$default nocase nfsext keepext in Misc type &fff


# These option are applied to the following type matches until
# another options lines is encountered. These options are applied in
# addition to those given on the defaults line above.
#
# Ensure directory elements in original remote path name are stripped.
# Ensure extensions are stripped, leaving just the filename.
# Place matched files in directory "<FTP$Dir>.Docs"
$ nopath noext in Docs
.txt         &fff
.doc         &fff
.asc         &fff
.ps          &ff5


# A new set of options to be applied. This completely replaces those
# given in the previous options line, and is applied to the following
# match lines.
#
# Basically as above, but put files in "<FTP$Dir>.Archives"

$ nopath noext in Archives
.arc         &ddc
.archive     &ddc
.spark       &ddc
.spk         &ddc
.tar.gz      &ddc
.tar.z       &ddc
.tar         &ddc
.gz          &ddc
.z           &ddc
.zip         &ddc


# A new set of options for Image files
# The files end of in "<FTP$Dir>.Archives"

$ nopath noext in Images
.jpeg|.jpg   &c85
.gif         &695
.tiff|.tif   &ff0


# A more complicate extensions set for dealing with source file downloads.
#
# this matches .c, .c++, .cpp, .h, .1, .2, .3, .4, .5, .6, .7, .8,
# .s, .y, and .l.
#
# The first extension and file name are swapped round so that you
# get c.*, h.* files.
#
# Also, as these options *replace* previous ones, directory elements in
# the original path name are retained. So applic/source.c becomes
# applic.c.source.

$ rev1ext in Source
.c|.cpp|.c++|.h|.[1-8]|.s|.y|.l &fff


# Any files with "rfc" at the start of the name are placed in
# "<FTP$Dir>.RFCs". Any files with "draft-" at the start of the name are
# placed in "<FTP$Dir>.IENs". Also path elements and extension are
# stripped.
#
# Note, that the following two match lines don't have a "." prefix, so
# they match the name rather than the extension. Also note the use of
# options in the match lines.

$ nopath noext
rfc*         &fff in RFCs
draft-*      &fff in IENs


Hopefully this commented example will now enable you to create you own
additional entries to suite your exact needs.


Path Command
------------

Syntax: path off | auto | type | <option> [<option>...]

"path" on its own tells you what state the path processor is in.
Separate state is maintained for each active FTP client session.

"path off"  switches the path processor off, result in the use of the old
path handling.

"path auto" switches the path processor on and causes it to use
information given in the "PathEnt" file as described above.

"path type" switches the type decoding only on and causes it to use
information given in the "PathEnt" file as described above.

"path ros"  causes the path processor to precisely mirror the name
conversions applied by the unix mode in !TCPIP's FTP server. This mode
is most useful when connected to a !TCPIP v2.02 FTP server and want to
use "mget" to transfer complete directory hierarchies intact.

"path <option> [<option>...]" presets a set of options independantly of
the PathEnt file to be applied to subsequence "get" operations.

The option given are exactly as per a PathEnt file options line, but you
dont need to prefix with the "$" and in fact you must not.

Example as used when fetching a the entire contents of a C sourrce
directory:

path nocase rev1ext in <FTP$Dir>.Source type Text

(See "batch" command for a real in-context example)

Notes:

The "in <dir>" option has a full name specified as the given directory
in this case is not treated as a subdirectory of a specified root
directory.

The path processor, when active, will allways be able to decode RISC OS
filetype name extensions as appended by !TCPIP's FTP server in unix
mode. 

However, in order to ensure paths are kept exactly as on the server, use
the "path ros" command.



Batch FTP
---------

* Note to demon users: this is not to be confused with the Batch FTP
service that demon offer. This is something rather different, though the
batch ftp facility as provided by this client can be *very* usefully
used for fetching files from your private batch directory on demon.

Batch FTP is a very simple facility to allow an unlimited length list of
any FTP session commands (exept of course the batch command) to be place
in a file which is read with each command being executed upon completion
of the previous one.

In !TCPIP v2.0f onwards, dialogue scripts appended to an ftp or terminal
command could be used to partially achieve the effect of batch ftp, but
creating such scripts was rather fiddly for such a common operation.

Now that batch ftp is available properly, you can usefully use dialogues
appende to ftp commands to start off a batch operation. (See end for
details.)

Synyax: source <filename>

Either a full pathname may be given, (for eg, adfs::4.$...) or a
filename may be given. In the case of a filename, various places are
searched when looking for the specified file as follows:

!TCPIPUser.Scripts
!TCPIPUser
!TCPIPUser.^
$ on current drive
@ (the cirrect directory)

If it cant be found, then obviously an error is given.

A batch is simply a file containing a sequence of valid in-session FTP
commands, on per line, exept of course the "batch" command itself. Upon
completion of each command, the next command is read and executed until
the end of the file.

You will notice that the commands appear in the FTP session window in
the bold atrribute colour as they are being executed. Also the FTP
prompt changes to "batch> " while a batch file is being processed.

A batch file can be aborted in the same manner as a get command, by
entering "abort". This will terminate the tranfer in progress and close
the batch file.

An example:

# Set required path options
path nocase rev1ext in <FTP$Dir>.Source type Text

# Set required remote directory
cd /pub/NetBSD/NetBSD-current/src/gnu

# get each file, letting the path processor take care of the
# details.
get tar/Makefile
get tar/Makefile.gnu
get tar/README
get tar/buffer.c
get tar/create.c
get tar/diffarch.c
get tar/extract.c
get tar/fnmatch.c
get tar/fnmatch.h
get tar/getdate.y
get tar/getoldopt.c
get tar/getopt.c
get tar/getopt.h


To get the best out of batch ftp, it is advisable to get directory
listings of directories of interest from FTP sites of interest using the
"dir . <local file name>" command, and then to edit this listing using
the macro facilities in !Zap to create a list batch file containing the
required path, cd and get commands off-line. Next time you connect, FTP
to the site(s) and enter the batch command.

Also is possible to get the FTP session and batch request fully
automated by using a ftp connect dialogue similar to the following:

ftp ftp.{domain} \ @DemonFTP YE100 YV24 \ 
"name: " "anonymous\r\n" "assword: " "{ftpuser}@{host}\r\n" 
"ftp> " "bin\r\n" "ftp> " "hash 1\r\n"
"ftp> " "source batchfile\r\n" "ftp> " "quit\r\n"

(Line is artificially broken for legibility)

and including this command at the end of the auto exec for a completly
un-attended ftp session.

Naturally, a number of similar commands can be included for multiple
similtaneous automatated ftp seesions.

Note that the "quit" comman is placed in the dialoque rather than the
batch file so that if the batch file fails for any reason, the quit
command will still get executed, allowing the tcp hangup timer to
continue to trigger a shutdown and exit.


MGET command
------------

This, like "get" is used for retreive files from an FTP server. Unlike
"get", "mget" can be given a short list of wildcarded names that are
each expanded into a file list, with each file in the resulting list
being fetched via "get".

Syxtax: mget <listspec> [<listspec>...]

Its operation is equivelent to entering ls <listspec> for each
<listspec>, and then doing an "get <file>" for each filename returned,
and in fact this is exactly what it does on your behalf, as you will see
from the information display during an mget operation.

For example, to fetch the entire contents of two directories on a server
"dira" and "dirb", you could use "mget dira dirb". To fetch the contents
of current directory, and immediate subdirectories, use "mget *".

Another way of using "mget" is to type ls at the "ftp> " prompt, and
then select some files from the resulting listing (upto around 50 or so)
and then apply the preset macro menu "Get file(s)".

Before using "mget", it is worth ensuring that suitable path processing
options are setup with the "path" command.


QUOTE command
-------------

This allows a command to be sent directly to an FTP server, bypassing
the normal client pre-processing of commands.

Syntax: quote <command> [<local file for listing>]

This is most useful for things like server secific variations of "ls"
that are handled like the unix "ls" command, for example:

quote "ls -C" listfile

sends "ls -C" to the server, and directs output to the local file
"listfile".

Note: as the command to be sent to the server will often need to contain
spaces, your will often have to enclose the command in quotes as above.

<listfile> should only be specified in situtations where output is
expected via a data connection.


REGET command
-------------

This command allows a get operation to be continued after a previous get
operation that was terminated early for some reason, for eg because your
internet connection was broken.

Syntax: reget <remote file> [<local file>]


WINOPEN and WINCLOSE
--------------------

These enable the FTP session windows to be opened and closed.

Syntax: winopen
        winclose

The main use of this is in FTP command files that may be triggered by an
automated FTP session initiated from another wimp application, in
particular, a FTP fetcher for WWW would use this.
00000000  4e 65 77 20 66 61 63 69  6c 69 74 69 65 73 20 69  |New facilities i|
00000010  6e 20 46 54 50 20 43 6c  69 65 6e 74 0a 3d 3d 3d  |n FTP Client.===|
00000020  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000030  3d 3d 3d 3d 3d 3d 3d 3d  3d 0a 0a 54 68 65 20 46  |=========..The F|
00000040  54 50 20 63 6c 69 65 6e  74 20 69 6e 20 21 54 43  |TP client in !TC|
00000050  50 49 50 20 68 61 73 20  75 6e 64 65 72 67 6f 6e  |PIP has undergon|
00000060  65 20 74 68 65 20 66 69  72 73 74 20 73 74 61 67  |e the first stag|
00000070  65 20 6f 66 20 69 6d 70  72 6f 76 65 6d 65 6e 74  |e of improvement|
00000080  73 0a 61 69 6d 65 64 20  61 74 20 73 6f 72 74 65  |s.aimed at sorte|
00000090  64 20 6f 75 74 20 55 4e  49 58 20 2d 3e 20 52 49  |d out UNIX -> RI|
000000a0  53 43 20 4f 53 20 70 61  74 68 20 63 6f 6e 76 65  |SC OS path conve|
000000b0  72 74 69 6f 6e 20 70 72  6f 62 6c 65 6d 73 2c 20  |rtion problems, |
000000c0  61 6e 64 20 6d 61 6b 69  6e 67 0a 69 74 20 61 20  |and making.it a |
000000d0  62 69 74 20 6d 6f 72 65  20 61 75 74 6f 6d 61 74  |bit more automat|
000000e0  65 64 2e 0a 0a 54 68 65  73 65 20 69 6e 63 6c 75  |ed...These inclu|
000000f0  64 65 3a 0a 0a 20 20 54  68 65 20 61 64 64 69 74  |de:..  The addit|
00000100  69 6f 6e 20 6f 66 20 61  20 68 69 67 68 6c 79 20  |ion of a highly |
00000110  63 6f 6e 66 69 67 75 72  61 62 6c 65 20 70 61 74  |configurable pat|
00000120  68 20 6e 61 6d 65 20 70  72 6f 63 65 73 73 6f 72  |h name processor|
00000130  2e 0a 20 20 54 68 65 20  61 64 64 69 74 69 6f 6e  |..  The addition|
00000140  20 6f 66 20 61 20 62 61  74 63 68 20 66 74 70 20  | of a batch ftp |
00000150  66 61 63 69 6c 74 79 2e  0a 20 20 54 68 65 20 61  |facilty..  The a|
00000160  64 64 69 74 69 6f 6e 20  6f 66 20 61 6e 20 22 6d  |ddition of an "m|
00000170  67 65 74 22 20 63 6f 6d  6d 61 6e 64 2e 0a 20 20  |get" command..  |
00000180  54 68 65 20 61 64 64 69  74 69 6f 6e 20 6f 66 20  |The addition of |
00000190  61 20 22 72 65 67 65 74  22 20 63 6f 6d 6d 61 6e  |a "reget" comman|
000001a0  64 2e 0a 20 20 54 68 65  20 61 64 64 69 74 69 6f  |d..  The additio|
000001b0  6e 20 6f 66 20 61 20 22  71 75 6f 74 65 22 20 63  |n of a "quote" c|
000001c0  6f 6d 6d 61 6e 64 2e 0a  20 20 54 68 65 20 61 64  |ommand..  The ad|
000001d0  64 69 74 69 6f 6e 20 6f  66 20 7b 66 74 70 5f 64  |dition of {ftp_d|
000001e0  61 74 61 7d 20 61 6e 64  20 7b 66 74 70 5f 6c 69  |ata} and {ftp_li|
000001f0  73 74 7d 20 76 61 72 69  61 62 6c 65 73 2e 0a 0a  |st} variables...|
00000200  0a 50 61 74 68 6e 61 6d  65 20 50 72 6f 63 65 73  |.Pathname Proces|
00000210  73 6f 72 0a 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |sor.------------|
00000220  2d 2d 2d 2d 2d 2d 0a 0a  54 68 65 20 70 61 74 68  |------..The path|
00000230  20 68 61 6e 64 6c 69 6e  67 20 69 73 20 74 68 65  | handling is the|
00000240  20 6d 61 69 6e 20 61 72  65 61 20 6f 66 20 69 6d  | main area of im|
00000250  70 72 6f 76 65 6d 65 6e  74 2c 20 61 6e 64 20 6e  |provement, and n|
00000260  6f 77 20 61 6c 6c 6f 77  73 20 55 4e 49 58 0a 73  |ow allows UNIX.s|
00000270  74 79 6c 65 20 70 61 74  68 73 20 74 6f 20 62 65  |tyle paths to be|
00000280  20 70 61 72 73 65 64 20  66 6f 72 20 66 69 6c 65  | parsed for file|
00000290  20 74 79 70 65 20 65 78  74 72 61 63 74 69 6f 6e  | type extraction|
000002a0  20 66 72 6f 6d 20 6f 6e  65 20 6f 72 20 6d 6f 72  | from one or mor|
000002b0  65 20 66 69 6c 65 0a 6e  61 6d 65 20 65 78 74 65  |e file.name exte|
000002c0  6e 73 69 6f 6e 73 20 61  6e 64 20 69 73 20 61 62  |nsions and is ab|
000002d0  6c 65 20 74 6f 20 77 6f  72 6b 20 6f 75 74 20 61  |le to work out a|
000002e0  70 70 72 6f 70 72 69 61  74 65 20 70 72 6f 63 65  |ppropriate proce|
000002f0  73 73 69 6e 67 20 62 61  73 65 64 0a 75 70 6f 6e  |ssing based.upon|
00000300  20 74 68 65 20 65 78 74  65 6e 73 69 6f 6e 73 20  | the extensions |
00000310  70 72 65 73 65 6e 74 20  6f 72 20 65 6c 65 6d 65  |present or eleme|
00000320  6e 74 73 20 69 6e 20 74  68 65 20 62 61 73 69 63  |nts in the basic|
00000330  20 66 69 6c 65 20 6e 61  6d 65 2e 0a 0a 4f 6e 20  | file name...On |
00000340  74 68 65 20 62 61 73 69  73 20 6f 66 20 74 68 65  |the basis of the|
00000350  20 66 69 6c 65 20 6e 61  6d 65 20 61 6e 64 2f 6f  | file name and/o|
00000360  72 20 65 78 74 65 6e 73  69 6f 6e 73 2c 20 74 68  |r extensions, th|
00000370  65 20 66 74 70 20 63 6c  69 65 6e 74 20 63 61 6e  |e ftp client can|
00000380  20 6e 6f 77 0a 77 6f 72  6b 20 6f 75 74 20 77 68  | now.work out wh|
00000390  61 74 20 66 69 6c 65 20  74 79 70 65 20 74 6f 20  |at file type to |
000003a0  67 69 76 65 20 74 68 65  20 66 69 6c 65 2c 20 77  |give the file, w|
000003b0  68 69 63 68 20 64 69 72  65 63 74 6f 72 79 20 74  |hich directory t|
000003c0  6f 20 73 74 6f 72 65 20  69 74 20 69 6e 0a 61 6e  |o store it in.an|
000003d0  64 20 77 68 65 74 68 65  72 20 74 6f 20 6b 65 65  |d whether to kee|
000003e0  70 20 75 6e 63 6f 6e 76  65 72 74 65 64 20 65 78  |p unconverted ex|
000003f0  74 65 6e 73 69 6f 6e 73  2c 20 77 68 65 74 68 65  |tensions, whethe|
00000400  72 20 74 6f 20 6b 65 65  70 20 64 69 72 65 63 74  |r to keep direct|
00000410  6f 72 79 0a 65 6c 65 6d  65 6e 74 73 20 66 72 6f  |ory.elements fro|
00000420  6d 20 74 68 65 20 6f 72  69 67 69 6e 61 6c 20 72  |m the original r|
00000430  65 6d 6f 74 65 20 70 61  74 68 20 65 74 63 2e 0a  |emote path etc..|
00000440  0a 57 68 65 6e 20 74 68  65 72 65 20 69 73 20 6d  |.When there is m|
00000450  6f 72 65 20 74 68 61 6e  20 6f 6e 65 20 65 78 74  |ore than one ext|
00000460  65 6e 73 69 6f 6e 2c 20  69 74 20 69 73 20 61 62  |ension, it is ab|
00000470  6c 65 20 74 6f 20 73 65  6e 73 69 62 6c 65 20 75  |le to sensible u|
00000480  73 65 20 6f 6e 65 0a 65  78 74 65 6e 73 69 6f 6e  |se one.extension|
00000490  20 74 6f 20 64 65 74 65  72 6d 69 6e 65 20 74 68  | to determine th|
000004a0  65 20 66 69 6c 65 27 73  20 74 79 70 65 20 61 6e  |e file's type an|
000004b0  64 20 61 6e 6f 74 68 65  72 20 65 78 74 65 6e 73  |d another extens|
000004c0  69 6f 6e 2c 20 6f 72 20  74 68 65 0a 66 69 6c 65  |ion, or the.file|
000004d0  27 73 20 6e 61 6d 65 2c  20 74 6f 20 64 65 74 65  |'s name, to dete|
000004e0  72 6d 69 6e 65 20 69 6e  20 77 68 69 63 68 20 64  |rmine in which d|
000004f0  69 72 65 63 74 6f 72 79  20 74 68 65 20 66 69 6c  |irectory the fil|
00000500  65 20 73 68 6f 75 6c 64  20 62 65 20 70 6c 61 63  |e should be plac|
00000510  65 64 2e 0a 0a 54 68 65  73 65 20 63 6f 6e 76 65  |ed...These conve|
00000520  72 73 69 6f 6e 73 20 61  72 65 20 64 6f 6e 65 20  |rsions are done |
00000530  61 63 63 6f 72 64 69 6e  67 20 74 6f 20 61 20 73  |according to a s|
00000540  65 74 20 6f 66 20 72 75  6c 65 73 20 67 69 76 65  |et of rules give|
00000550  6e 20 69 6e 20 61 20 6e  65 77 0a 21 54 43 50 49  |n in a new.!TCPI|
00000560  50 20 72 65 73 6f 75 72  63 65 20 66 69 6c 65 2e  |P resource file.|
00000570  20 28 21 54 43 50 49 50  55 73 65 72 2e 50 61 74  | (!TCPIPUser.Pat|
00000580  68 45 6e 74 29 2e 0a 0a  57 68 65 6e 20 64 6f 77  |hEnt)...When dow|
00000590  6e 6c 6f 61 64 69 6e 67  20 67 72 6f 75 70 73 20  |nloading groups |
000005a0  6f 66 20 66 69 6c 65 73  2c 20 66 6f 72 20 65 78  |of files, for ex|
000005b0  61 6d 70 6c 65 2c 20 74  68 65 20 65 6e 74 69 72  |ample, the entir|
000005c0  65 64 20 63 6f 6e 74 65  6e 74 73 20 6f 66 20 61  |ed contents of a|
000005d0  0a 64 69 72 65 63 74 6f  72 79 20 61 6e 64 20 73  |.directory and s|
000005e0  75 62 64 69 72 65 63 74  6f 72 69 65 73 20 63 6f  |ubdirectories co|
000005f0  6e 74 61 69 6e 69 6e 67  20 43 20 73 6f 75 72 63  |ntaining C sourc|
00000600  65 20 66 69 6c 65 73 2c  20 74 68 65 72 65 20 61  |e files, there a|
00000610  72 65 20 6f 66 74 65 6e  0a 66 69 6c 65 73 20 77  |re often.files w|
00000620  68 69 63 68 20 6d 69 67  68 74 20 65 6e 64 20 75  |hich might end u|
00000630  70 20 62 65 69 6e 67 20  70 6c 61 63 65 64 20 69  |p being placed i|
00000640  6e 20 61 20 64 69 66 66  65 72 65 6e 74 20 64 69  |n a different di|
00000650  72 65 63 74 6f 72 79 20  74 6f 20 74 68 65 0a 72  |rectory to the.r|
00000660  65 73 74 20 61 73 20 61  20 63 6f 6e 73 65 71 75  |est as a consequ|
00000670  65 6e 63 65 20 6f 66 20  6e 61 6d 65 2f 65 78 74  |ence of name/ext|
00000680  65 6e 73 69 6f 6e 20 62  61 73 65 20 70 6c 61 63  |ension base plac|
00000690  69 6e 67 2e 20 41 73 20  74 68 69 73 20 63 61 6e  |ing. As this can|
000006a0  20 62 65 0a 75 6e 64 65  73 69 72 61 62 6c 65 2c  | be.undesirable,|
000006b0  20 69 74 20 69 73 20 70  6f 73 69 62 6c 65 20 74  | it is posible t|
000006c0  6f 20 73 77 69 74 63 68  20 6f 66 66 20 74 68 65  |o switch off the|
000006d0  20 66 75 6c 6c 79 20 61  75 74 6f 6d 61 74 69 63  | fully automatic|
000006e0  20 70 72 6f 63 65 73 73  69 6e 67 2c 0a 61 6e 64  | processing,.and|
000006f0  20 66 6f 72 63 65 20 70  72 65 73 65 74 20 70 72  | force preset pr|
00000700  6f 63 65 73 73 69 6e 67  20 61 63 63 6f 72 64 69  |ocessing accordi|
00000710  6e 67 20 74 6f 20 74 68  65 20 74 79 70 65 20 6f  |ng to the type o|
00000720  66 20 64 6f 77 6e 6c 6f  61 64 20 79 6f 75 72 20  |f download your |
00000730  61 72 65 0a 64 6f 69 6e  67 2e 20 54 68 69 73 20  |are.doing. This |
00000740  69 73 20 6d 6f 73 74 20  75 73 65 66 75 6c 20 77  |is most useful w|
00000750  68 65 6e 20 75 73 69 6e  67 20 74 68 65 20 6e 65  |hen using the ne|
00000760  77 20 62 61 74 63 68 20  66 61 63 69 6c 69 74 79  |w batch facility|
00000770  2e 0a 0a 46 69 6e 61 6c  6c 79 2c 20 6a 75 73 74  |...Finally, just|
00000780  20 69 6e 20 63 61 73 65  20 74 68 65 72 65 20 61  | in case there a|
00000790  72 65 20 61 6e 79 20 70  72 6f 62 6c 65 6d 73 20  |re any problems |
000007a0  74 68 61 74 20 49 20 68  61 76 65 20 6d 69 73 73  |that I have miss|
000007b0  65 64 2c 20 74 68 65 20  6f 6c 64 0a 6f 72 69 67  |ed, the old.orig|
000007c0  69 6e 61 6c 20 70 61 74  68 20 6e 61 6d 65 20 68  |inal path name h|
000007d0  61 6e 64 6c 69 6e 67 20  69 73 20 73 74 69 6c 6c  |andling is still|
000007e0  20 61 76 61 69 6c 61 62  6c 65 20 69 6e 20 61 20  | available in a |
000007f0  72 61 74 68 65 72 20 6d  6f 72 65 20 75 73 65 61  |rather more usea|
00000800  62 6c 65 0a 61 6e 64 20  69 6d 70 72 6f 76 65 64  |ble.and improved|
00000810  20 66 6f 72 6d 2e 0a 0a  57 68 61 74 65 76 65 72  | form...Whatever|
00000820  20 70 61 74 68 20 70 72  6f 63 65 73 73 69 6e 67  | path processing|
00000830  20 6f 70 74 69 6f 6e 73  20 61 72 65 20 69 6e 20  | options are in |
00000840  75 73 65 2c 20 64 69 72  65 63 74 6f 72 69 65 73  |use, directories|
00000850  20 61 72 65 0a 61 75 74  6f 6d 61 74 69 63 61 6c  | are.automatical|
00000860  6c 79 20 63 72 65 61 74  65 64 2e 20 54 68 65 20  |ly created. The |
00000870  6c 61 63 6b 20 6f 66 20  74 68 69 73 20 77 61 73  |lack of this was|
00000880  20 6f 6e 65 20 6f 66 20  74 68 65 20 6d 6f 73 74  | one of the most|
00000890  20 61 6e 6e 6f 79 69 6e  67 0a 70 72 6f 62 6c 65  | annoying.proble|
000008a0  6d 73 20 77 69 74 68 20  70 72 65 76 69 6f 75 73  |ms with previous|
000008b0  20 76 65 72 73 69 6f 6e  73 20 6f 66 20 74 68 65  | versions of the|
000008c0  20 46 54 50 20 63 6c 69  65 6e 74 2e 20 41 6c 73  | FTP client. Als|
000008d0  6f 20 66 69 6c 65 6e 61  6d 65 73 20 61 72 65 20  |o filenames are |
000008e0  6e 6f 0a 6c 6f 6e 67 65  72 20 61 63 74 69 76 65  |no.longer active|
000008f0  6c 79 20 74 72 75 6e 63  61 74 65 64 2c 20 61 6c  |ly truncated, al|
00000900  6c 6f 77 69 6e 67 20 61  64 76 61 6e 74 61 67 65  |lowing advantage|
00000910  20 74 6f 20 62 65 20 74  61 6b 65 6e 20 6f 66 20  | to be taken of |
00000920  73 75 63 68 0a 75 74 69  6c 69 74 69 65 73 20 61  |such.utilities a|
00000930  73 20 21 4c 6f 6e 67 46  69 6c 65 73 2e 20 57 69  |s !LongFiles. Wi|
00000940  74 68 20 61 70 70 72 6f  70 72 69 61 74 65 20 52  |th appropriate R|
00000950  69 73 63 20 4f 53 20 63  6f 6e 66 69 67 75 72 61  |isc OS configura|
00000960  74 69 6f 6e 2c 20 6f 76  65 72 6c 79 0a 6c 6f 6e  |tion, overly.lon|
00000970  67 20 66 69 6c 65 6e 61  6d 65 73 20 77 69 6c 6c  |g filenames will|
00000980  20 73 74 69 6c 6c 20 62  65 20 74 72 75 6e 63 61  | still be trunca|
00000990  74 65 64 2c 20 62 75 74  20 62 79 20 52 69 73 63  |ted, but by Risc|
000009a0  20 4f 53 20 72 61 74 68  65 72 20 74 68 61 6e 20  | OS rather than |
000009b0  74 68 65 0a 46 54 50 20  63 6c 69 65 6e 74 2e 0a  |the.FTP client..|
000009c0  0a 0a 50 61 74 68 45 6e  74 20 66 69 6c 65 0a 2d  |..PathEnt file.-|
000009d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 0a 54 68 65  |-----------..The|
000009e0  20 21 54 43 50 49 50 55  73 65 72 2e 50 61 74 68  | !TCPIPUser.Path|
000009f0  45 6e 74 20 63 6f 6e 73  69 73 74 20 6f 66 20 61  |Ent consist of a|
00000a00  20 73 65 72 69 65 73 20  6f 66 20 65 69 74 68 65  | series of eithe|
00000a10  72 20 6f 70 74 69 6f 6e  73 20 6c 69 6e 65 73 2c  |r options lines,|
00000a20  20 6f 72 0a 6e 61 6d 65  20 6d 61 74 63 68 69 6e  | or.name matchin|
00000a30  67 20 6c 69 6e 65 73 2e  20 57 68 65 6e 20 74 72  |g lines. When tr|
00000a40  79 69 6e 67 20 74 6f 20  6d 61 74 63 68 20 61 20  |ying to match a |
00000a50  6e 61 6d 65 20 6f 72 20  65 78 74 65 6e 73 69 6f  |name or extensio|
00000a60  6e 73 2c 20 74 68 72 65  65 0a 74 79 70 65 73 20  |ns, three.types |
00000a70  6f 66 20 6d 61 74 63 68  69 6e 67 20 61 72 65 20  |of matching are |
00000a80  63 61 72 72 69 65 64 20  6f 75 74 2e 20 54 68 65  |carried out. The|
00000a90  73 65 20 61 72 65 3a 0a  0a 20 20 31 2e 20 20 4d  |se are:..  1.  M|
00000aa0  61 74 63 68 20 74 68 65  20 66 69 6c 65 20 6e 61  |atch the file na|
00000ab0  6d 65 20 74 6f 20 64 65  74 65 72 6d 69 6e 65 20  |me to determine |
00000ac0  77 68 65 72 65 20 74 6f  20 70 75 74 20 74 68 65  |where to put the|
00000ad0  20 66 69 6c 65 2e 0a 20  20 32 2e 20 20 4d 61 74  | file..  2.  Mat|
00000ae0  63 68 20 61 6e 20 65 78  74 65 6e 73 69 6f 6e 20  |ch an extension |
00000af0  74 6f 20 64 65 74 65 72  6d 69 6e 65 20 77 68 65  |to determine whe|
00000b00  72 65 20 74 6f 20 70 75  74 20 74 68 65 20 66 69  |re to put the fi|
00000b10  6c 65 2e 0a 20 20 33 2e  20 20 4d 61 74 63 68 20  |le..  3.  Match |
00000b20  61 6e 20 65 78 74 65 6e  73 69 6f 6e 20 74 6f 20  |an extension to |
00000b30  64 65 74 65 72 6d 69 6e  65 20 61 20 66 69 6c 65  |determine a file|
00000b40  20 74 79 70 65 2e 0a 0a  54 68 65 20 66 69 72 73  | type...The firs|
00000b50  74 20 6d 61 74 63 68 20  69 6e 20 65 61 63 68 20  |t match in each |
00000b60  6f 66 20 74 68 65 20 61  62 6f 76 65 20 63 61 74  |of the above cat|
00000b70  65 67 6f 72 69 65 73 20  69 73 20 74 68 65 20 6f  |egories is the o|
00000b80  6e 65 20 75 73 65 64 2e  20 48 6f 77 0a 74 68 69  |ne used. How.thi|
00000b90  73 20 65 66 66 65 63 74  73 20 74 68 65 20 6c 61  |s effects the la|
00000ba0  79 6f 75 74 20 6f 66 20  74 68 65 20 50 61 74 68  |yout of the Path|
00000bb0  45 6e 74 20 66 69 6c 65  20 77 69 6c 6c 20 62 65  |Ent file will be|
00000bc0  63 6f 6d 65 20 63 6c 65  61 72 2e 0a 0a 45 61 63  |come clear...Eac|
00000bd0  68 20 6f 70 74 69 6f 6e  73 20 6c 69 6e 65 20 73  |h options line s|
00000be0  74 61 72 74 73 20 77 69  74 68 20 61 20 22 24 22  |tarts with a "$"|
00000bf0  20 63 68 61 72 61 63 74  65 72 20 61 6e 64 20 69  | character and i|
00000c00  73 20 66 6f 6c 6c 6f 77  65 64 20 62 79 0a 72 65  |s followed by.re|
00000c10  71 75 69 72 65 64 20 6f  70 74 69 6f 6e 73 20 6f  |quired options o|
00000c20  6e 20 74 68 65 20 73 61  6d 65 20 6c 69 6e 65 2c  |n the same line,|
00000c30  20 65 61 63 68 20 73 65  70 61 72 61 74 65 64 20  | each separated |
00000c40  62 79 20 61 20 73 70 61  63 65 2e 0a 0a 54 68 65  |by a space...The|
00000c50  72 65 20 61 72 65 20 74  68 72 65 65 20 74 79 70  |re are three typ|
00000c60  65 73 20 6f 66 20 6f 70  74 69 6f 6e 73 20 6c 69  |es of options li|
00000c70  6e 65 20 61 73 20 66 6f  6c 6c 6f 77 73 3a 0a 0a  |ne as follows:..|
00000c80  24 72 6f 6f 74 20 3c 70  61 74 68 6e 61 6d 65 3e  |$root <pathname>|
00000c90  0a 22 24 72 6f 6f 74 20  3c 46 54 50 24 44 69 72  |."$root <FTP$Dir|
00000ca0  3e 22 0a 0a 54 68 69 73  20 6d 75 73 74 20 62 65  |>"..This must be|
00000cb0  20 70 72 65 73 65 6e 74  2c 20 6f 6e 63 65 20 6f  | present, once o|
00000cc0  6e 6c 79 2e 20 54 68 65  20 67 69 76 65 6e 20 70  |nly. The given p|
00000cd0  61 74 68 6e 61 6d 65 20  73 65 74 20 74 68 65 20  |athname set the |
00000ce0  72 6f 6f 74 0a 64 69 72  65 63 74 6f 72 79 20 69  |root.directory i|
00000cf0  6e 20 77 68 69 63 68 20  66 69 6c 65 73 20 61 72  |n which files ar|
00000d00  65 20 74 6f 20 62 65 20  70 6c 61 63 65 64 2e 20  |e to be placed. |
00000d10  4e 6f 72 6d 61 6c 6c 79  2c 20 74 68 69 73 20 69  |Normally, this i|
00000d20  73 20 73 65 74 20 74 6f  0a 22 3c 46 54 50 24 44  |s set to."<FTP$D|
00000d30  69 72 3e 22 20 77 68 69  63 68 20 69 6e 20 74 75  |ir>" which in tu|
00000d40  72 6e 20 69 73 20 73 65  74 20 74 6f 20 22 21 54  |rn is set to "!T|
00000d50  43 50 49 50 55 73 65 72  2e 44 6f 77 6e 6c 6f 61  |CPIPUser.Downloa|
00000d60  64 73 22 2e 0a 0a 24 64  65 66 61 75 6c 74 20 5b  |ds"...$default [|
00000d70  3c 6f 70 74 69 6f 6e 3e  2e 2e 2e 5d 0a 45 78 61  |<option>...].Exa|
00000d80  6d 70 6c 65 3a 20 22 24  64 65 66 61 75 6c 74 20  |mple: "$default |
00000d90  6e 6f 63 61 73 65 20 6e  66 73 65 78 74 20 74 72  |nocase nfsext tr|
00000da0  75 6e 63 64 69 72 20 6b  65 65 70 65 78 74 20 69  |uncdir keepext i|
00000db0  6e 20 4d 69 73 63 20 74  79 70 65 20 26 66 66 66  |n Misc type &fff|
00000dc0  22 0a 0a 54 68 69 73 20  6c 69 6e 65 20 6d 75 73  |"..This line mus|
00000dd0  74 20 62 65 20 70 72 65  73 65 6e 74 2c 20 6f 6e  |t be present, on|
00000de0  63 65 20 6f 6e 6c 79 2e  20 49 74 20 73 65 74 73  |ce only. It sets|
00000df0  20 74 68 65 20 64 65 66  61 75 6c 74 20 70 61 74  | the default pat|
00000e00  68 0a 70 72 6f 63 65 73  73 69 6e 67 20 6f 70 74  |h.processing opt|
00000e10  69 6f 6e 73 20 74 68 69  73 20 61 72 65 20 6d 6f  |ions this are mo|
00000e20  64 69 66 69 65 64 20 62  79 20 6f 70 74 69 6f 6e  |dified by option|
00000e30  73 20 67 69 76 65 6e 20  6c 61 74 65 72 2c 20 6f  |s given later, o|
00000e40  72 20 61 70 70 6c 69 65  64 0a 64 69 72 65 63 74  |r applied.direct|
00000e50  6c 79 20 74 6f 20 61 6e  79 20 70 61 74 68 73 20  |ly to any paths |
00000e60  74 68 61 74 20 61 72 65  20 6e 6f 74 20 6f 74 68  |that are not oth|
00000e70  65 72 77 69 73 65 20 6d  61 74 63 68 65 64 2e 0a  |erwise matched..|
00000e80  0a 24 20 5b 3c 6f 70 74  69 6f 6e 3e 2e 2e 2e 5d  |.$ [<option>...]|
00000e90  0a 45 78 61 6d 70 6c 65  3a 20 22 24 20 72 65 76  |.Example: "$ rev|
00000ea0  31 65 78 74 20 69 6e 20  53 6f 75 72 63 65 22 0a  |1ext in Source".|
00000eb0  0a 54 68 69 73 20 6c 69  6e 65 20 63 6f 6e 74 61  |.This line conta|
00000ec0  69 6e 73 20 6f 70 74 69  6f 6e 73 20 74 68 61 74  |ins options that|
00000ed0  20 61 72 65 20 74 6f 20  62 65 20 61 70 70 6c 69  | are to be appli|
00000ee0  65 64 20 74 6f 20 73 75  62 73 65 71 75 65 6e 74  |ed to subsequent|
00000ef0  0a 65 78 74 65 6e 73 69  6f 6e 2f 66 69 6c 65 6e  |.extension/filen|
00000f00  61 6d 65 20 64 65 63 6f  64 69 6e 67 20 6c 69 6e  |ame decoding lin|
00000f10  65 73 2e 20 41 6e 79 20  6f 70 74 69 6f 6e 73 20  |es. Any options |
00000f20  67 69 76 65 6e 20 61 72  65 20 61 70 70 6c 69 65  |given are applie|
00000f30  64 20 69 6e 0a 61 64 64  69 74 69 6f 6e 20 74 6f  |d in.addition to|
00000f40  20 74 68 6f 73 65 20 67  69 76 65 6e 20 69 6e 20  | those given in |
00000f50  74 68 65 20 64 65 66 61  75 6c 74 20 6f 70 74 69  |the default opti|
00000f60  6f 6e 73 20 6c 69 6e 65  2e 0a 0a 4c 69 6e 65 73  |ons line...Lines|
00000f70  20 73 74 61 72 74 69 6e  67 20 77 69 74 68 20 61  | starting with a|
00000f80  20 22 23 22 20 63 68 61  72 61 63 74 65 72 2c 20  | "#" character, |
00000f90  6f 72 20 62 6c 61 6e 6b  20 6c 69 6e 65 73 20 61  |or blank lines a|
00000fa0  72 65 20 69 67 6e 6f 72  65 64 2e 0a 0a 4c 69 6e  |re ignored...Lin|
00000fb0  65 73 20 73 74 61 72 74  69 6e 67 20 77 69 74 68  |es starting with|
00000fc0  20 61 20 22 2e 22 20 64  65 73 63 72 69 62 65 20  | a "." describe |
00000fd0  65 78 74 65 6e 73 69 6f  6e 73 20 6d 61 74 63 68  |extensions match|
00000fe0  69 6e 67 2e 20 4f 74 68  65 72 20 6c 69 6e 65 73  |ing. Other lines|
00000ff0  0a 64 65 73 63 72 69 62  65 20 66 69 6c 65 6e 61  |.describe filena|
00001000  6d 65 20 6d 61 74 63 68  69 6e 67 2e 0a 0a 45 78  |me matching...Ex|
00001010  74 65 6e 73 69 6f 6e 20  61 6e 64 20 66 69 6c 65  |tension and file|
00001020  20 6e 61 6d 65 20 6d 61  74 63 68 69 6e 67 20 6c  | name matching l|
00001030  69 6e 65 73 20 61 72 65  20 61 73 20 66 6f 6c 6c  |ines are as foll|
00001040  6f 77 73 3a 0a 0a 3c 6e  61 6d 65 3e 2f 2e 3c 65  |ows:..<name>/.<e|
00001050  78 74 3e 5b 7c 3c 6e 61  6d 65 3e 2f 2e 3c 65 78  |xt>[|<name>/.<ex|
00001060  74 3e 2e 2e 2e 5d 20 3c  66 69 6c 65 20 74 79 70  |t>...] <file typ|
00001070  65 3e 20 5b 3c 6f 70 74  69 6f 6e 73 3e 5d 0a 45  |e> [<options>].E|
00001080  78 61 6d 70 6c 65 73 3a  20 22 2e 63 7c 2e 63 70  |xamples: ".c|.cp|
00001090  70 7c 2e 63 2b 2b 7c 2e  68 7c 2e 5b 31 2d 38 5d  |p|.c++|.h|.[1-8]|
000010a0  7c 2e 73 7c 2e 79 7c 2e  6c 20 26 66 66 66 22 0a  ||.s|.y|.l &fff".|
000010b0  20 20 20 20 20 20 20 20  20 20 22 72 66 63 2a 20  |          "rfc* |
000010c0  26 66 66 66 20 69 6e 20  52 46 43 73 22 0a 0a 22  |&fff in RFCs".."|
000010d0  2f 22 20 69 6e 20 74 68  65 20 61 62 6f 76 65 20  |/" in the above |
000010e0  69 73 20 75 73 65 64 20  74 6f 20 72 65 70 72 65  |is used to repre|
000010f0  73 65 6e 74 20 22 6f 72  22 20 69 6e 20 74 68 65  |sent "or" in the|
00001100  20 73 79 6e 74 61 78 20  72 61 74 68 65 72 20 74  | syntax rather t|
00001110  68 61 6e 20 74 68 65 0a  75 73 75 61 6c 20 22 7c  |han the.usual "||
00001120  22 20 61 73 20 22 7c 22  20 69 73 20 6c 69 74 65  |" as "|" is lite|
00001130  72 61 6c 6c 79 20 75 73  65 64 20 74 6f 20 73 65  |rally used to se|
00001140  70 61 72 61 74 65 20 65  78 74 65 6e 73 69 6f 6e  |parate extension|
00001150  73 20 69 6e 20 61 20 6c  69 73 74 2e 0a 54 68 65  |s in a list..The|
00001160  72 65 20 6d 75 73 74 20  62 65 20 6e 6f 20 73 70  |re must be no sp|
00001170  61 63 65 73 20 69 6e 20  74 68 65 20 65 78 74 65  |aces in the exte|
00001180  6e 73 69 6f 6e 73 20 70  61 72 74 2e 0a 0a 54 68  |nsions part...Th|
00001190  65 20 75 73 65 20 6f 66  20 77 69 6c 64 63 61 72  |e use of wildcar|
000011a0  64 73 20 69 73 20 61 6c  6c 6f 77 65 64 20 69 6e  |ds is allowed in|
000011b0  20 74 68 65 20 6e 61 6d  65 20 61 6e 64 20 65 78  | the name and ex|
000011c0  74 65 6e 73 69 6f 6e 20  61 73 20 66 6f 6c 6c 6f  |tension as follo|
000011d0  77 73 3a 0a 0a 20 20 22  2a 22 20 20 20 20 20 6d  |ws:..  "*"     m|
000011e0  61 74 63 68 65 73 20 61  6e 79 20 73 74 72 69 6e  |atches any strin|
000011f0  67 20 6f 66 20 30 20 6f  72 20 6d 6f 72 65 20 63  |g of 0 or more c|
00001200  68 61 72 61 63 74 65 72  73 2e 0a 20 20 22 3f 22  |haracters..  "?"|
00001210  20 20 20 20 20 6d 61 74  63 68 65 73 20 61 6e 79  |     matches any|
00001220  20 73 69 6e 67 6c 65 20  63 68 61 72 61 63 74 65  | single characte|
00001230  72 2e 0a 20 20 22 5b 2e  2e 2e 5d 22 20 6d 61 74  |r..  "[...]" mat|
00001240  63 68 65 73 20 61 20 72  61 6e 67 65 20 6f 66 20  |ches a range of |
00001250  63 68 61 72 61 63 74 65  72 73 2c 20 66 6f 72 20  |characters, for |
00001260  65 67 2c 20 5b 30 2d 39  5d 20 6d 61 74 63 68 65  |eg, [0-9] matche|
00001270  73 20 30 2c 20 31 2c 20  32 2c 0a 20 20 20 20 20  |s 0, 1, 2,.     |
00001280  20 20 20 20 20 33 20 2e  2e 2e 20 39 2e 0a 0a 54  |     3 ... 9...T|
00001290  68 65 20 66 69 6c 65 20  74 79 70 65 20 69 73 20  |he file type is |
000012a0  61 20 76 61 6c 69 64 20  52 49 53 43 20 4f 53 20  |a valid RISC OS |
000012b0  66 69 6c 65 20 74 79 70  65 2c 20 66 6f 72 20 65  |file type, for e|
000012c0  78 61 6d 70 6c 65 2c 20  22 54 65 78 74 22 20 22  |xample, "Text" "|
000012d0  66 66 66 22 2c 0a 22 26  66 66 66 22 20 65 74 63  |fff",."&fff" etc|
000012e0  2e 0a 0a 41 64 64 69 74  69 6f 6e 20 65 78 74 65  |...Addition exte|
000012f0  6e 73 69 6f 6e 20 73 70  65 63 69 66 69 63 20 6f  |nsion specific o|
00001300  70 74 69 6f 6e 73 20 6d  61 79 20 61 6c 73 6f 20  |ptions may also |
00001310  62 65 20 67 69 76 65 6e  20 62 79 20 69 6e 63 6c  |be given by incl|
00001320  75 64 69 6e 67 20 74 68  65 0a 6f 70 74 69 6f 6e  |uding the.option|
00001330  20 61 66 74 65 72 20 74  68 65 20 66 69 6c 65 20  | after the file |
00001340  74 79 70 65 2e 0a 0a 0a  4f 70 74 69 6f 6e 73 3a  |type....Options:|
00001350  0a 0a 20 20 6e 6f 63 61  73 65 09 54 72 65 61 74  |..  nocase.Treat|
00001360  20 75 70 70 65 72 20 61  6e 64 20 6c 6f 77 65 72  | upper and lower|
00001370  20 63 61 73 65 20 61 6c  69 6b 65 20 69 6e 20 6d  | case alike in m|
00001380  61 74 63 68 69 6e 67 0a  0a 20 20 6b 65 65 70 65  |atching..  keepe|
00001390  78 74 09 4b 65 65 70 20  65 78 74 65 6e 73 69 6f  |xt.Keep extensio|
000013a0  6e 73 20 61 73 20 66 69  6c 65 2f 65 78 74 31 2f  |ns as file/ext1/|
000013b0  65 78 74 32 20 65 74 63  0a 0a 20 20 6e 6f 65 78  |ext2 etc..  noex|
000013c0  74 09 09 52 65 6d 6f 76  65 20 61 6c 6c 20 65 78  |t..Remove all ex|
000013d0  74 65 6e 73 69 6f 6e 73  0a 0a 20 20 72 65 76 65  |tensions..  reve|
000013e0  78 74 09 52 65 76 65 72  73 65 20 65 78 74 65 6e  |xt.Reverse exten|
000013f0  73 69 6f 6e 73 20 73 6f  20 74 68 61 74 20 64 69  |sions so that di|
00001400  72 2f 66 69 6c 65 2e 61  2e 62 20 62 65 63 6f 6d  |r/file.a.b becom|
00001410  65 73 0a 09 09 64 69 72  2e 62 2e 61 2e 66 69 6c  |es...dir.b.a.fil|
00001420  65 0a 0a 20 20 72 65 76  31 65 78 74 09 52 65 76  |e..  rev1ext.Rev|
00001430  65 72 73 65 20 31 73 74  20 65 78 74 65 6e 73 69  |erse 1st extensi|
00001440  6f 6e 20 6f 6e 6c 79 2c  20 73 6f 20 74 68 61 74  |on only, so that|
00001450  20 61 70 70 2f 66 69 6c  65 2e 63 2e 67 7a 0a 09  | app/file.c.gz..|
00001460  09 62 65 63 6f 6d 65 73  20 61 70 70 2e 63 2e 66  |.becomes app.c.f|
00001470  69 6c 65 2f 67 7a 0a 0a  20 20 6e 6f 70 61 74 68  |ile/gz..  nopath|
00001480  09 53 74 72 69 70 20 70  61 74 68 20 70 72 65 66  |.Strip path pref|
00001490  69 78 20 66 6f 72 20 72  65 6d 6f 74 65 20 6e 61  |ix for remote na|
000014a0  6d 65 20 73 6f 2e 0a 0a  20 20 69 6e 20 3c 64 69  |me so...  in <di|
000014b0  72 3e 20 20 20 20 20 20  50 6c 61 63 65 73 20 66  |r>      Places f|
000014c0  69 6c 65 20 69 6e 20 64  69 72 65 63 74 6f 72 79  |ile in directory|
000014d0  20 3c 64 69 72 3e 2e 20  55 6e 6c 65 73 73 20 3c  | <dir>. Unless <|
000014e0  64 69 72 3e 20 69 73 20  61 20 66 75 6c 6c 0a 20  |dir> is a full. |
000014f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 70  |               p|
00001500  61 74 68 20 6e 61 6d 65  2c 20 3c 64 69 72 3e 20  |ath name, <dir> |
00001510  69 73 20 61 73 73 75 6d  65 64 20 74 6f 20 62 65  |is assumed to be|
00001520  20 61 20 73 75 62 2d 64  69 72 65 63 74 6f 72 79  | a sub-directory|
00001530  20 6f 66 20 74 68 65 0a  20 20 20 20 20 20 20 20  | of the.        |
00001540  20 20 20 20 20 20 20 20  73 70 65 63 69 66 69 65  |        specifie|
00001550  64 20 72 6f 6f 74 20 64  69 72 65 63 74 6f 72 79  |d root directory|
00001560  2e 0a 0a 20 20 74 79 70  65 20 3c 74 79 70 65 3e  |...  type <type>|
00001570  20 20 20 53 65 74 20 74  68 65 20 64 65 66 61 75  |   Set the defau|
00001580  6c 74 20 74 79 70 65 20  74 6f 20 62 65 20 61 70  |lt type to be ap|
00001590  70 6c 69 65 64 20 69 6e  20 74 68 65 20 61 62 73  |plied in the abs|
000015a0  65 6e 63 65 20 6f 66 20  61 6e 79 0a 20 20 20 20  |ence of any.    |
000015b0  20 20 20 20 20 20 20 20  20 20 20 20 6f 74 68 65  |            othe|
000015c0  72 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 2e 0a 0a  |r information...|
000015d0  20 20 6e 66 73 65 78 74  20 20 20 20 20 20 20 20  |  nfsext        |
000015e0  45 6e 61 62 6c 65 73 20  74 68 65 20 68 61 6e 64  |Enables the hand|
000015f0  6c 69 6e 67 20 6f 66 20  41 63 6f 72 6e 20 4e 46  |ling of Acorn NF|
00001600  53 20 73 74 79 6c 65 20  2c 78 78 78 20 68 65 78  |S style ,xxx hex|
00001610  20 65 78 74 65 6e 73 69  6f 6e 73 2e 0a 0a 0a 41  | extensions....A|
00001620  6e 79 20 6f 70 74 69 6f  6e 20 70 72 65 66 69 78  |ny option prefix|
00001630  65 64 20 77 69 74 68 20  22 21 22 20 69 73 20 73  |ed with "!" is s|
00001640  77 69 74 63 68 65 64 20  6f 66 66 20 72 61 74 68  |witched off rath|
00001650  65 72 20 74 68 61 6e 20  6f 6e 2e 0a 0a 57 68 65  |er than on...Whe|
00001660  6e 20 61 20 74 79 70 65  20 69 73 20 6d 61 74 63  |n a type is matc|
00001670  68 65 64 2c 20 74 68 65  20 63 6f 72 72 65 73 70  |hed, the corresp|
00001680  6f 6e 64 69 6e 67 20 65  78 74 65 6e 73 69 6f 6e  |onding extension|
00001690  20 69 73 20 61 6c 6c 77  61 79 73 20 72 65 6d 6f  | is allways remo|
000016a0  76 65 64 2e 0a 0a 0a 41  6e 20 45 78 61 6d 70 6c  |ved....An Exampl|
000016b0  65 20 46 69 6c 65 0a 0a  0a 23 20 53 65 74 20 74  |e File...# Set t|
000016c0  68 65 20 6c 6f 63 61 74  69 6f 6e 20 6f 66 20 74  |he location of t|
000016d0  68 65 20 64 6f 77 6e 6c  6f 61 64 73 20 64 69 72  |he downloads dir|
000016e0  65 63 74 6f 72 79 2e 0a  0a 24 72 6f 6f 74 20 3c  |ectory...$root <|
000016f0  46 54 50 24 44 69 72 3e  0a 0a 0a 23 20 53 65 74  |FTP$Dir>...# Set|
00001700  20 64 65 66 61 75 6c 74  20 6f 70 74 69 6f 6e 73  | default options|
00001710  20 61 73 20 66 6f 6c 6c  6f 77 73 3a 0a 23 20 63  | as follows:.# c|
00001720  61 73 65 2d 69 6e 73 65  6e 73 69 74 69 76 65 20  |ase-insensitive |
00001730  6d 61 74 63 68 69 6e 67  2c 20 68 61 6e 64 6c 69  |matching, handli|
00001740  6e 67 20 6f 66 20 4e 46  53 20 65 78 74 65 6e 73  |ng of NFS extens|
00001750  69 6f 6e 73 2c 20 6b 65  65 70 0a 23 20 65 78 74  |ions, keep.# ext|
00001760  65 6e 73 69 6f 6e 73 20  61 73 20 66 69 6c 65 2f  |ensions as file/|
00001770  65 78 74 2f 65 78 74 20  75 6e 6c 65 73 73 20 74  |ext/ext unless t|
00001780  6f 6c 64 20 6e 6f 74 20  74 6f 2c 0a 23 20 70 6c  |old not to,.# pl|
00001790  61 63 65 20 75 6e 6d 61  74 63 68 65 64 20 66 69  |ace unmatched fi|
000017a0  6c 65 20 69 6e 20 22 3c  46 54 50 24 44 69 72 3e  |le in "<FTP$Dir>|
000017b0  2e 4d 69 73 63 22 0a 23  20 73 65 74 20 74 68 65  |.Misc".# set the|
000017c0  69 72 20 74 79 70 65 20  74 6f 20 54 65 78 74 20  |ir type to Text |
000017d0  28 26 66 66 66 29 0a 0a  24 64 65 66 61 75 6c 74  |(&fff)..$default|
000017e0  20 6e 6f 63 61 73 65 20  6e 66 73 65 78 74 20 6b  | nocase nfsext k|
000017f0  65 65 70 65 78 74 20 69  6e 20 4d 69 73 63 20 74  |eepext in Misc t|
00001800  79 70 65 20 26 66 66 66  0a 0a 0a 23 20 54 68 65  |ype &fff...# The|
00001810  73 65 20 6f 70 74 69 6f  6e 20 61 72 65 20 61 70  |se option are ap|
00001820  70 6c 69 65 64 20 74 6f  20 74 68 65 20 66 6f 6c  |plied to the fol|
00001830  6c 6f 77 69 6e 67 20 74  79 70 65 20 6d 61 74 63  |lowing type matc|
00001840  68 65 73 20 75 6e 74 69  6c 0a 23 20 61 6e 6f 74  |hes until.# anot|
00001850  68 65 72 20 6f 70 74 69  6f 6e 73 20 6c 69 6e 65  |her options line|
00001860  73 20 69 73 20 65 6e 63  6f 75 6e 74 65 72 65 64  |s is encountered|
00001870  2e 20 54 68 65 73 65 20  6f 70 74 69 6f 6e 73 20  |. These options |
00001880  61 72 65 20 61 70 70 6c  69 65 64 20 69 6e 0a 23  |are applied in.#|
00001890  20 61 64 64 69 74 69 6f  6e 20 74 6f 20 74 68 6f  | addition to tho|
000018a0  73 65 20 67 69 76 65 6e  20 6f 6e 20 74 68 65 20  |se given on the |
000018b0  64 65 66 61 75 6c 74 73  20 6c 69 6e 65 20 61 62  |defaults line ab|
000018c0  6f 76 65 2e 0a 23 0a 23  20 45 6e 73 75 72 65 20  |ove..#.# Ensure |
000018d0  64 69 72 65 63 74 6f 72  79 20 65 6c 65 6d 65 6e  |directory elemen|
000018e0  74 73 20 69 6e 20 6f 72  69 67 69 6e 61 6c 20 72  |ts in original r|
000018f0  65 6d 6f 74 65 20 70 61  74 68 20 6e 61 6d 65 20  |emote path name |
00001900  61 72 65 20 73 74 72 69  70 70 65 64 2e 0a 23 20  |are stripped..# |
00001910  45 6e 73 75 72 65 20 65  78 74 65 6e 73 69 6f 6e  |Ensure extension|
00001920  73 20 61 72 65 20 73 74  72 69 70 70 65 64 2c 20  |s are stripped, |
00001930  6c 65 61 76 69 6e 67 20  6a 75 73 74 20 74 68 65  |leaving just the|
00001940  20 66 69 6c 65 6e 61 6d  65 2e 0a 23 20 50 6c 61  | filename..# Pla|
00001950  63 65 20 6d 61 74 63 68  65 64 20 66 69 6c 65 73  |ce matched files|
00001960  20 69 6e 20 64 69 72 65  63 74 6f 72 79 20 22 3c  | in directory "<|
00001970  46 54 50 24 44 69 72 3e  2e 44 6f 63 73 22 0a 24  |FTP$Dir>.Docs".$|
00001980  20 6e 6f 70 61 74 68 20  6e 6f 65 78 74 20 69 6e  | nopath noext in|
00001990  20 44 6f 63 73 0a 2e 74  78 74 20 20 20 20 20 20  | Docs..txt      |
000019a0  20 20 20 26 66 66 66 0a  2e 64 6f 63 20 20 20 20  |   &fff..doc    |
000019b0  20 20 20 20 20 26 66 66  66 0a 2e 61 73 63 20 20  |     &fff..asc  |
000019c0  20 20 20 20 20 20 20 26  66 66 66 0a 2e 70 73 20  |       &fff..ps |
000019d0  20 20 20 20 20 20 20 20  20 26 66 66 35 0a 0a 0a  |         &ff5...|
000019e0  23 20 41 20 6e 65 77 20  73 65 74 20 6f 66 20 6f  |# A new set of o|
000019f0  70 74 69 6f 6e 73 20 74  6f 20 62 65 20 61 70 70  |ptions to be app|
00001a00  6c 69 65 64 2e 20 54 68  69 73 20 63 6f 6d 70 6c  |lied. This compl|
00001a10  65 74 65 6c 79 20 72 65  70 6c 61 63 65 73 20 74  |etely replaces t|
00001a20  68 6f 73 65 0a 23 20 67  69 76 65 6e 20 69 6e 20  |hose.# given in |
00001a30  74 68 65 20 70 72 65 76  69 6f 75 73 20 6f 70 74  |the previous opt|
00001a40  69 6f 6e 73 20 6c 69 6e  65 2c 20 61 6e 64 20 69  |ions line, and i|
00001a50  73 20 61 70 70 6c 69 65  64 20 74 6f 20 74 68 65  |s applied to the|
00001a60  20 66 6f 6c 6c 6f 77 69  6e 67 0a 23 20 6d 61 74  | following.# mat|
00001a70  63 68 20 6c 69 6e 65 73  2e 0a 23 0a 23 20 42 61  |ch lines..#.# Ba|
00001a80  73 69 63 61 6c 6c 79 20  61 73 20 61 62 6f 76 65  |sically as above|
00001a90  2c 20 62 75 74 20 70 75  74 20 66 69 6c 65 73 20  |, but put files |
00001aa0  69 6e 20 22 3c 46 54 50  24 44 69 72 3e 2e 41 72  |in "<FTP$Dir>.Ar|
00001ab0  63 68 69 76 65 73 22 0a  0a 24 20 6e 6f 70 61 74  |chives"..$ nopat|
00001ac0  68 20 6e 6f 65 78 74 20  69 6e 20 41 72 63 68 69  |h noext in Archi|
00001ad0  76 65 73 0a 2e 61 72 63  20 20 20 20 20 20 20 20  |ves..arc        |
00001ae0  20 26 64 64 63 0a 2e 61  72 63 68 69 76 65 20 20  | &ddc..archive  |
00001af0  20 20 20 26 64 64 63 0a  2e 73 70 61 72 6b 20 20  |   &ddc..spark  |
00001b00  20 20 20 20 20 26 64 64  63 0a 2e 73 70 6b 20 20  |     &ddc..spk  |
00001b10  20 20 20 20 20 20 20 26  64 64 63 0a 2e 74 61 72  |       &ddc..tar|
00001b20  2e 67 7a 20 20 20 20 20  20 26 64 64 63 0a 2e 74  |.gz      &ddc..t|
00001b30  61 72 2e 7a 20 20 20 20  20 20 20 26 64 64 63 0a  |ar.z       &ddc.|
00001b40  2e 74 61 72 20 20 20 20  20 20 20 20 20 26 64 64  |.tar         &dd|
00001b50  63 0a 2e 67 7a 20 20 20  20 20 20 20 20 20 20 26  |c..gz          &|
00001b60  64 64 63 0a 2e 7a 20 20  20 20 20 20 20 20 20 20  |ddc..z          |
00001b70  20 26 64 64 63 0a 2e 7a  69 70 20 20 20 20 20 20  | &ddc..zip      |
00001b80  20 20 20 26 64 64 63 0a  0a 0a 23 20 41 20 6e 65  |   &ddc...# A ne|
00001b90  77 20 73 65 74 20 6f 66  20 6f 70 74 69 6f 6e 73  |w set of options|
00001ba0  20 66 6f 72 20 49 6d 61  67 65 20 66 69 6c 65 73  | for Image files|
00001bb0  0a 23 20 54 68 65 20 66  69 6c 65 73 20 65 6e 64  |.# The files end|
00001bc0  20 6f 66 20 69 6e 20 22  3c 46 54 50 24 44 69 72  | of in "<FTP$Dir|
00001bd0  3e 2e 41 72 63 68 69 76  65 73 22 0a 0a 24 20 6e  |>.Archives"..$ n|
00001be0  6f 70 61 74 68 20 6e 6f  65 78 74 20 69 6e 20 49  |opath noext in I|
00001bf0  6d 61 67 65 73 0a 2e 6a  70 65 67 7c 2e 6a 70 67  |mages..jpeg|.jpg|
00001c00  20 20 20 26 63 38 35 0a  2e 67 69 66 20 20 20 20  |   &c85..gif    |
00001c10  20 20 20 20 20 26 36 39  35 0a 2e 74 69 66 66 7c  |     &695..tiff||
00001c20  2e 74 69 66 20 20 20 26  66 66 30 0a 0a 0a 23 20  |.tif   &ff0...# |
00001c30  41 20 6d 6f 72 65 20 63  6f 6d 70 6c 69 63 61 74  |A more complicat|
00001c40  65 20 65 78 74 65 6e 73  69 6f 6e 73 20 73 65 74  |e extensions set|
00001c50  20 66 6f 72 20 64 65 61  6c 69 6e 67 20 77 69 74  | for dealing wit|
00001c60  68 20 73 6f 75 72 63 65  20 66 69 6c 65 20 64 6f  |h source file do|
00001c70  77 6e 6c 6f 61 64 73 2e  0a 23 0a 23 20 74 68 69  |wnloads..#.# thi|
00001c80  73 20 6d 61 74 63 68 65  73 20 2e 63 2c 20 2e 63  |s matches .c, .c|
00001c90  2b 2b 2c 20 2e 63 70 70  2c 20 2e 68 2c 20 2e 31  |++, .cpp, .h, .1|
00001ca0  2c 20 2e 32 2c 20 2e 33  2c 20 2e 34 2c 20 2e 35  |, .2, .3, .4, .5|
00001cb0  2c 20 2e 36 2c 20 2e 37  2c 20 2e 38 2c 0a 23 20  |, .6, .7, .8,.# |
00001cc0  2e 73 2c 20 2e 79 2c 20  61 6e 64 20 2e 6c 2e 0a  |.s, .y, and .l..|
00001cd0  23 0a 23 20 54 68 65 20  66 69 72 73 74 20 65 78  |#.# The first ex|
00001ce0  74 65 6e 73 69 6f 6e 20  61 6e 64 20 66 69 6c 65  |tension and file|
00001cf0  20 6e 61 6d 65 20 61 72  65 20 73 77 61 70 70 65  | name are swappe|
00001d00  64 20 72 6f 75 6e 64 20  73 6f 20 74 68 61 74 20  |d round so that |
00001d10  79 6f 75 0a 23 20 67 65  74 20 63 2e 2a 2c 20 68  |you.# get c.*, h|
00001d20  2e 2a 20 66 69 6c 65 73  2e 0a 23 0a 23 20 41 6c  |.* files..#.# Al|
00001d30  73 6f 2c 20 61 73 20 74  68 65 73 65 20 6f 70 74  |so, as these opt|
00001d40  69 6f 6e 73 20 2a 72 65  70 6c 61 63 65 2a 20 70  |ions *replace* p|
00001d50  72 65 76 69 6f 75 73 20  6f 6e 65 73 2c 20 64 69  |revious ones, di|
00001d60  72 65 63 74 6f 72 79 20  65 6c 65 6d 65 6e 74 73  |rectory elements|
00001d70  20 69 6e 0a 23 20 74 68  65 20 6f 72 69 67 69 6e  | in.# the origin|
00001d80  61 6c 20 70 61 74 68 20  6e 61 6d 65 20 61 72 65  |al path name are|
00001d90  20 72 65 74 61 69 6e 65  64 2e 20 53 6f 20 61 70  | retained. So ap|
00001da0  70 6c 69 63 2f 73 6f 75  72 63 65 2e 63 20 62 65  |plic/source.c be|
00001db0  63 6f 6d 65 73 0a 23 20  61 70 70 6c 69 63 2e 63  |comes.# applic.c|
00001dc0  2e 73 6f 75 72 63 65 2e  0a 0a 24 20 72 65 76 31  |.source...$ rev1|
00001dd0  65 78 74 20 69 6e 20 53  6f 75 72 63 65 0a 2e 63  |ext in Source..c|
00001de0  7c 2e 63 70 70 7c 2e 63  2b 2b 7c 2e 68 7c 2e 5b  ||.cpp|.c++|.h|.[|
00001df0  31 2d 38 5d 7c 2e 73 7c  2e 79 7c 2e 6c 20 26 66  |1-8]|.s|.y|.l &f|
00001e00  66 66 0a 0a 0a 23 20 41  6e 79 20 66 69 6c 65 73  |ff...# Any files|
00001e10  20 77 69 74 68 20 22 72  66 63 22 20 61 74 20 74  | with "rfc" at t|
00001e20  68 65 20 73 74 61 72 74  20 6f 66 20 74 68 65 20  |he start of the |
00001e30  6e 61 6d 65 20 61 72 65  20 70 6c 61 63 65 64 20  |name are placed |
00001e40  69 6e 0a 23 20 22 3c 46  54 50 24 44 69 72 3e 2e  |in.# "<FTP$Dir>.|
00001e50  52 46 43 73 22 2e 20 41  6e 79 20 66 69 6c 65 73  |RFCs". Any files|
00001e60  20 77 69 74 68 20 22 64  72 61 66 74 2d 22 20 61  | with "draft-" a|
00001e70  74 20 74 68 65 20 73 74  61 72 74 20 6f 66 20 74  |t the start of t|
00001e80  68 65 20 6e 61 6d 65 20  61 72 65 0a 23 20 70 6c  |he name are.# pl|
00001e90  61 63 65 64 20 69 6e 20  22 3c 46 54 50 24 44 69  |aced in "<FTP$Di|
00001ea0  72 3e 2e 49 45 4e 73 22  2e 20 41 6c 73 6f 20 70  |r>.IENs". Also p|
00001eb0  61 74 68 20 65 6c 65 6d  65 6e 74 73 20 61 6e 64  |ath elements and|
00001ec0  20 65 78 74 65 6e 73 69  6f 6e 20 61 72 65 0a 23  | extension are.#|
00001ed0  20 73 74 72 69 70 70 65  64 2e 0a 23 0a 23 20 4e  | stripped..#.# N|
00001ee0  6f 74 65 2c 20 74 68 61  74 20 74 68 65 20 66 6f  |ote, that the fo|
00001ef0  6c 6c 6f 77 69 6e 67 20  74 77 6f 20 6d 61 74 63  |llowing two matc|
00001f00  68 20 6c 69 6e 65 73 20  64 6f 6e 27 74 20 68 61  |h lines don't ha|
00001f10  76 65 20 61 20 22 2e 22  20 70 72 65 66 69 78 2c  |ve a "." prefix,|
00001f20  20 73 6f 0a 23 20 74 68  65 79 20 6d 61 74 63 68  | so.# they match|
00001f30  20 74 68 65 20 6e 61 6d  65 20 72 61 74 68 65 72  | the name rather|
00001f40  20 74 68 61 6e 20 74 68  65 20 65 78 74 65 6e 73  | than the extens|
00001f50  69 6f 6e 2e 20 41 6c 73  6f 20 6e 6f 74 65 20 74  |ion. Also note t|
00001f60  68 65 20 75 73 65 20 6f  66 0a 23 20 6f 70 74 69  |he use of.# opti|
00001f70  6f 6e 73 20 69 6e 20 74  68 65 20 6d 61 74 63 68  |ons in the match|
00001f80  20 6c 69 6e 65 73 2e 0a  0a 24 20 6e 6f 70 61 74  | lines...$ nopat|
00001f90  68 20 6e 6f 65 78 74 0a  72 66 63 2a 20 20 20 20  |h noext.rfc*    |
00001fa0  20 20 20 20 20 26 66 66  66 20 69 6e 20 52 46 43  |     &fff in RFC|
00001fb0  73 0a 64 72 61 66 74 2d  2a 20 20 20 20 20 20 26  |s.draft-*      &|
00001fc0  66 66 66 20 69 6e 20 49  45 4e 73 0a 0a 0a 48 6f  |fff in IENs...Ho|
00001fd0  70 65 66 75 6c 6c 79 20  74 68 69 73 20 63 6f 6d  |pefully this com|
00001fe0  6d 65 6e 74 65 64 20 65  78 61 6d 70 6c 65 20 77  |mented example w|
00001ff0  69 6c 6c 20 6e 6f 77 20  65 6e 61 62 6c 65 20 79  |ill now enable y|
00002000  6f 75 20 74 6f 20 63 72  65 61 74 65 20 79 6f 75  |ou to create you|
00002010  20 6f 77 6e 0a 61 64 64  69 74 69 6f 6e 61 6c 20  | own.additional |
00002020  65 6e 74 72 69 65 73 20  74 6f 20 73 75 69 74 65  |entries to suite|
00002030  20 79 6f 75 72 20 65 78  61 63 74 20 6e 65 65 64  | your exact need|
00002040  73 2e 0a 0a 0a 50 61 74  68 20 43 6f 6d 6d 61 6e  |s....Path Comman|
00002050  64 0a 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0a 0a  |d.------------..|
00002060  53 79 6e 74 61 78 3a 20  70 61 74 68 20 6f 66 66  |Syntax: path off|
00002070  20 7c 20 61 75 74 6f 20  7c 20 74 79 70 65 20 7c  | | auto | type ||
00002080  20 3c 6f 70 74 69 6f 6e  3e 20 5b 3c 6f 70 74 69  | <option> [<opti|
00002090  6f 6e 3e 2e 2e 2e 5d 0a  0a 22 70 61 74 68 22 20  |on>...].."path" |
000020a0  6f 6e 20 69 74 73 20 6f  77 6e 20 74 65 6c 6c 73  |on its own tells|
000020b0  20 79 6f 75 20 77 68 61  74 20 73 74 61 74 65 20  | you what state |
000020c0  74 68 65 20 70 61 74 68  20 70 72 6f 63 65 73 73  |the path process|
000020d0  6f 72 20 69 73 20 69 6e  2e 0a 53 65 70 61 72 61  |or is in..Separa|
000020e0  74 65 20 73 74 61 74 65  20 69 73 20 6d 61 69 6e  |te state is main|
000020f0  74 61 69 6e 65 64 20 66  6f 72 20 65 61 63 68 20  |tained for each |
00002100  61 63 74 69 76 65 20 46  54 50 20 63 6c 69 65 6e  |active FTP clien|
00002110  74 20 73 65 73 73 69 6f  6e 2e 0a 0a 22 70 61 74  |t session..."pat|
00002120  68 20 6f 66 66 22 20 20  73 77 69 74 63 68 65 73  |h off"  switches|
00002130  20 74 68 65 20 70 61 74  68 20 70 72 6f 63 65 73  | the path proces|
00002140  73 6f 72 20 6f 66 66 2c  20 72 65 73 75 6c 74 20  |sor off, result |
00002150  69 6e 20 74 68 65 20 75  73 65 20 6f 66 20 74 68  |in the use of th|
00002160  65 20 6f 6c 64 0a 70 61  74 68 20 68 61 6e 64 6c  |e old.path handl|
00002170  69 6e 67 2e 0a 0a 22 70  61 74 68 20 61 75 74 6f  |ing..."path auto|
00002180  22 20 73 77 69 74 63 68  65 73 20 74 68 65 20 70  |" switches the p|
00002190  61 74 68 20 70 72 6f 63  65 73 73 6f 72 20 6f 6e  |ath processor on|
000021a0  20 61 6e 64 20 63 61 75  73 65 73 20 69 74 20 74  | and causes it t|
000021b0  6f 20 75 73 65 0a 69 6e  66 6f 72 6d 61 74 69 6f  |o use.informatio|
000021c0  6e 20 67 69 76 65 6e 20  69 6e 20 74 68 65 20 22  |n given in the "|
000021d0  50 61 74 68 45 6e 74 22  20 66 69 6c 65 20 61 73  |PathEnt" file as|
000021e0  20 64 65 73 63 72 69 62  65 64 20 61 62 6f 76 65  | described above|
000021f0  2e 0a 0a 22 70 61 74 68  20 74 79 70 65 22 20 73  |..."path type" s|
00002200  77 69 74 63 68 65 73 20  74 68 65 20 74 79 70 65  |witches the type|
00002210  20 64 65 63 6f 64 69 6e  67 20 6f 6e 6c 79 20 6f  | decoding only o|
00002220  6e 20 61 6e 64 20 63 61  75 73 65 73 20 69 74 20  |n and causes it |
00002230  74 6f 20 75 73 65 0a 69  6e 66 6f 72 6d 61 74 69  |to use.informati|
00002240  6f 6e 20 67 69 76 65 6e  20 69 6e 20 74 68 65 20  |on given in the |
00002250  22 50 61 74 68 45 6e 74  22 20 66 69 6c 65 20 61  |"PathEnt" file a|
00002260  73 20 64 65 73 63 72 69  62 65 64 20 61 62 6f 76  |s described abov|
00002270  65 2e 0a 0a 22 70 61 74  68 20 72 6f 73 22 20 20  |e..."path ros"  |
00002280  63 61 75 73 65 73 20 74  68 65 20 70 61 74 68 20  |causes the path |
00002290  70 72 6f 63 65 73 73 6f  72 20 74 6f 20 70 72 65  |processor to pre|
000022a0  63 69 73 65 6c 79 20 6d  69 72 72 6f 72 20 74 68  |cisely mirror th|
000022b0  65 20 6e 61 6d 65 0a 63  6f 6e 76 65 72 73 69 6f  |e name.conversio|
000022c0  6e 73 20 61 70 70 6c 69  65 64 20 62 79 20 74 68  |ns applied by th|
000022d0  65 20 75 6e 69 78 20 6d  6f 64 65 20 69 6e 20 21  |e unix mode in !|
000022e0  54 43 50 49 50 27 73 20  46 54 50 20 73 65 72 76  |TCPIP's FTP serv|
000022f0  65 72 2e 20 54 68 69 73  20 6d 6f 64 65 0a 69 73  |er. This mode.is|
00002300  20 6d 6f 73 74 20 75 73  65 66 75 6c 20 77 68 65  | most useful whe|
00002310  6e 20 63 6f 6e 6e 65 63  74 65 64 20 74 6f 20 61  |n connected to a|
00002320  20 21 54 43 50 49 50 20  76 32 2e 30 32 20 46 54  | !TCPIP v2.02 FT|
00002330  50 20 73 65 72 76 65 72  20 61 6e 64 20 77 61 6e  |P server and wan|
00002340  74 20 74 6f 0a 75 73 65  20 22 6d 67 65 74 22 20  |t to.use "mget" |
00002350  74 6f 20 74 72 61 6e 73  66 65 72 20 63 6f 6d 70  |to transfer comp|
00002360  6c 65 74 65 20 64 69 72  65 63 74 6f 72 79 20 68  |lete directory h|
00002370  69 65 72 61 72 63 68 69  65 73 20 69 6e 74 61 63  |ierarchies intac|
00002380  74 2e 0a 0a 22 70 61 74  68 20 3c 6f 70 74 69 6f  |t..."path <optio|
00002390  6e 3e 20 5b 3c 6f 70 74  69 6f 6e 3e 2e 2e 2e 5d  |n> [<option>...]|
000023a0  22 20 70 72 65 73 65 74  73 20 61 20 73 65 74 20  |" presets a set |
000023b0  6f 66 20 6f 70 74 69 6f  6e 73 20 69 6e 64 65 70  |of options indep|
000023c0  65 6e 64 61 6e 74 6c 79  20 6f 66 0a 74 68 65 20  |endantly of.the |
000023d0  50 61 74 68 45 6e 74 20  66 69 6c 65 20 74 6f 20  |PathEnt file to |
000023e0  62 65 20 61 70 70 6c 69  65 64 20 74 6f 20 73 75  |be applied to su|
000023f0  62 73 65 71 75 65 6e 63  65 20 22 67 65 74 22 20  |bsequence "get" |
00002400  6f 70 65 72 61 74 69 6f  6e 73 2e 0a 0a 54 68 65  |operations...The|
00002410  20 6f 70 74 69 6f 6e 20  67 69 76 65 6e 20 61 72  | option given ar|
00002420  65 20 65 78 61 63 74 6c  79 20 61 73 20 70 65 72  |e exactly as per|
00002430  20 61 20 50 61 74 68 45  6e 74 20 66 69 6c 65 20  | a PathEnt file |
00002440  6f 70 74 69 6f 6e 73 20  6c 69 6e 65 2c 20 62 75  |options line, bu|
00002450  74 20 79 6f 75 0a 64 6f  6e 74 20 6e 65 65 64 20  |t you.dont need |
00002460  74 6f 20 70 72 65 66 69  78 20 77 69 74 68 20 74  |to prefix with t|
00002470  68 65 20 22 24 22 20 61  6e 64 20 69 6e 20 66 61  |he "$" and in fa|
00002480  63 74 20 79 6f 75 20 6d  75 73 74 20 6e 6f 74 2e  |ct you must not.|
00002490  0a 0a 45 78 61 6d 70 6c  65 20 61 73 20 75 73 65  |..Example as use|
000024a0  64 20 77 68 65 6e 20 66  65 74 63 68 69 6e 67 20  |d when fetching |
000024b0  61 20 74 68 65 20 65 6e  74 69 72 65 20 63 6f 6e  |a the entire con|
000024c0  74 65 6e 74 73 20 6f 66  20 61 20 43 20 73 6f 75  |tents of a C sou|
000024d0  72 72 63 65 0a 64 69 72  65 63 74 6f 72 79 3a 0a  |rrce.directory:.|
000024e0  0a 70 61 74 68 20 6e 6f  63 61 73 65 20 72 65 76  |.path nocase rev|
000024f0  31 65 78 74 20 69 6e 20  3c 46 54 50 24 44 69 72  |1ext in <FTP$Dir|
00002500  3e 2e 53 6f 75 72 63 65  20 74 79 70 65 20 54 65  |>.Source type Te|
00002510  78 74 0a 0a 28 53 65 65  20 22 62 61 74 63 68 22  |xt..(See "batch"|
00002520  20 63 6f 6d 6d 61 6e 64  20 66 6f 72 20 61 20 72  | command for a r|
00002530  65 61 6c 20 69 6e 2d 63  6f 6e 74 65 78 74 20 65  |eal in-context e|
00002540  78 61 6d 70 6c 65 29 0a  0a 4e 6f 74 65 73 3a 0a  |xample)..Notes:.|
00002550  0a 54 68 65 20 22 69 6e  20 3c 64 69 72 3e 22 20  |.The "in <dir>" |
00002560  6f 70 74 69 6f 6e 20 68  61 73 20 61 20 66 75 6c  |option has a ful|
00002570  6c 20 6e 61 6d 65 20 73  70 65 63 69 66 69 65 64  |l name specified|
00002580  20 61 73 20 74 68 65 20  67 69 76 65 6e 20 64 69  | as the given di|
00002590  72 65 63 74 6f 72 79 0a  69 6e 20 74 68 69 73 20  |rectory.in this |
000025a0  63 61 73 65 20 69 73 20  6e 6f 74 20 74 72 65 61  |case is not trea|
000025b0  74 65 64 20 61 73 20 61  20 73 75 62 64 69 72 65  |ted as a subdire|
000025c0  63 74 6f 72 79 20 6f 66  20 61 20 73 70 65 63 69  |ctory of a speci|
000025d0  66 69 65 64 20 72 6f 6f  74 0a 64 69 72 65 63 74  |fied root.direct|
000025e0  6f 72 79 2e 0a 0a 54 68  65 20 70 61 74 68 20 70  |ory...The path p|
000025f0  72 6f 63 65 73 73 6f 72  2c 20 77 68 65 6e 20 61  |rocessor, when a|
00002600  63 74 69 76 65 2c 20 77  69 6c 6c 20 61 6c 6c 77  |ctive, will allw|
00002610  61 79 73 20 62 65 20 61  62 6c 65 20 74 6f 20 64  |ays be able to d|
00002620  65 63 6f 64 65 20 52 49  53 43 20 4f 53 0a 66 69  |ecode RISC OS.fi|
00002630  6c 65 74 79 70 65 20 6e  61 6d 65 20 65 78 74 65  |letype name exte|
00002640  6e 73 69 6f 6e 73 20 61  73 20 61 70 70 65 6e 64  |nsions as append|
00002650  65 64 20 62 79 20 21 54  43 50 49 50 27 73 20 46  |ed by !TCPIP's F|
00002660  54 50 20 73 65 72 76 65  72 20 69 6e 20 75 6e 69  |TP server in uni|
00002670  78 0a 6d 6f 64 65 2e 20  0a 0a 48 6f 77 65 76 65  |x.mode. ..Howeve|
00002680  72 2c 20 69 6e 20 6f 72  64 65 72 20 74 6f 20 65  |r, in order to e|
00002690  6e 73 75 72 65 20 70 61  74 68 73 20 61 72 65 20  |nsure paths are |
000026a0  6b 65 70 74 20 65 78 61  63 74 6c 79 20 61 73 20  |kept exactly as |
000026b0  6f 6e 20 74 68 65 20 73  65 72 76 65 72 2c 20 75  |on the server, u|
000026c0  73 65 0a 74 68 65 20 22  70 61 74 68 20 72 6f 73  |se.the "path ros|
000026d0  22 20 63 6f 6d 6d 61 6e  64 2e 0a 0a 0a 0a 42 61  |" command.....Ba|
000026e0  74 63 68 20 46 54 50 0a  2d 2d 2d 2d 2d 2d 2d 2d  |tch FTP.--------|
000026f0  2d 0a 0a 2a 20 4e 6f 74  65 20 74 6f 20 64 65 6d  |-..* Note to dem|
00002700  6f 6e 20 75 73 65 72 73  3a 20 74 68 69 73 20 69  |on users: this i|
00002710  73 20 6e 6f 74 20 74 6f  20 62 65 20 63 6f 6e 66  |s not to be conf|
00002720  75 73 65 64 20 77 69 74  68 20 74 68 65 20 42 61  |used with the Ba|
00002730  74 63 68 20 46 54 50 0a  73 65 72 76 69 63 65 20  |tch FTP.service |
00002740  74 68 61 74 20 64 65 6d  6f 6e 20 6f 66 66 65 72  |that demon offer|
00002750  2e 20 54 68 69 73 20 69  73 20 73 6f 6d 65 74 68  |. This is someth|
00002760  69 6e 67 20 72 61 74 68  65 72 20 64 69 66 66 65  |ing rather diffe|
00002770  72 65 6e 74 2c 20 74 68  6f 75 67 68 20 74 68 65  |rent, though the|
00002780  0a 62 61 74 63 68 20 66  74 70 20 66 61 63 69 6c  |.batch ftp facil|
00002790  69 74 79 20 61 73 20 70  72 6f 76 69 64 65 64 20  |ity as provided |
000027a0  62 79 20 74 68 69 73 20  63 6c 69 65 6e 74 20 63  |by this client c|
000027b0  61 6e 20 62 65 20 2a 76  65 72 79 2a 20 75 73 65  |an be *very* use|
000027c0  66 75 6c 6c 79 0a 75 73  65 64 20 66 6f 72 20 66  |fully.used for f|
000027d0  65 74 63 68 69 6e 67 20  66 69 6c 65 73 20 66 72  |etching files fr|
000027e0  6f 6d 20 79 6f 75 72 20  70 72 69 76 61 74 65 20  |om your private |
000027f0  62 61 74 63 68 20 64 69  72 65 63 74 6f 72 79 20  |batch directory |
00002800  6f 6e 20 64 65 6d 6f 6e  2e 0a 0a 42 61 74 63 68  |on demon...Batch|
00002810  20 46 54 50 20 69 73 20  61 20 76 65 72 79 20 73  | FTP is a very s|
00002820  69 6d 70 6c 65 20 66 61  63 69 6c 69 74 79 20 74  |imple facility t|
00002830  6f 20 61 6c 6c 6f 77 20  61 6e 20 75 6e 6c 69 6d  |o allow an unlim|
00002840  69 74 65 64 20 6c 65 6e  67 74 68 20 6c 69 73 74  |ited length list|
00002850  20 6f 66 0a 61 6e 79 20  46 54 50 20 73 65 73 73  | of.any FTP sess|
00002860  69 6f 6e 20 63 6f 6d 6d  61 6e 64 73 20 28 65 78  |ion commands (ex|
00002870  65 70 74 20 6f 66 20 63  6f 75 72 73 65 20 74 68  |ept of course th|
00002880  65 20 62 61 74 63 68 20  63 6f 6d 6d 61 6e 64 29  |e batch command)|
00002890  20 74 6f 20 62 65 20 70  6c 61 63 65 0a 69 6e 20  | to be place.in |
000028a0  61 20 66 69 6c 65 20 77  68 69 63 68 20 69 73 20  |a file which is |
000028b0  72 65 61 64 20 77 69 74  68 20 65 61 63 68 20 63  |read with each c|
000028c0  6f 6d 6d 61 6e 64 20 62  65 69 6e 67 20 65 78 65  |ommand being exe|
000028d0  63 75 74 65 64 20 75 70  6f 6e 20 63 6f 6d 70 6c  |cuted upon compl|
000028e0  65 74 69 6f 6e 0a 6f 66  20 74 68 65 20 70 72 65  |etion.of the pre|
000028f0  76 69 6f 75 73 20 6f 6e  65 2e 0a 0a 49 6e 20 21  |vious one...In !|
00002900  54 43 50 49 50 20 76 32  2e 30 66 20 6f 6e 77 61  |TCPIP v2.0f onwa|
00002910  72 64 73 2c 20 64 69 61  6c 6f 67 75 65 20 73 63  |rds, dialogue sc|
00002920  72 69 70 74 73 20 61 70  70 65 6e 64 65 64 20 74  |ripts appended t|
00002930  6f 20 61 6e 20 66 74 70  20 6f 72 20 74 65 72 6d  |o an ftp or term|
00002940  69 6e 61 6c 0a 63 6f 6d  6d 61 6e 64 20 63 6f 75  |inal.command cou|
00002950  6c 64 20 62 65 20 75 73  65 64 20 74 6f 20 70 61  |ld be used to pa|
00002960  72 74 69 61 6c 6c 79 20  61 63 68 69 65 76 65 20  |rtially achieve |
00002970  74 68 65 20 65 66 66 65  63 74 20 6f 66 20 62 61  |the effect of ba|
00002980  74 63 68 20 66 74 70 2c  20 62 75 74 0a 63 72 65  |tch ftp, but.cre|
00002990  61 74 69 6e 67 20 73 75  63 68 20 73 63 72 69 70  |ating such scrip|
000029a0  74 73 20 77 61 73 20 72  61 74 68 65 72 20 66 69  |ts was rather fi|
000029b0  64 64 6c 79 20 66 6f 72  20 73 75 63 68 20 61 20  |ddly for such a |
000029c0  63 6f 6d 6d 6f 6e 20 6f  70 65 72 61 74 69 6f 6e  |common operation|
000029d0  2e 0a 0a 4e 6f 77 20 74  68 61 74 20 62 61 74 63  |...Now that batc|
000029e0  68 20 66 74 70 20 69 73  20 61 76 61 69 6c 61 62  |h ftp is availab|
000029f0  6c 65 20 70 72 6f 70 65  72 6c 79 2c 20 79 6f 75  |le properly, you|
00002a00  20 63 61 6e 20 75 73 65  66 75 6c 6c 79 20 75 73  | can usefully us|
00002a10  65 20 64 69 61 6c 6f 67  75 65 73 0a 61 70 70 65  |e dialogues.appe|
00002a20  6e 64 65 20 74 6f 20 66  74 70 20 63 6f 6d 6d 61  |nde to ftp comma|
00002a30  6e 64 73 20 74 6f 20 73  74 61 72 74 20 6f 66 66  |nds to start off|
00002a40  20 61 20 62 61 74 63 68  20 6f 70 65 72 61 74 69  | a batch operati|
00002a50  6f 6e 2e 20 28 53 65 65  20 65 6e 64 20 66 6f 72  |on. (See end for|
00002a60  0a 64 65 74 61 69 6c 73  2e 29 0a 0a 53 79 6e 79  |.details.)..Syny|
00002a70  61 78 3a 20 73 6f 75 72  63 65 20 3c 66 69 6c 65  |ax: source <file|
00002a80  6e 61 6d 65 3e 0a 0a 45  69 74 68 65 72 20 61 20  |name>..Either a |
00002a90  66 75 6c 6c 20 70 61 74  68 6e 61 6d 65 20 6d 61  |full pathname ma|
00002aa0  79 20 62 65 20 67 69 76  65 6e 2c 20 28 66 6f 72  |y be given, (for|
00002ab0  20 65 67 2c 20 61 64 66  73 3a 3a 34 2e 24 2e 2e  | eg, adfs::4.$..|
00002ac0  2e 29 20 6f 72 20 61 0a  66 69 6c 65 6e 61 6d 65  |.) or a.filename|
00002ad0  20 6d 61 79 20 62 65 20  67 69 76 65 6e 2e 20 49  | may be given. I|
00002ae0  6e 20 74 68 65 20 63 61  73 65 20 6f 66 20 61 20  |n the case of a |
00002af0  66 69 6c 65 6e 61 6d 65  2c 20 76 61 72 69 6f 75  |filename, variou|
00002b00  73 20 70 6c 61 63 65 73  20 61 72 65 0a 73 65 61  |s places are.sea|
00002b10  72 63 68 65 64 20 77 68  65 6e 20 6c 6f 6f 6b 69  |rched when looki|
00002b20  6e 67 20 66 6f 72 20 74  68 65 20 73 70 65 63 69  |ng for the speci|
00002b30  66 69 65 64 20 66 69 6c  65 20 61 73 20 66 6f 6c  |fied file as fol|
00002b40  6c 6f 77 73 3a 0a 0a 21  54 43 50 49 50 55 73 65  |lows:..!TCPIPUse|
00002b50  72 2e 53 63 72 69 70 74  73 0a 21 54 43 50 49 50  |r.Scripts.!TCPIP|
00002b60  55 73 65 72 0a 21 54 43  50 49 50 55 73 65 72 2e  |User.!TCPIPUser.|
00002b70  5e 0a 24 20 6f 6e 20 63  75 72 72 65 6e 74 20 64  |^.$ on current d|
00002b80  72 69 76 65 0a 40 20 28  74 68 65 20 63 69 72 72  |rive.@ (the cirr|
00002b90  65 63 74 20 64 69 72 65  63 74 6f 72 79 29 0a 0a  |ect directory)..|
00002ba0  49 66 20 69 74 20 63 61  6e 74 20 62 65 20 66 6f  |If it cant be fo|
00002bb0  75 6e 64 2c 20 74 68 65  6e 20 6f 62 76 69 6f 75  |und, then obviou|
00002bc0  73 6c 79 20 61 6e 20 65  72 72 6f 72 20 69 73 20  |sly an error is |
00002bd0  67 69 76 65 6e 2e 0a 0a  41 20 62 61 74 63 68 20  |given...A batch |
00002be0  69 73 20 73 69 6d 70 6c  79 20 61 20 66 69 6c 65  |is simply a file|
00002bf0  20 63 6f 6e 74 61 69 6e  69 6e 67 20 61 20 73 65  | containing a se|
00002c00  71 75 65 6e 63 65 20 6f  66 20 76 61 6c 69 64 20  |quence of valid |
00002c10  69 6e 2d 73 65 73 73 69  6f 6e 20 46 54 50 0a 63  |in-session FTP.c|
00002c20  6f 6d 6d 61 6e 64 73 2c  20 6f 6e 20 70 65 72 20  |ommands, on per |
00002c30  6c 69 6e 65 2c 20 65 78  65 70 74 20 6f 66 20 63  |line, exept of c|
00002c40  6f 75 72 73 65 20 74 68  65 20 22 62 61 74 63 68  |ourse the "batch|
00002c50  22 20 63 6f 6d 6d 61 6e  64 20 69 74 73 65 6c 66  |" command itself|
00002c60  2e 20 55 70 6f 6e 0a 63  6f 6d 70 6c 65 74 69 6f  |. Upon.completio|
00002c70  6e 20 6f 66 20 65 61 63  68 20 63 6f 6d 6d 61 6e  |n of each comman|
00002c80  64 2c 20 74 68 65 20 6e  65 78 74 20 63 6f 6d 6d  |d, the next comm|
00002c90  61 6e 64 20 69 73 20 72  65 61 64 20 61 6e 64 20  |and is read and |
00002ca0  65 78 65 63 75 74 65 64  20 75 6e 74 69 6c 0a 74  |executed until.t|
00002cb0  68 65 20 65 6e 64 20 6f  66 20 74 68 65 20 66 69  |he end of the fi|
00002cc0  6c 65 2e 0a 0a 59 6f 75  20 77 69 6c 6c 20 6e 6f  |le...You will no|
00002cd0  74 69 63 65 20 74 68 61  74 20 74 68 65 20 63 6f  |tice that the co|
00002ce0  6d 6d 61 6e 64 73 20 61  70 70 65 61 72 20 69 6e  |mmands appear in|
00002cf0  20 74 68 65 20 46 54 50  20 73 65 73 73 69 6f 6e  | the FTP session|
00002d00  20 77 69 6e 64 6f 77 20  69 6e 0a 74 68 65 20 62  | window in.the b|
00002d10  6f 6c 64 20 61 74 72 72  69 62 75 74 65 20 63 6f  |old atrribute co|
00002d20  6c 6f 75 72 20 61 73 20  74 68 65 79 20 61 72 65  |lour as they are|
00002d30  20 62 65 69 6e 67 20 65  78 65 63 75 74 65 64 2e  | being executed.|
00002d40  20 41 6c 73 6f 20 74 68  65 20 46 54 50 0a 70 72  | Also the FTP.pr|
00002d50  6f 6d 70 74 20 63 68 61  6e 67 65 73 20 74 6f 20  |ompt changes to |
00002d60  22 62 61 74 63 68 3e 20  22 20 77 68 69 6c 65 20  |"batch> " while |
00002d70  61 20 62 61 74 63 68 20  66 69 6c 65 20 69 73 20  |a batch file is |
00002d80  62 65 69 6e 67 20 70 72  6f 63 65 73 73 65 64 2e  |being processed.|
00002d90  0a 0a 41 20 62 61 74 63  68 20 66 69 6c 65 20 63  |..A batch file c|
00002da0  61 6e 20 62 65 20 61 62  6f 72 74 65 64 20 69 6e  |an be aborted in|
00002db0  20 74 68 65 20 73 61 6d  65 20 6d 61 6e 6e 65 72  | the same manner|
00002dc0  20 61 73 20 61 20 67 65  74 20 63 6f 6d 6d 61 6e  | as a get comman|
00002dd0  64 2c 20 62 79 0a 65 6e  74 65 72 69 6e 67 20 22  |d, by.entering "|
00002de0  61 62 6f 72 74 22 2e 20  54 68 69 73 20 77 69 6c  |abort". This wil|
00002df0  6c 20 74 65 72 6d 69 6e  61 74 65 20 74 68 65 20  |l terminate the |
00002e00  74 72 61 6e 66 65 72 20  69 6e 20 70 72 6f 67 72  |tranfer in progr|
00002e10  65 73 73 20 61 6e 64 20  63 6c 6f 73 65 0a 74 68  |ess and close.th|
00002e20  65 20 62 61 74 63 68 20  66 69 6c 65 2e 0a 0a 41  |e batch file...A|
00002e30  6e 20 65 78 61 6d 70 6c  65 3a 0a 0a 23 20 53 65  |n example:..# Se|
00002e40  74 20 72 65 71 75 69 72  65 64 20 70 61 74 68 20  |t required path |
00002e50  6f 70 74 69 6f 6e 73 0a  70 61 74 68 20 6e 6f 63  |options.path noc|
00002e60  61 73 65 20 72 65 76 31  65 78 74 20 69 6e 20 3c  |ase rev1ext in <|
00002e70  46 54 50 24 44 69 72 3e  2e 53 6f 75 72 63 65 20  |FTP$Dir>.Source |
00002e80  74 79 70 65 20 54 65 78  74 0a 0a 23 20 53 65 74  |type Text..# Set|
00002e90  20 72 65 71 75 69 72 65  64 20 72 65 6d 6f 74 65  | required remote|
00002ea0  20 64 69 72 65 63 74 6f  72 79 0a 63 64 20 2f 70  | directory.cd /p|
00002eb0  75 62 2f 4e 65 74 42 53  44 2f 4e 65 74 42 53 44  |ub/NetBSD/NetBSD|
00002ec0  2d 63 75 72 72 65 6e 74  2f 73 72 63 2f 67 6e 75  |-current/src/gnu|
00002ed0  0a 0a 23 20 67 65 74 20  65 61 63 68 20 66 69 6c  |..# get each fil|
00002ee0  65 2c 20 6c 65 74 74 69  6e 67 20 74 68 65 20 70  |e, letting the p|
00002ef0  61 74 68 20 70 72 6f 63  65 73 73 6f 72 20 74 61  |ath processor ta|
00002f00  6b 65 20 63 61 72 65 20  6f 66 20 74 68 65 0a 23  |ke care of the.#|
00002f10  20 64 65 74 61 69 6c 73  2e 0a 67 65 74 20 74 61  | details..get ta|
00002f20  72 2f 4d 61 6b 65 66 69  6c 65 0a 67 65 74 20 74  |r/Makefile.get t|
00002f30  61 72 2f 4d 61 6b 65 66  69 6c 65 2e 67 6e 75 0a  |ar/Makefile.gnu.|
00002f40  67 65 74 20 74 61 72 2f  52 45 41 44 4d 45 0a 67  |get tar/README.g|
00002f50  65 74 20 74 61 72 2f 62  75 66 66 65 72 2e 63 0a  |et tar/buffer.c.|
00002f60  67 65 74 20 74 61 72 2f  63 72 65 61 74 65 2e 63  |get tar/create.c|
00002f70  0a 67 65 74 20 74 61 72  2f 64 69 66 66 61 72 63  |.get tar/diffarc|
00002f80  68 2e 63 0a 67 65 74 20  74 61 72 2f 65 78 74 72  |h.c.get tar/extr|
00002f90  61 63 74 2e 63 0a 67 65  74 20 74 61 72 2f 66 6e  |act.c.get tar/fn|
00002fa0  6d 61 74 63 68 2e 63 0a  67 65 74 20 74 61 72 2f  |match.c.get tar/|
00002fb0  66 6e 6d 61 74 63 68 2e  68 0a 67 65 74 20 74 61  |fnmatch.h.get ta|
00002fc0  72 2f 67 65 74 64 61 74  65 2e 79 0a 67 65 74 20  |r/getdate.y.get |
00002fd0  74 61 72 2f 67 65 74 6f  6c 64 6f 70 74 2e 63 0a  |tar/getoldopt.c.|
00002fe0  67 65 74 20 74 61 72 2f  67 65 74 6f 70 74 2e 63  |get tar/getopt.c|
00002ff0  0a 67 65 74 20 74 61 72  2f 67 65 74 6f 70 74 2e  |.get tar/getopt.|
00003000  68 0a 0a 0a 54 6f 20 67  65 74 20 74 68 65 20 62  |h...To get the b|
00003010  65 73 74 20 6f 75 74 20  6f 66 20 62 61 74 63 68  |est out of batch|
00003020  20 66 74 70 2c 20 69 74  20 69 73 20 61 64 76 69  | ftp, it is advi|
00003030  73 61 62 6c 65 20 74 6f  20 67 65 74 20 64 69 72  |sable to get dir|
00003040  65 63 74 6f 72 79 0a 6c  69 73 74 69 6e 67 73 20  |ectory.listings |
00003050  6f 66 20 64 69 72 65 63  74 6f 72 69 65 73 20 6f  |of directories o|
00003060  66 20 69 6e 74 65 72 65  73 74 20 66 72 6f 6d 20  |f interest from |
00003070  46 54 50 20 73 69 74 65  73 20 6f 66 20 69 6e 74  |FTP sites of int|
00003080  65 72 65 73 74 20 75 73  69 6e 67 20 74 68 65 0a  |erest using the.|
00003090  22 64 69 72 20 2e 20 3c  6c 6f 63 61 6c 20 66 69  |"dir . <local fi|
000030a0  6c 65 20 6e 61 6d 65 3e  22 20 63 6f 6d 6d 61 6e  |le name>" comman|
000030b0  64 2c 20 61 6e 64 20 74  68 65 6e 20 74 6f 20 65  |d, and then to e|
000030c0  64 69 74 20 74 68 69 73  20 6c 69 73 74 69 6e 67  |dit this listing|
000030d0  20 75 73 69 6e 67 0a 74  68 65 20 6d 61 63 72 6f  | using.the macro|
000030e0  20 66 61 63 69 6c 69 74  69 65 73 20 69 6e 20 21  | facilities in !|
000030f0  5a 61 70 20 74 6f 20 63  72 65 61 74 65 20 61 20  |Zap to create a |
00003100  6c 69 73 74 20 62 61 74  63 68 20 66 69 6c 65 20  |list batch file |
00003110  63 6f 6e 74 61 69 6e 69  6e 67 20 74 68 65 0a 72  |containing the.r|
00003120  65 71 75 69 72 65 64 20  70 61 74 68 2c 20 63 64  |equired path, cd|
00003130  20 61 6e 64 20 67 65 74  20 63 6f 6d 6d 61 6e 64  | and get command|
00003140  73 20 6f 66 66 2d 6c 69  6e 65 2e 20 4e 65 78 74  |s off-line. Next|
00003150  20 74 69 6d 65 20 79 6f  75 20 63 6f 6e 6e 65 63  | time you connec|
00003160  74 2c 20 46 54 50 0a 74  6f 20 74 68 65 20 73 69  |t, FTP.to the si|
00003170  74 65 28 73 29 20 61 6e  64 20 65 6e 74 65 72 20  |te(s) and enter |
00003180  74 68 65 20 62 61 74 63  68 20 63 6f 6d 6d 61 6e  |the batch comman|
00003190  64 2e 0a 0a 41 6c 73 6f  20 69 73 20 70 6f 73 73  |d...Also is poss|
000031a0  69 62 6c 65 20 74 6f 20  67 65 74 20 74 68 65 20  |ible to get the |
000031b0  46 54 50 20 73 65 73 73  69 6f 6e 20 61 6e 64 20  |FTP session and |
000031c0  62 61 74 63 68 20 72 65  71 75 65 73 74 20 66 75  |batch request fu|
000031d0  6c 6c 79 0a 61 75 74 6f  6d 61 74 65 64 20 62 79  |lly.automated by|
000031e0  20 75 73 69 6e 67 20 61  20 66 74 70 20 63 6f 6e  | using a ftp con|
000031f0  6e 65 63 74 20 64 69 61  6c 6f 67 75 65 20 73 69  |nect dialogue si|
00003200  6d 69 6c 61 72 20 74 6f  20 74 68 65 20 66 6f 6c  |milar to the fol|
00003210  6c 6f 77 69 6e 67 3a 0a  0a 66 74 70 20 66 74 70  |lowing:..ftp ftp|
00003220  2e 7b 64 6f 6d 61 69 6e  7d 20 5c 20 40 44 65 6d  |.{domain} \ @Dem|
00003230  6f 6e 46 54 50 20 59 45  31 30 30 20 59 56 32 34  |onFTP YE100 YV24|
00003240  20 5c 20 0a 22 6e 61 6d  65 3a 20 22 20 22 61 6e  | \ ."name: " "an|
00003250  6f 6e 79 6d 6f 75 73 5c  72 5c 6e 22 20 22 61 73  |onymous\r\n" "as|
00003260  73 77 6f 72 64 3a 20 22  20 22 7b 66 74 70 75 73  |sword: " "{ftpus|
00003270  65 72 7d 40 7b 68 6f 73  74 7d 5c 72 5c 6e 22 20  |er}@{host}\r\n" |
00003280  0a 22 66 74 70 3e 20 22  20 22 62 69 6e 5c 72 5c  |."ftp> " "bin\r\|
00003290  6e 22 20 22 66 74 70 3e  20 22 20 22 68 61 73 68  |n" "ftp> " "hash|
000032a0  20 31 5c 72 5c 6e 22 0a  22 66 74 70 3e 20 22 20  | 1\r\n"."ftp> " |
000032b0  22 73 6f 75 72 63 65 20  62 61 74 63 68 66 69 6c  |"source batchfil|
000032c0  65 5c 72 5c 6e 22 20 22  66 74 70 3e 20 22 20 22  |e\r\n" "ftp> " "|
000032d0  71 75 69 74 5c 72 5c 6e  22 0a 0a 28 4c 69 6e 65  |quit\r\n"..(Line|
000032e0  20 69 73 20 61 72 74 69  66 69 63 69 61 6c 6c 79  | is artificially|
000032f0  20 62 72 6f 6b 65 6e 20  66 6f 72 20 6c 65 67 69  | broken for legi|
00003300  62 69 6c 69 74 79 29 0a  0a 61 6e 64 20 69 6e 63  |bility)..and inc|
00003310  6c 75 64 69 6e 67 20 74  68 69 73 20 63 6f 6d 6d  |luding this comm|
00003320  61 6e 64 20 61 74 20 74  68 65 20 65 6e 64 20 6f  |and at the end o|
00003330  66 20 74 68 65 20 61 75  74 6f 20 65 78 65 63 20  |f the auto exec |
00003340  66 6f 72 20 61 20 63 6f  6d 70 6c 65 74 6c 79 0a  |for a completly.|
00003350  75 6e 2d 61 74 74 65 6e  64 65 64 20 66 74 70 20  |un-attended ftp |
00003360  73 65 73 73 69 6f 6e 2e  0a 0a 4e 61 74 75 72 61  |session...Natura|
00003370  6c 6c 79 2c 20 61 20 6e  75 6d 62 65 72 20 6f 66  |lly, a number of|
00003380  20 73 69 6d 69 6c 61 72  20 63 6f 6d 6d 61 6e 64  | similar command|
00003390  73 20 63 61 6e 20 62 65  20 69 6e 63 6c 75 64 65  |s can be include|
000033a0  64 20 66 6f 72 20 6d 75  6c 74 69 70 6c 65 0a 73  |d for multiple.s|
000033b0  69 6d 69 6c 74 61 6e 65  6f 75 73 20 61 75 74 6f  |imiltaneous auto|
000033c0  6d 61 74 61 74 65 64 20  66 74 70 20 73 65 65 73  |matated ftp sees|
000033d0  69 6f 6e 73 2e 0a 0a 4e  6f 74 65 20 74 68 61 74  |ions...Note that|
000033e0  20 74 68 65 20 22 71 75  69 74 22 20 63 6f 6d 6d  | the "quit" comm|
000033f0  61 6e 20 69 73 20 70 6c  61 63 65 64 20 69 6e 20  |an is placed in |
00003400  74 68 65 20 64 69 61 6c  6f 71 75 65 20 72 61 74  |the dialoque rat|
00003410  68 65 72 20 74 68 61 6e  20 74 68 65 0a 62 61 74  |her than the.bat|
00003420  63 68 20 66 69 6c 65 20  73 6f 20 74 68 61 74 20  |ch file so that |
00003430  69 66 20 74 68 65 20 62  61 74 63 68 20 66 69 6c  |if the batch fil|
00003440  65 20 66 61 69 6c 73 20  66 6f 72 20 61 6e 79 20  |e fails for any |
00003450  72 65 61 73 6f 6e 2c 20  74 68 65 20 71 75 69 74  |reason, the quit|
00003460  0a 63 6f 6d 6d 61 6e 64  20 77 69 6c 6c 20 73 74  |.command will st|
00003470  69 6c 6c 20 67 65 74 20  65 78 65 63 75 74 65 64  |ill get executed|
00003480  2c 20 61 6c 6c 6f 77 69  6e 67 20 74 68 65 20 74  |, allowing the t|
00003490  63 70 20 68 61 6e 67 75  70 20 74 69 6d 65 72 20  |cp hangup timer |
000034a0  74 6f 0a 63 6f 6e 74 69  6e 75 65 20 74 6f 20 74  |to.continue to t|
000034b0  72 69 67 67 65 72 20 61  20 73 68 75 74 64 6f 77  |rigger a shutdow|
000034c0  6e 20 61 6e 64 20 65 78  69 74 2e 0a 0a 0a 4d 47  |n and exit....MG|
000034d0  45 54 20 63 6f 6d 6d 61  6e 64 0a 2d 2d 2d 2d 2d  |ET command.-----|
000034e0  2d 2d 2d 2d 2d 2d 2d 0a  0a 54 68 69 73 2c 20 6c  |-------..This, l|
000034f0  69 6b 65 20 22 67 65 74  22 20 69 73 20 75 73 65  |ike "get" is use|
00003500  64 20 66 6f 72 20 72 65  74 72 65 69 76 65 20 66  |d for retreive f|
00003510  69 6c 65 73 20 66 72 6f  6d 20 61 6e 20 46 54 50  |iles from an FTP|
00003520  20 73 65 72 76 65 72 2e  20 55 6e 6c 69 6b 65 0a  | server. Unlike.|
00003530  22 67 65 74 22 2c 20 22  6d 67 65 74 22 20 63 61  |"get", "mget" ca|
00003540  6e 20 62 65 20 67 69 76  65 6e 20 61 20 73 68 6f  |n be given a sho|
00003550  72 74 20 6c 69 73 74 20  6f 66 20 77 69 6c 64 63  |rt list of wildc|
00003560  61 72 64 65 64 20 6e 61  6d 65 73 20 74 68 61 74  |arded names that|
00003570  20 61 72 65 0a 65 61 63  68 20 65 78 70 61 6e 64  | are.each expand|
00003580  65 64 20 69 6e 74 6f 20  61 20 66 69 6c 65 20 6c  |ed into a file l|
00003590  69 73 74 2c 20 77 69 74  68 20 65 61 63 68 20 66  |ist, with each f|
000035a0  69 6c 65 20 69 6e 20 74  68 65 20 72 65 73 75 6c  |ile in the resul|
000035b0  74 69 6e 67 20 6c 69 73  74 0a 62 65 69 6e 67 20  |ting list.being |
000035c0  66 65 74 63 68 65 64 20  76 69 61 20 22 67 65 74  |fetched via "get|
000035d0  22 2e 0a 0a 53 79 78 74  61 78 3a 20 6d 67 65 74  |"...Syxtax: mget|
000035e0  20 3c 6c 69 73 74 73 70  65 63 3e 20 5b 3c 6c 69  | <listspec> [<li|
000035f0  73 74 73 70 65 63 3e 2e  2e 2e 5d 0a 0a 49 74 73  |stspec>...]..Its|
00003600  20 6f 70 65 72 61 74 69  6f 6e 20 69 73 20 65 71  | operation is eq|
00003610  75 69 76 65 6c 65 6e 74  20 74 6f 20 65 6e 74 65  |uivelent to ente|
00003620  72 69 6e 67 20 6c 73 20  3c 6c 69 73 74 73 70 65  |ring ls <listspe|
00003630  63 3e 20 66 6f 72 20 65  61 63 68 0a 3c 6c 69 73  |c> for each.<lis|
00003640  74 73 70 65 63 3e 2c 20  61 6e 64 20 74 68 65 6e  |tspec>, and then|
00003650  20 64 6f 69 6e 67 20 61  6e 20 22 67 65 74 20 3c  | doing an "get <|
00003660  66 69 6c 65 3e 22 20 66  6f 72 20 65 61 63 68 20  |file>" for each |
00003670  66 69 6c 65 6e 61 6d 65  20 72 65 74 75 72 6e 65  |filename returne|
00003680  64 2c 0a 61 6e 64 20 69  6e 20 66 61 63 74 20 74  |d,.and in fact t|
00003690  68 69 73 20 69 73 20 65  78 61 63 74 6c 79 20 77  |his is exactly w|
000036a0  68 61 74 20 69 74 20 64  6f 65 73 20 6f 6e 20 79  |hat it does on y|
000036b0  6f 75 72 20 62 65 68 61  6c 66 2c 20 61 73 20 79  |our behalf, as y|
000036c0  6f 75 20 77 69 6c 6c 20  73 65 65 0a 66 72 6f 6d  |ou will see.from|
000036d0  20 74 68 65 20 69 6e 66  6f 72 6d 61 74 69 6f 6e  | the information|
000036e0  20 64 69 73 70 6c 61 79  20 64 75 72 69 6e 67 20  | display during |
000036f0  61 6e 20 6d 67 65 74 20  6f 70 65 72 61 74 69 6f  |an mget operatio|
00003700  6e 2e 0a 0a 46 6f 72 20  65 78 61 6d 70 6c 65 2c  |n...For example,|
00003710  20 74 6f 20 66 65 74 63  68 20 74 68 65 20 65 6e  | to fetch the en|
00003720  74 69 72 65 20 63 6f 6e  74 65 6e 74 73 20 6f 66  |tire contents of|
00003730  20 74 77 6f 20 64 69 72  65 63 74 6f 72 69 65 73  | two directories|
00003740  20 6f 6e 20 61 20 73 65  72 76 65 72 0a 22 64 69  | on a server."di|
00003750  72 61 22 20 61 6e 64 20  22 64 69 72 62 22 2c 20  |ra" and "dirb", |
00003760  79 6f 75 20 63 6f 75 6c  64 20 75 73 65 20 22 6d  |you could use "m|
00003770  67 65 74 20 64 69 72 61  20 64 69 72 62 22 2e 20  |get dira dirb". |
00003780  54 6f 20 66 65 74 63 68  20 74 68 65 20 63 6f 6e  |To fetch the con|
00003790  74 65 6e 74 73 0a 6f 66  20 63 75 72 72 65 6e 74  |tents.of current|
000037a0  20 64 69 72 65 63 74 6f  72 79 2c 20 61 6e 64 20  | directory, and |
000037b0  69 6d 6d 65 64 69 61 74  65 20 73 75 62 64 69 72  |immediate subdir|
000037c0  65 63 74 6f 72 69 65 73  2c 20 75 73 65 20 22 6d  |ectories, use "m|
000037d0  67 65 74 20 2a 22 2e 0a  0a 41 6e 6f 74 68 65 72  |get *"...Another|
000037e0  20 77 61 79 20 6f 66 20  75 73 69 6e 67 20 22 6d  | way of using "m|
000037f0  67 65 74 22 20 69 73 20  74 6f 20 74 79 70 65 20  |get" is to type |
00003800  6c 73 20 61 74 20 74 68  65 20 22 66 74 70 3e 20  |ls at the "ftp> |
00003810  22 20 70 72 6f 6d 70 74  2c 20 61 6e 64 0a 74 68  |" prompt, and.th|
00003820  65 6e 20 73 65 6c 65 63  74 20 73 6f 6d 65 20 66  |en select some f|
00003830  69 6c 65 73 20 66 72 6f  6d 20 74 68 65 20 72 65  |iles from the re|
00003840  73 75 6c 74 69 6e 67 20  6c 69 73 74 69 6e 67 20  |sulting listing |
00003850  28 75 70 74 6f 20 61 72  6f 75 6e 64 20 35 30 20  |(upto around 50 |
00003860  6f 72 20 73 6f 29 0a 61  6e 64 20 74 68 65 6e 20  |or so).and then |
00003870  61 70 70 6c 79 20 74 68  65 20 70 72 65 73 65 74  |apply the preset|
00003880  20 6d 61 63 72 6f 20 6d  65 6e 75 20 22 47 65 74  | macro menu "Get|
00003890  20 66 69 6c 65 28 73 29  22 2e 0a 0a 42 65 66 6f  | file(s)"...Befo|
000038a0  72 65 20 75 73 69 6e 67  20 22 6d 67 65 74 22 2c  |re using "mget",|
000038b0  20 69 74 20 69 73 20 77  6f 72 74 68 20 65 6e 73  | it is worth ens|
000038c0  75 72 69 6e 67 20 74 68  61 74 20 73 75 69 74 61  |uring that suita|
000038d0  62 6c 65 20 70 61 74 68  20 70 72 6f 63 65 73 73  |ble path process|
000038e0  69 6e 67 0a 6f 70 74 69  6f 6e 73 20 61 72 65 20  |ing.options are |
000038f0  73 65 74 75 70 20 77 69  74 68 20 74 68 65 20 22  |setup with the "|
00003900  70 61 74 68 22 20 63 6f  6d 6d 61 6e 64 2e 0a 0a  |path" command...|
00003910  0a 51 55 4f 54 45 20 63  6f 6d 6d 61 6e 64 0a 2d  |.QUOTE command.-|
00003920  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 0a 54 68  |------------..Th|
00003930  69 73 20 61 6c 6c 6f 77  73 20 61 20 63 6f 6d 6d  |is allows a comm|
00003940  61 6e 64 20 74 6f 20 62  65 20 73 65 6e 74 20 64  |and to be sent d|
00003950  69 72 65 63 74 6c 79 20  74 6f 20 61 6e 20 46 54  |irectly to an FT|
00003960  50 20 73 65 72 76 65 72  2c 20 62 79 70 61 73 73  |P server, bypass|
00003970  69 6e 67 0a 74 68 65 20  6e 6f 72 6d 61 6c 20 63  |ing.the normal c|
00003980  6c 69 65 6e 74 20 70 72  65 2d 70 72 6f 63 65 73  |lient pre-proces|
00003990  73 69 6e 67 20 6f 66 20  63 6f 6d 6d 61 6e 64 73  |sing of commands|
000039a0  2e 0a 0a 53 79 6e 74 61  78 3a 20 71 75 6f 74 65  |...Syntax: quote|
000039b0  20 3c 63 6f 6d 6d 61 6e  64 3e 20 5b 3c 6c 6f 63  | <command> [<loc|
000039c0  61 6c 20 66 69 6c 65 20  66 6f 72 20 6c 69 73 74  |al file for list|
000039d0  69 6e 67 3e 5d 0a 0a 54  68 69 73 20 69 73 20 6d  |ing>]..This is m|
000039e0  6f 73 74 20 75 73 65 66  75 6c 20 66 6f 72 20 74  |ost useful for t|
000039f0  68 69 6e 67 73 20 6c 69  6b 65 20 73 65 72 76 65  |hings like serve|
00003a00  72 20 73 65 63 69 66 69  63 20 76 61 72 69 61 74  |r secific variat|
00003a10  69 6f 6e 73 20 6f 66 20  22 6c 73 22 0a 74 68 61  |ions of "ls".tha|
00003a20  74 20 61 72 65 20 68 61  6e 64 6c 65 64 20 6c 69  |t are handled li|
00003a30  6b 65 20 74 68 65 20 75  6e 69 78 20 22 6c 73 22  |ke the unix "ls"|
00003a40  20 63 6f 6d 6d 61 6e 64  2c 20 66 6f 72 20 65 78  | command, for ex|
00003a50  61 6d 70 6c 65 3a 0a 0a  71 75 6f 74 65 20 22 6c  |ample:..quote "l|
00003a60  73 20 2d 43 22 20 6c 69  73 74 66 69 6c 65 0a 0a  |s -C" listfile..|
00003a70  73 65 6e 64 73 20 22 6c  73 20 2d 43 22 20 74 6f  |sends "ls -C" to|
00003a80  20 74 68 65 20 73 65 72  76 65 72 2c 20 61 6e 64  | the server, and|
00003a90  20 64 69 72 65 63 74 73  20 6f 75 74 70 75 74 20  | directs output |
00003aa0  74 6f 20 74 68 65 20 6c  6f 63 61 6c 20 66 69 6c  |to the local fil|
00003ab0  65 0a 22 6c 69 73 74 66  69 6c 65 22 2e 0a 0a 4e  |e."listfile"...N|
00003ac0  6f 74 65 3a 20 61 73 20  74 68 65 20 63 6f 6d 6d  |ote: as the comm|
00003ad0  61 6e 64 20 74 6f 20 62  65 20 73 65 6e 74 20 74  |and to be sent t|
00003ae0  6f 20 74 68 65 20 73 65  72 76 65 72 20 77 69 6c  |o the server wil|
00003af0  6c 20 6f 66 74 65 6e 20  6e 65 65 64 20 74 6f 20  |l often need to |
00003b00  63 6f 6e 74 61 69 6e 0a  73 70 61 63 65 73 2c 20  |contain.spaces, |
00003b10  79 6f 75 72 20 77 69 6c  6c 20 6f 66 74 65 6e 20  |your will often |
00003b20  68 61 76 65 20 74 6f 20  65 6e 63 6c 6f 73 65 20  |have to enclose |
00003b30  74 68 65 20 63 6f 6d 6d  61 6e 64 20 69 6e 20 71  |the command in q|
00003b40  75 6f 74 65 73 20 61 73  20 61 62 6f 76 65 2e 0a  |uotes as above..|
00003b50  0a 3c 6c 69 73 74 66 69  6c 65 3e 20 73 68 6f 75  |.<listfile> shou|
00003b60  6c 64 20 6f 6e 6c 79 20  62 65 20 73 70 65 63 69  |ld only be speci|
00003b70  66 69 65 64 20 69 6e 20  73 69 74 75 74 61 74 69  |fied in situtati|
00003b80  6f 6e 73 20 77 68 65 72  65 20 6f 75 74 70 75 74  |ons where output|
00003b90  20 69 73 0a 65 78 70 65  63 74 65 64 20 76 69 61  | is.expected via|
00003ba0  20 61 20 64 61 74 61 20  63 6f 6e 6e 65 63 74 69  | a data connecti|
00003bb0  6f 6e 2e 0a 0a 0a 52 45  47 45 54 20 63 6f 6d 6d  |on....REGET comm|
00003bc0  61 6e 64 0a 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |and.------------|
00003bd0  2d 0a 0a 54 68 69 73 20  63 6f 6d 6d 61 6e 64 20  |-..This command |
00003be0  61 6c 6c 6f 77 73 20 61  20 67 65 74 20 6f 70 65  |allows a get ope|
00003bf0  72 61 74 69 6f 6e 20 74  6f 20 62 65 20 63 6f 6e  |ration to be con|
00003c00  74 69 6e 75 65 64 20 61  66 74 65 72 20 61 20 70  |tinued after a p|
00003c10  72 65 76 69 6f 75 73 20  67 65 74 0a 6f 70 65 72  |revious get.oper|
00003c20  61 74 69 6f 6e 20 74 68  61 74 20 77 61 73 20 74  |ation that was t|
00003c30  65 72 6d 69 6e 61 74 65  64 20 65 61 72 6c 79 20  |erminated early |
00003c40  66 6f 72 20 73 6f 6d 65  20 72 65 61 73 6f 6e 2c  |for some reason,|
00003c50  20 66 6f 72 20 65 67 20  62 65 63 61 75 73 65 20  | for eg because |
00003c60  79 6f 75 72 0a 69 6e 74  65 72 6e 65 74 20 63 6f  |your.internet co|
00003c70  6e 6e 65 63 74 69 6f 6e  20 77 61 73 20 62 72 6f  |nnection was bro|
00003c80  6b 65 6e 2e 0a 0a 53 79  6e 74 61 78 3a 20 72 65  |ken...Syntax: re|
00003c90  67 65 74 20 3c 72 65 6d  6f 74 65 20 66 69 6c 65  |get <remote file|
00003ca0  3e 20 5b 3c 6c 6f 63 61  6c 20 66 69 6c 65 3e 5d  |> [<local file>]|
00003cb0  0a 0a 0a 57 49 4e 4f 50  45 4e 20 61 6e 64 20 57  |...WINOPEN and W|
00003cc0  49 4e 43 4c 4f 53 45 0a  2d 2d 2d 2d 2d 2d 2d 2d  |INCLOSE.--------|
00003cd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 0a 54 68  |------------..Th|
00003ce0  65 73 65 20 65 6e 61 62  6c 65 20 74 68 65 20 46  |ese enable the F|
00003cf0  54 50 20 73 65 73 73 69  6f 6e 20 77 69 6e 64 6f  |TP session windo|
00003d00  77 73 20 74 6f 20 62 65  20 6f 70 65 6e 65 64 20  |ws to be opened |
00003d10  61 6e 64 20 63 6c 6f 73  65 64 2e 0a 0a 53 79 6e  |and closed...Syn|
00003d20  74 61 78 3a 20 77 69 6e  6f 70 65 6e 0a 20 20 20  |tax: winopen.   |
00003d30  20 20 20 20 20 77 69 6e  63 6c 6f 73 65 0a 0a 54  |     winclose..T|
00003d40  68 65 20 6d 61 69 6e 20  75 73 65 20 6f 66 20 74  |he main use of t|
00003d50  68 69 73 20 69 73 20 69  6e 20 46 54 50 20 63 6f  |his is in FTP co|
00003d60  6d 6d 61 6e 64 20 66 69  6c 65 73 20 74 68 61 74  |mmand files that|
00003d70  20 6d 61 79 20 62 65 20  74 72 69 67 67 65 72 65  | may be triggere|
00003d80  64 20 62 79 20 61 6e 0a  61 75 74 6f 6d 61 74 65  |d by an.automate|
00003d90  64 20 46 54 50 20 73 65  73 73 69 6f 6e 20 69 6e  |d FTP session in|
00003da0  69 74 69 61 74 65 64 20  66 72 6f 6d 20 61 6e 6f  |itiated from ano|
00003db0  74 68 65 72 20 77 69 6d  70 20 61 70 70 6c 69 63  |ther wimp applic|
00003dc0  61 74 69 6f 6e 2c 20 69  6e 0a 70 61 72 74 69 63  |ation, in.partic|
00003dd0  75 6c 61 72 2c 20 61 20  46 54 50 20 66 65 74 63  |ular, a FTP fetc|
00003de0  68 65 72 20 66 6f 72 20  57 57 57 20 77 6f 75 6c  |her for WWW woul|
00003df0  64 20 75 73 65 20 74 68  69 73 2e 0a              |d use this..|
00003dfc