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