diff -u -Naur yafc-1.0/NEWS yafc-1.0.fink/NEWS
--- yafc-1.0/NEWS	Thu Dec  5 17:06:59 2002
+++ yafc-1.0.fink/NEWS	Fri Jan 10 17:24:33 2003
@@ -260,7 +260,7 @@
 
 * added --help option for untag
 * added *.md5 to ascii_transfer_mask
-* now parses system-wide /etc/yafcrc on startup
+* now parses system-wide @PREFIX@/etc/yafcrc on startup
   + doesn't create default ~/.yafc/yafcrc on first run
 * rglob.c: didn't update directory cache properly
 * segfault in get/put if connection timed out
diff -u -Naur yafc-1.0/configure yafc-1.0.fink/configure
--- yafc-1.0/configure	Thu Dec  5 17:15:45 2002
+++ yafc-1.0.fink/configure	Fri Jan 10 17:25:50 2003
@@ -1635,7 +1635,7 @@
 
 
 # expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir`
 
 test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
 # Use eval to expand $SHELL
diff -u -Naur yafc-1.0/doc/yafc.info yafc-1.0.fink/doc/yafc.info
--- yafc-1.0/doc/yafc.info	Mon Dec  2 12:19:15 2002
+++ yafc-1.0.fink/doc/yafc.info	Fri Jan 10 17:24:33 2003
@@ -1512,7 +1512,7 @@
 Configuration
 *************
 
-   Yafc will parse a system-wide configuration file, `/etc/yafcrc',
+   Yafc will parse a system-wide configuration file, `@PREFIX@/etc/yafcrc',
 first. Then, personal settings are read from `~/.yafc/yafcrc'
 (overriding the global ones). If none of those files exists, internal
 defaults will be used.
diff -u -Naur yafc-1.0/doc/yafc.info~ yafc-1.0.fink/doc/yafc.info~
--- yafc-1.0/doc/yafc.info~	Wed Dec 31 19:00:00 1969
+++ yafc-1.0.fink/doc/yafc.info~	Mon Dec  2 12:19:15 2002
@@ -0,0 +1,2442 @@
+Detta är yafc.info, skapad av makeinfo version 4.2 från yafc.texi.
+
+START-INFO-DIR-ENTRY
+* Yafc: (yafc).  Yet Another FTP Client
+END-INFO-DIR-ENTRY
+   This file documents Yafc version 1.0
+
+   Copyright (C) 1999-2000 Martin Hedenfalk
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the copyright holder.
+
+
+File: yafc.info,  Node: Top,  Next: Overview,  Up: (dir)
+
+   This document describes YAFC, an interactive interface to the FTP
+protocol.  This document applies to version 1.0.
+
+* Menu:
+
+* Overview::                    Introduction to Yafc
+* Invoking Yafc::               How to start Yafc
+* The shell::
+* Configuration::               How to configure Yafc
+* Bookmarks::
+* Kerberos::                    How Yafc uses Kerberos
+
+
+File: yafc.info,  Node: Overview,  Next: Invoking Yafc,  Prev: Top,  Up: Top
+
+Overview
+********
+
+   This manual documents YAFC. YAFC is quite a powerful ftp client.  It
+is a console interface to the ftp protocol. If you're looking for a nice
+GUI client, Yafc is not for you. If you, however, use ftp often and
+want a fast, powerful, friendly client Yafc is here for you...
+
+   Some of the features are recursive transfers, nohup transfers,
+colored ls, cached directory listings, autologin and bookmarks,
+powerful aliases and extensive tab completion. It has also support for
+Kerberos authentication.
+
+   This manual is incomplete, and possibly out of date. If you would
+like to improve this manual, please send a message to
+<yafc-devel@lists.sourceforge.net>.
+
+* Menu:
+
+* Bugs::                Reporting bugs and requests
+* Obtaining Yafc::      Where to get Yafc
+* Motivation::          Why Yafc was written
+
+
+File: yafc.info,  Node: Bugs,  Next: Obtaining Yafc,  Up: Overview
+
+Bugs
+----
+
+   Please report bugs to <yafc-devel@lists.sourceforge.net>.  Before
+reporting a bug, please verify you're using the latest version (check
+the ftp site.) You can get the version number of your copy of yafc with
+the command `yafc --version'.
+
+   When reporting bugs, please include information on what machine and
+operating system, including versions, you are running, an example for
+me to reproduce (use the `--trace' option) and a patch if you have one.
+
+
+File: yafc.info,  Node: Obtaining Yafc,  Next: Motivation,  Prev: Bugs,  Up: Overview
+
+Obtaining Yafc
+--------------
+
+Yafc homepage
+     `http://yafc.sourceforge.net/'
+
+Yafc SourceForge Project Page
+     `http://sourceforge.net/projects/yafc/'
+
+
+File: yafc.info,  Node: Motivation,  Prev: Obtaining Yafc,  Up: Overview
+
+Motivation
+----------
+
+   Yafc was created because I needed a good ftp client.  The standard
+BSD ftp client lacks tab completion, something I've become used to and
+can't live without. Of course, both Lftp and NcFtp has tab completion,
+but not good enough for me :-). Also, I needed a client that understood
+Kerberos4 authentication, because that's the security system used a KTH
+(The Royal Institute of Technology in Sweden, where I am studying.)
+
+   But perhaps most important, I needed a fun project to work on :-)
+
+
+File: yafc.info,  Node: Invoking Yafc,  Next: The shell,  Prev: Overview,  Up: Top
+
+Invoking Yafc
+*************
+
+   Usage:
+     yafc [options] [proto://][USER[:PASSWORD]@]HOSTNAME[:PORT][/DIRECTORY]
+
+   The 'proto' keyword can be either 'ftp' for ordinary FTP protocol, or
+'ssh' for SSH2 protocol (sftp).
+
+   Options:
+
+`-a'
+`--anon'
+     Try an anonymous login, ie login as "anonymous" with your email
+     address as password. Your email address is first looked for in the
+     config file (*Note Keywords::), then in the $EMAIL environment
+     variable. If it's not found, a guess is made from your user- and
+     hostname.
+
+`-d'
+`--debug'
+     Print all messages sent to/from server.
+
+`-D'
+`--dump-rc'
+     Prints the default configuration file to standard output.
+
+`-m'
+`--mechanism=MECH'
+     Try security mechanism MECH when logging in to the host specified
+     on the command line. This will override any 'mech' options in
+     `yafcrc' or `bookmarks'. MECH is a colon-separated string,
+     supported values are "krb4", "krb5" and "none". The mechanisms are
+     tried in the order specified.
+
+`-n'
+`--norc'
+     Do not read the users configuration file. This will cause yafc to
+     use its default settings.
+
+`-p'
+`--noproxy'
+     Do not connect via the proxy. This should be used if connecting to
+     a host on the local network.
+
+`-q'
+`--quiet'
+     Do not print the welcome message with copyright information when
+     starting Yafc.
+
+`-r FILE'
+`--rcfile=FILE'
+     Read another configuration file.
+
+`-t FILE'
+`--trace[=FILE]'
+     Enable creation of trace file. Trace files are mainly for
+     debugging and includes every response and command Yafc
+     receives/sends. If FILE is specified, use that file instead of the
+     default trace file (`~/.yafc/trace/trace.pid', where pid is the
+     process id number of Yafc.)  Trace files can grow quite large and
+     can safely be deleted.
+
+`-u'
+`--noauto'
+     Do not login automagically to the host specified on the command
+     line. You can still use bookmark aliases, though.
+
+`-U'
+`--noalias'
+     As --noauto, but bookmark aliases is disabled.
+
+`-v'
+`--verbose'
+     Print all responses received (without response code.)
+
+`-w'
+`--wait=TIME'
+     Use a different time to wait between connection attempts, in
+     seconds.  This overrides the value set by `connect_wait_time' in
+     the configuration file.
+
+`-W'
+`--workdir=DIR'
+     Use a different working directory for configuration files and
+     temporary files. Default is `~/.yafc'.
+
+`-V'
+`--version'
+     Print version information on stdout and exit successfully.
+
+`-h'
+`--help'
+     Print a short help description on stdout and exit successfully.
+
+
+File: yafc.info,  Node: The shell,  Next: Configuration,  Prev: Invoking Yafc,  Up: Top
+
+The shell
+*********
+
+   Yafc presents the user with an internal shell. Command redirection is
+available, using the conventional shell syntax (eg `cat foo.txt > foo'
+will copy the remote file foo.txt to the local file foo.) Input
+redirection, however, is not supported. Also asynchronous mode is not
+supported. The following will thus be rejected: `ls |emacs &' or `open
+< login.foo'.
+
+* Menu:
+
+* Yafc commands::               all yafc internal commands
+* Nohup transfers::
+
+
+File: yafc.info,  Node: Yafc commands,  Next: Nohup transfers,  Up: The shell
+
+Yafc commands
+=============
+
+   All commands follow the usual GNU command line syntax, with long
+options starting with two dashes (`--').
+
+   Most commands have an option `--help' that shows a short syntax
+description.
+
+* Menu:
+
+* !::                           execute shell command
+* afslog::                      obtain remote AFS tokens
+* alias::                       create an alias
+* bookmark::                    create a bookmark
+* cache::                       control directory cache
+* cat::                         view a text file
+* cd::                          change working directory
+* cdup::                        change to parent directory
+* chmod::                       change access mode (permissions) of files
+* close::                       close connection
+* copyright::                   show copyright notice
+* filetime::                    print file modification time
+* flush::                       flush replies
+* fxp::                         transfer files between hosts
+* get::                         get files
+* help::                        don't panic
+* idle::                        modify idle time
+* kauth::                       authenticate to Kerberos
+* kdestroy::                    destroy Kerberos tickets
+* klist::                       list Kerberos tickets
+* krbtkfile::                   specify Kerberos ticket file
+* lcd::                         change local working directory
+* list::                        show raw directory listing
+* lpwd::                        print local working directory
+* ls::                          show directory listing
+* ltag::                        tag local files
+* luntag::                      remove files from local taglist
+* mkdir::                       create directory
+* mv::                          move files
+* nlist::                       show filename list
+* nop::                         do nothing
+* open::                        open a connection
+* prot::                        change Kerberos data protection level
+* put::                         put files
+* pwd::                         print working directory
+* quit::                        quit Yafc
+* quote::                       send arbitrary FTP command
+* reopen::                      reopen active connection
+* rhelp::                       remote help
+* rm::                          remove files
+* rmdir::                       remove empty directory
+* rstatus::                     show status
+* set::                         show and set variables
+* shell::                       execute local shell
+* site::                        issue a site specific FTP command
+* source::                      read a configuration file
+* status::                      show local status
+* switch::                      switch between open connections
+* system::                      show type of system
+* tag::                         tag files
+* unalias::                     remove an alias
+* untag::                       remove files from taglist
+* url::                         print the current FTP url
+* user::                        send new user information
+* version::                     show Yafc version
+* warranty::                    show lack of warranty
+
+
+File: yafc.info,  Node: !,  Next: afslog,  Up: Yafc commands
+
+`!'
+---
+
+   This is a synonym for the shell (*Note shell::) command.
+
+
+File: yafc.info,  Node: afslog,  Next: alias,  Prev: !,  Up: Yafc commands
+
+`afslog'
+--------
+
+   Obtain remote AFS tokens.
+
+
+File: yafc.info,  Node: alias,  Next: bookmark,  Prev: afslog,  Up: Yafc commands
+
+`alias'
+-------
+
+   Define an alias.
+
+
+File: yafc.info,  Node: bookmark,  Next: cache,  Prev: alias,  Up: Yafc commands
+
+`bookmark'
+----------
+
+   Handle bookmarks. If no options are given, the default action is to
+create a bookmark for the current open connection. If no bookmark name
+is given on the command line, the bookmark will be given an alias based
+upon the hostname.
+
+   Usage:
+     bookmark [options] [bookmark name ...]
+
+   Options:
+
+`-s[FILE]'
+`--save[=FILE]'
+     Save bookmarks in memory to file. If the optional parameter FILE is
+     omitted, save to default bookmarks file `WORKDIR/bookmarks'.
+
+`-e'
+`--edit'
+     Start editor (found in $EDITOR environment variable) with your
+     bookmarks file.
+
+`-r[FILE]'
+`--read[=FILE]'
+     Read bookmarks from bookmarks file, or file given by optional
+     parameter FILE.
+
+`-d'
+`--delete'
+     Delete bookmarks given as arguments to `bookmark'. The bookmarks
+     file will be rewritten.
+
+`-l'
+`--list'
+     List bookmarks in memory.
+
+`-u'
+`--noupdate'
+     Toggle the noupdate flag. If no bookmarks are specified on the
+     command line, only the current bookmark is affected. The bookmarks
+     file will be rewritten.
+
+`-h'
+`--help'
+     Show short syntax description.
+
+
+File: yafc.info,  Node: cache,  Next: cat,  Prev: bookmark,  Up: Yafc commands
+
+`cache'
+-------
+
+   Control the directory cache.
+
+   Usage:
+     cache [options] [directory ...]
+
+   Options:
+
+`-c'
+`--clear'
+     Clear the whole directory cache.
+
+`-l'
+`--list'
+     List the contents of the directory cache.
+
+`-t'
+`--touch'
+     Remove the specified directories from the cache. If no directories
+     are given as arguments, the current directory is removed from the
+     cache.
+
+`-h'
+`--help'
+     Show a short help description.
+
+
+File: yafc.info,  Node: cat,  Next: cd,  Prev: cache,  Up: Yafc commands
+
+`cat'
+-----
+
+   Print file(s) on standard output. By default, the files are
+transferred in ascii mode (rewriting newlines). If you want to view
+binary files through a filter (eg viewing a README.gz through gzip) you
+have to use option `--type=binary'.
+
+   Usage:
+     cat [options] file ...
+
+   Options:
+
+`-t TYPE'
+`--type=TYPE'
+     Set transfer type. Valid values for TYPE is ASCII or BINARY.
+
+`-h'
+`--help'
+     Show a short help description
+
+
+File: yafc.info,  Node: cd,  Next: cdup,  Prev: cat,  Up: Yafc commands
+
+`cd'
+----
+
+   Change remote working directory.
+
+   Usage:
+     cd [directory]
+
+   If no argument is given, `cd' changes to the home directory. The home
+directory is the current directory when logged in.
+
+   If the argument is '-', `cd' changes to the previous working
+directory.
+
+
+File: yafc.info,  Node: cdup,  Next: chmod,  Prev: cd,  Up: Yafc commands
+
+`cdup'
+------
+
+   Changes to parent directory. On UN*X systems, this is the same as
+`cd ..'.
+
+
+File: yafc.info,  Node: chmod,  Next: close,  Prev: cdup,  Up: Yafc commands
+
+`chmod'
+-------
+
+   Change the permission mode of remote files.
+
+   Usage:
+     chmod mode file ...
+
+   Mode must be given in octal representation (for example: 0644 is
+-rw-r--r--).
+
+
+File: yafc.info,  Node: close,  Next: copyright,  Prev: chmod,  Up: Yafc commands
+
+`close'
+-------
+
+   Close active connection.
+
+
+File: yafc.info,  Node: copyright,  Next: filetime,  Prev: close,  Up: Yafc commands
+
+`copyright'
+-----------
+
+   Show copyright.
+
+
+File: yafc.info,  Node: filetime,  Next: flush,  Prev: copyright,  Up: Yafc commands
+
+`filetime'
+----------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: flush,  Next: fxp,  Prev: filetime,  Up: Yafc commands
+
+`flush'
+-------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: fxp,  Next: get,  Prev: flush,  Up: Yafc commands
+
+`fxp'
+-----
+
+   Transfer files from one remote server to another remote server,
+bypassing the client. This is done by setting up a passive mode
+connection on the source host and using the obtained port for an active
+connection on the target host. The source host is the current active
+host, the target host must be specified using the `--target=HOST'
+option.
+
+   This will not always work with all ftp servers, either because
+passive mode is not supported on the source host, or because the target
+refuses the given port.  The target ftp server might refuse the port as
+a security policy. You might get the error 'Illegal PORT Command' or
+'Possible port theft'.
+
+   If the destination file already exists, and none of the options
+`--append', `--force', `--newer', `--resume', `--skip-existing' or
+`--unique' is given, you will be prompted what to do.
+
+   Usage:
+     fxp [options] file ...
+
+   Options:
+
+`-a'
+`--append'
+     Append if destination exists.
+
+`-D'
+`--delete-after'
+     Delete remote file after successful transfer.
+
+`--dir-mask=GLOB'
+     Enter only directories matching GLOB pattern.
+
+`--dir-rx-mask=REGEXP'
+     Enter only directories matching REGEXP pattern.
+
+`-e'
+`--skip-empty'
+     Skip empty files (files with a size of zero bytes).
+
+`-f'
+`--force'
+     Overwrite existing destinations, never prompt.
+
+`-H'
+`--nohup'
+     Transfer files in background (nohup mode), quits yafc.
+
+`-i'
+`--interactive'
+     Prompt before each transfer.
+
+`-L FILE'
+`--logfile=FILE'
+     Use FILE as logfile instead of `~/.yafc/nohup/nohup.<pid>'.
+
+`-m GLOB'
+`--mask=GLOB'
+     Only transfer files matching GLOB pattern.
+
+`-M REGEXP'
+`--rx-mask=REGEXP'
+     Only transfer files matching REGEXP pattern.
+
+`-n'
+`--newer'
+     Only transfer file if remote is newer than local file.
+
+`-o DEST'
+`--output=DEST'
+     Specify other destination. If more than one file is transferred,
+     or option `--recursive' is given, DEST denotes a directory.
+     Otherwise (if only one file is to be transferred), DEST denotes a
+     filename.
+
+     Examples:
+          fxp --target=2 foo.tar.gz -o bar.tar.gz
+     will transfer the remote file `foo.tar.gz' on the currently active
+     remote server to the remote file `bar.tar.gz' on the remote server
+     specified with the `--target' option (in this case the second open
+     connection).
+
+          fxp --target=funet *.tar.gz -o foo
+     will transfer all remote `*.tar.gz' files to a directory named
+     `foo' on the host specified with the `--target' option (in this
+     case 'funet').
+
+          fxp -T ftp.stacken.kth.se foo -r -o bar
+     will transfer the remote file `foo' to a directory named `bar' on
+     ftp.stacken.kth.se.  If `foo' is a directory, it will be
+     downloaded recursively.
+
+`-p'
+`--preserve'
+     Try to preserve file attributes.
+
+`-P'
+`--parents'
+     Append source path to destination.
+
+`-q'
+`--quiet'
+     Overrides `--verbose'.
+
+`-r'
+`--recursive'
+     Transfer directories recursively.
+
+`-R'
+`--resume'
+     Resume broken download (restart at EOF).
+
+`-s'
+`--skip-existing'
+     Always skip existing files.
+
+`-t'
+`--tagged'
+     Transfer tagged files.
+
+`-T HOST'
+`--target=HOST'
+     This option is required and specifies which remote server is the
+     target.  The HOST parameter can be a complete hostname, an alias
+     or the connection number. The connection number is 1 for the first
+     open connection, 2 for the second and so on. It might be useful to
+     include that information in the prompt using the `%C' code, *Note
+     Prompt codes::.
+
+`--type=TYPE'
+     Specify transfer type, 'ascii' or 'binary'.
+
+`-u'
+`--unique'
+     Always store as unique target file.
+
+`-v'
+`--verbose'
+     Explain what is being done.
+
+`--help'
+     Show a short syntax description.
+
+
+File: yafc.info,  Node: get,  Next: help,  Prev: fxp,  Up: Yafc commands
+
+`get'
+-----
+
+   Transfer files from remote server to local computer.
+
+   If the destination file already exists, and none of the options
+`--append', `--force', `--newer', `--resume', `--skip-existing' or
+`--unique' is given, you will be prompted what to do.
+
+   Usage:
+     get [options] file ...
+
+   Options:
+
+`-a'
+`--append'
+     Append if destination exists.
+
+`-c PERM'
+`--chmod=PERM'
+     Change mode of transferred files to PERM.
+
+`--chgrp=GROUP'
+     change group of transferred files to GROUP.  You need to be a
+     member of GROUP.
+
+`-d'
+`--no-dereference'
+     Copy symbolic links as symbolic links.
+
+`-D'
+`--delete-after'
+     Delete remote file after successful transfer.
+
+`-e'
+`--skip-empty'
+     Skip empty files (files with a size of zero bytes).
+
+`--dir-mask=GLOB'
+     Enter only directories matching GLOB pattern.
+
+`--dir-rx-mask=REGEXP'
+     Enter only directories matching REGEXP pattern.
+
+`-f'
+`--force'
+     Overwrite existing destinations, never prompt.
+
+`-H'
+`--nohup'
+     Transfer files in background (nohup mode), quits yafc.
+
+`-i'
+`--interactive'
+     Prompt before each transfer.
+
+`-L FILE'
+`--logfile=FILE'
+     Use FILE as logfile instead of `~/.yafc/nohup/nohup.<pid>'.
+
+`-m GLOB'
+`--mask=GLOB'
+     Only get files matching GLOB pattern.
+
+`-M REGEXP'
+`--rx-mask=REGEXP'
+     Only get files matching REGEXP pattern.
+
+`-n'
+`--newer'
+     Only get file if remote is newer than local file.
+
+`-o DEST'
+`--output=DEST'
+     Specify other destination. If more than one file is transferred,
+     option `--recursive' is given, or DEST ends in a slash, then DEST
+     denotes a directory. Otherwise (if only one file is to be
+     transferred), DEST denotes a filename. However, if DEST already
+     exists and is a directory, DEST denotes a directory.
+
+     Examples:
+          get README -o readme
+     will transfer the remote file `README' to the local file `readme'
+     if `readme' is not an existing local directory.
+
+          get README -o readme/
+     will transfer the remote file `README' to the local directory
+     `readme'.
+
+          get *.tar.gz -o foo
+     will transfer all remote `*.tar.gz' files to a local directory
+     named `foo'.
+
+          get foo -r -o bar
+     will transfer the remote file `foo' to a local directory named
+     `bar'.  If `foo' is a directory, it will be downloaded recursively.
+
+`-p'
+`--preserve'
+     Try to preserve file attributes and timestamps.
+
+`-P'
+`--parents'
+     Append source path to destination.
+
+`-q'
+`--quiet'
+     Overrides `--verbose'.
+
+`-r'
+`--recursive'
+     Get directories recursively.
+
+`-R'
+`--resume'
+     Resume broken download (restart at EOF).
+
+`-s'
+`--skip-existing'
+     Always skip existing files.
+
+`-t'
+`--tagged'
+     Transfer tagged files.
+
+`--type=TYPE'
+     Specify transfer type, 'ascii' or 'binary'.
+
+`-u'
+`--unique'
+     Always store as unique local file.
+
+`-v'
+`--verbose'
+     Explain what is being done.
+
+`--help'
+     Show a short syntax description.
+
+
+File: yafc.info,  Node: help,  Next: idle,  Prev: get,  Up: Yafc commands
+
+`help'
+------
+
+   Shows the available commands.
+
+
+File: yafc.info,  Node: idle,  Next: kauth,  Prev: help,  Up: Yafc commands
+
+`idle'
+------
+
+   Show or set the idle timeout.
+
+
+File: yafc.info,  Node: kauth,  Next: kdestroy,  Prev: idle,  Up: Yafc commands
+
+`kauth'
+-------
+
+   Authenticate to Kerberos.
+
+
+File: yafc.info,  Node: kdestroy,  Next: klist,  Prev: kauth,  Up: Yafc commands
+
+`kdestroy'
+----------
+
+   Destroy Kerberos tickets.
+
+
+File: yafc.info,  Node: klist,  Next: krbtkfile,  Prev: kdestroy,  Up: Yafc commands
+
+`klist'
+-------
+
+   Show Kerberos tickets.
+
+
+File: yafc.info,  Node: krbtkfile,  Next: lcd,  Prev: klist,  Up: Yafc commands
+
+`krbtkfile'
+-----------
+
+   Set file used for Kerberos tickets.
+
+
+File: yafc.info,  Node: lcd,  Next: list,  Prev: krbtkfile,  Up: Yafc commands
+
+`lcd'
+-----
+
+   Change local working directory.
+
+
+File: yafc.info,  Node: list,  Next: lpwd,  Prev: lcd,  Up: Yafc commands
+
+`list'
+------
+
+   List files.
+
+
+File: yafc.info,  Node: lpwd,  Next: ls,  Prev: list,  Up: Yafc commands
+
+`lpwd'
+------
+
+   Print local working directory.
+
+
+File: yafc.info,  Node: ls,  Next: ltag,  Prev: lpwd,  Up: Yafc commands
+
+`ls'
+----
+
+   List files.
+
+   Usage:
+     ls [options] [files ...]
+
+   Options:
+
+`-a'
+`--all'
+     Do not hide entries starting with '.'.
+
+`-A'
+`--almost-all'
+     As `--all', but do not list . and ..
+
+`-B'
+`--ignore-backups'
+     Do not list implied entries ending with ~.
+
+`-C'
+     List entries by columns.
+
+`--color[=WHEN]'
+     Control whether color is used to distinguish file types. WHEN may
+     be either NEVER, ALWAYS or AUTO. If WHEN is not given, default is
+     ALWAYS. If the argument is AUTO, colors will be used only if
+     output is bound to a tty.
+
+`-d'
+`--directory'
+     List directory entries instead of contents.
+
+`--dirs-first'
+     Show directories first (last with `--reverse').
+
+`-F'
+`--classify'
+     Append a character for typing each entry.
+
+`-g'
+     Ignored.
+
+`-G'
+`--no-group'
+     Inhibit display of group information.
+
+`-h'
+`--human-readable'
+     Print sizes in human readable format (e.g. 1K, 234M, 2G)
+
+`-l'
+     Use a long listing format.
+
+`-N'
+`--literal'
+     Print raw entry names (don't treat control characters specially)
+
+`-o'
+     Use a long listing format without group info. Same as `-lG'.
+
+`-r'
+`--reverse'
+     Reverse order while sorting.
+
+`-R'
+`--recursive'
+     List subdirectories recursively.
+
+`-S'
+     Sort by file size
+
+`-t'
+     Sort by modification time.
+
+`-U'
+     Do not sort; list entries in directory order.
+
+`-x'
+     List entries by lines instead of by columns.
+
+`-X'
+     Sort alphabetically by entry extension.
+
+`-1'
+     List one file per line.
+
+`--help'
+     Show a short syntax description.
+
+
+File: yafc.info,  Node: ltag,  Next: luntag,  Prev: ls,  Up: Yafc commands
+
+`ltag'
+------
+
+   Tag local files.
+
+
+File: yafc.info,  Node: luntag,  Next: mkdir,  Prev: ltag,  Up: Yafc commands
+
+`luntag'
+--------
+
+   Untag local files.
+
+
+File: yafc.info,  Node: mkdir,  Next: mv,  Prev: luntag,  Up: Yafc commands
+
+`mkdir'
+-------
+
+   Creates a remote directory (requires proper permissions.)
+
+   Usage:
+     mkdir directory
+
+
+File: yafc.info,  Node: mv,  Next: nlist,  Prev: mkdir,  Up: Yafc commands
+
+`mv'
+----
+
+   Documentation missing...
+
+
+File: yafc.info,  Node: nlist,  Next: nop,  Prev: mv,  Up: Yafc commands
+
+`nlist'
+-------
+
+   Documentation missing...
+
+
+File: yafc.info,  Node: nop,  Next: open,  Prev: nlist,  Up: Yafc commands
+
+`nop'
+-----
+
+   Send a NOOP command to remote host. This does nothing except
+checking if the connection is still open. It may be used to reset the
+servers idle timeout (though some servers ignore it).
+
+
+File: yafc.info,  Node: open,  Next: prot,  Prev: nop,  Up: Yafc commands
+
+`open'
+------
+
+   Opens a new connection to an FTP/SSH server.
+
+   Usage:  open [options]
+[proto://][user[:password]@]hostname[:port][/directory] ...
+
+   proto can be either 'ftp' or 'ssh' ('sftp' is an alias for 'ssh')
+
+   Options:
+
+`-a'
+`--anon'
+     Try to login anonymously.
+
+`-u'
+`--noauto'
+     Disable autologin.
+
+`-U'
+`--noalias'
+     Disable bookmark alias lookup and abbreviation.
+
+`-m MECH'
+`--mechanism=MECH'
+     Try security mechanism MECH when logging in. This will override any
+     'mech' options in `yafcrc' or `bookmarks'. MECH is a
+     colon-separated string, supported values are "krb4", "krb5" and
+     "none". The mechanisms are tried in the order specified.
+
+`-s PATH'
+`--sftp=PATH'
+     Specify path to the remote sftp-server program. SSH starts this
+     program on the remote side when initiating an sftp connection. This
+     option is only necessary if the remote ssh server doesn't
+     understand the sftp subsystem.
+
+     Specify `--sftp=""' to disable the sftp-server path, and use sftp
+     subsystem instead.
+
+     If you don't know the remote path to the sftp-server program, the
+     default for OpenSSH is `/usr/libexec/sftp-server'. Another common
+     path is `/usr/bin/sftp-server'.
+
+`--help'
+     Show a short syntax description.
+
+
+File: yafc.info,  Node: prot,  Next: put,  Prev: open,  Up: Yafc commands
+
+`prot'
+------
+
+   Changes the data protection level for data transfers. The protection
+level defines how data transfers are handled by the security mechanism.
+
+   Usage:
+     prot [options] [command | data] protlevel
+
+   Options:
+
+`-h'
+
+`--help'
+     Show short syntax description.
+
+   Valid protection levels are:
+
+`clear'
+     no data protection
+
+`safe'
+     integrity check
+
+`private'
+     all data encrypted and integrity checked
+
+
+File: yafc.info,  Node: put,  Next: pwd,  Prev: prot,  Up: Yafc commands
+
+`put'
+-----
+
+   Send files to remote computer.
+
+   If the destination file already exists, and none of the options
+`--append', `--force', `--newer', `--resume', `--skip-existing' or
+`--unique' is given, you will be prompted what to do.
+
+   Usage:
+     put [options] file ...
+
+   Options:
+
+`-a'
+`--append'
+     Append if destination file exists.
+
+`-D'
+`--delete-after'
+     Delete local file after successful transfer.
+
+`--dir-mask=GLOB'
+     Enter only directories matching GLOB pattern.
+
+`--dir-rx-mask=REGEXP'
+     Enter only directories matching REGEXP pattern.
+
+`-e'
+`--skip-empty'
+     Skip empty files (files with a size of zero bytes).
+
+`-f'
+`--force'
+     Overwrite existing destinations, never prompt.
+
+`-H'
+`--nohup'
+     Transfer files in background (nohup mode), quits yafc.
+
+`-i'
+`--interactive'
+     Prompt before transferring each file.
+
+`-L FILE'
+`--logfile=FILE'
+     Use FILE as logfile instead of `~/.yafc/nohup/nohup.<pid>' for
+     nohup transfers.
+
+`-m GLOB'
+`--mask=GLOB'
+     Only put files matching GLOB pattern.
+
+`-M REGEXP'
+`--rx-mask=REGEXP'
+     Only put files matching REGEXP pattern.
+
+`-n'
+`--newer'
+     Only transfer file if local is newer than remote file.
+
+`-o DEST'
+`--output=DEST'
+     Specify other destination. If more than one file is transferred,
+     or option `--recursive' is given, DEST denotes a directory.
+     Otherwise (if only one file is to be transferred), DEST denotes a
+     filename.
+
+     Examples:
+          put foo.tar.gz -o bar.tar.gz
+     will transfer the local file `foo.tar.gz' to the remote file
+     `bar.tar.gz'.
+
+          put *.tar.gz -o foo
+     will transfer all local `*.tar.gz' files to a remote directory
+     named `foo'.
+
+          put foo -r -o bar
+     will transfer the local file `foo' to a remote directory named
+     `bar'.  If `foo' is a directory, it will be uploaded recursively.
+
+`-p'
+`--preserve'
+     Try to preserve file attributes (permissions).
+
+`-P'
+`--parents'
+     Append source path to destination.
+
+`-q'
+`--quiet'
+     Overrides `--verbose'.
+
+`-r'
+`--recursive'
+     Upload directories recursively.
+
+`-R'
+`--resume'
+     Resume broken transfer (restart at EOF).
+
+`-s'
+`--skip-existing'
+     Always skip existing files.
+
+`-t'
+`--tagged'
+     Transfer (locally) tagged files.
+
+`--type=TYPE'
+     Specify transfer type, 'ascii' or 'binary'.
+
+`-u'
+`--unique'
+     Always store as unique file (if server supports the STOU command).
+
+`-v'
+`--verbose'
+     Explain what is being done.
+
+`--help'
+     Show a short syntax description.
+
+
+File: yafc.info,  Node: pwd,  Next: quit,  Prev: put,  Up: Yafc commands
+
+`pwd'
+-----
+
+   Prints the current remote working directory.
+
+   Usage: `pwd'
+
+
+File: yafc.info,  Node: quit,  Next: quote,  Prev: pwd,  Up: Yafc commands
+
+`quit'
+------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: quote,  Next: reopen,  Prev: quit,  Up: Yafc commands
+
+`quote'
+-------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: reopen,  Next: rhelp,  Prev: quote,  Up: Yafc commands
+
+`reopen'
+--------
+
+   Reopen a timed out connection.
+
+
+File: yafc.info,  Node: rhelp,  Next: rm,  Prev: reopen,  Up: Yafc commands
+
+`rhelp'
+-------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: rm,  Next: rmdir,  Prev: rhelp,  Up: Yafc commands
+
+`rm'
+----
+
+   Remove files on remote server.
+
+   Usage: `rm [options] file...'
+
+   Options:
+
+`-f'
+`--force'
+     never prompt
+
+`-i'
+`--interactive'
+     prompt before any removal
+
+`-r'
+`--recursive'
+     remove the contents of directories recursively. CAREFUL!
+
+`-t'
+`--tagged'
+     remove tagged files
+
+`-v'
+`--verbose'
+     explain what is being done
+
+`--help'
+     display help
+
+
+File: yafc.info,  Node: rmdir,  Next: rstatus,  Prev: rm,  Up: Yafc commands
+
+`rmdir'
+-------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: rstatus,  Next: set,  Prev: rmdir,  Up: Yafc commands
+
+`rstatus'
+---------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: set,  Next: shell,  Prev: rstatus,  Up: Yafc commands
+
+`set'
+-----
+
+   documentation missing...
+
+
+File: yafc.info,  Node: shell,  Next: site,  Prev: set,  Up: Yafc commands
+
+`shell'
+-------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: site,  Next: source,  Prev: shell,  Up: Yafc commands
+
+`site'
+------
+
+   Send site specific command.
+
+   Usage:
+
+     site command
+
+   Try `site help' or `rhelp site' for more information
+
+
+File: yafc.info,  Node: source,  Next: status,  Prev: site,  Up: Yafc commands
+
+`source'
+--------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: status,  Next: switch,  Prev: source,  Up: Yafc commands
+
+`status'
+--------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: switch,  Next: system,  Prev: status,  Up: Yafc commands
+
+`switch'
+--------
+
+   Switch between open connections.
+
+   Usage:
+     switch [options] [connection]
+
+   Options:
+
+`-h'
+`--help'
+     Show short syntax description.
+
+   The connection argument specifies which connection to switch to. It
+can be specified either as the connection number or with the name
+(hostname or alias).
+
+   If no argument is given, switch to the next open connection.
+
+
+File: yafc.info,  Node: system,  Next: tag,  Prev: switch,  Up: Yafc commands
+
+`system'
+--------
+
+   Show the type of the remote system.
+
+
+File: yafc.info,  Node: tag,  Next: unalias,  Prev: system,  Up: Yafc commands
+
+`tag'
+-----
+
+   Tag files for later transferring or removal.
+
+   Usage:
+     tag [options] file ...
+
+   Options:
+
+`-c'
+`--clear'
+     Clear the taglist.
+
+`-i'
+`--info'
+     Show some information about the tagged files. This includes the
+     total size of all tagged file, how many files and how many
+     directories are tagged.
+
+`-l'
+
+`--list'
+     List tagged files.
+
+`-L[FILE]'
+`--load[=FILE]'
+     Load saved taglist file. If optional parameter FILE is omitted, the
+     taglist for this host is loaded (from the file
+     `WORKDIR/taglist.HOSTNAME').
+
+`-s[FILE]'
+`--save[=FILE]'
+     Save taglist to file. If optional parameter FILE is omitted, the
+     taglist is saved in the default file `WORKDIR/taglist.HOSTNAME'.
+
+`-h'
+`--help'
+     Show short syntax description.
+
+
+File: yafc.info,  Node: unalias,  Next: untag,  Prev: tag,  Up: Yafc commands
+
+`unalias'
+---------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: untag,  Next: url,  Prev: unalias,  Up: Yafc commands
+
+`untag'
+-------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: url,  Next: user,  Prev: untag,  Up: Yafc commands
+
+`url'
+-----
+
+   Show the current URL.
+
+   Usage:
+     url [options]
+
+   Options:
+
+`-e'
+`--no-encoding'
+     Don't encode the URL as RFC1738 says.
+
+`-h'
+`--help'
+     Show short syntax description.
+
+
+File: yafc.info,  Node: user,  Next: version,  Prev: url,  Up: Yafc commands
+
+`user'
+------
+
+   Send new user information.
+
+
+File: yafc.info,  Node: version,  Next: warranty,  Prev: user,  Up: Yafc commands
+
+`version'
+---------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: warranty,  Prev: version,  Up: Yafc commands
+
+`warranty'
+----------
+
+   documentation missing...
+
+
+File: yafc.info,  Node: Nohup transfers,  Prev: Yafc commands,  Up: The shell
+
+Nohup transfers
+===============
+
+   get and put has an option `--nohup'. When given, Yafc will fork
+itself to the background and continue to transfer the specified files,
+allowing you to use your shell or even logout. Output is redirected to
+the file `~/.yafc/nohup/nohup.pid', or to file specified by option
+`--logfile=FILE'.
+
+   If you have tagged any files (with the `tag' command, see *Note
+tag::), add the option `--tagged' to the get command to transfer those
+files too.  There is an equivalent command for local files and put,
+namely `ltag'.
+
+   Yafc will also enter nohup mode upon receipt of `SIGHUP'.
+
+   Set NOHUP_MAILADDRESS in the yafcrc file to a valid mail address if
+you want to receive a mail notifying you when the transfer is complete.
+
+
+File: yafc.info,  Node: Configuration,  Next: Bookmarks,  Prev: The shell,  Up: Top
+
+Configuration
+*************
+
+   Yafc will parse a system-wide configuration file, `/etc/yafcrc',
+first. Then, personal settings are read from `~/.yafc/yafcrc'
+(overriding the global ones). If none of those files exists, internal
+defaults will be used.
+
+   The `--dump-rc' option of Yafc can be used to dump the default
+configuration file to standard output. You can create your own config
+file with the command `yafc --dump-rc > ~/.yafc/yafcrc'. You can
+customize it with your favourite editor, it should be quite
+self-explaining if you read the comments.
+
+   Yafc also looks for `~/.netrc', and reads autologin information from
+that file. This file is also used by the standard ftp client.
+
+   Yafc uses the Readline library to read commands from the terminal,
+and Readline can be configured via the `~/.inputrc' file. In this file
+you can put keybindings and Readline-oriented options. You can use
+`$yafc' for conditional parsing of the `~/.inputrc' file.  A sample
+inputrc file is included in the distribution.
+
+* Menu:
+
+* Keywords::                    Configuration keywords used
+* Prompt codes::                Special codes in the prompts
+* Transfer codes::              Special codes in the transfer strings
+* Aliases::                     Writing aliases
+* Colors::                      Using colors
+
+
+File: yafc.info,  Node: Keywords,  Next: Prompt codes,  Up: Configuration
+
+Keywords
+========
+
+   The configuration file consists of keywords with an argument,
+separated with a space. There are three types of arguments: strings,
+booleans and integers.  Strings must be enclosed in quotes if they
+contains spaces. Boolean arguments can be written as 0/1, true/false or
+on/off. The keywords are case insensitive.
+
+   These are the supported keywords:
+
+`anon_password'
+     type: string
+
+     This is the password used for anonymous logins. It should be your
+     email address.
+
+`autologin'
+     type: boolean
+
+     Setting this to true will cause yafc to attempt to login
+     automatically.  Information for doing this is specified by *Note
+     Bookmarks::.
+
+`autoreconnect'
+     type: boolean
+
+     If this option is true, yafc will try to reconnect the currently
+     open connection if it has timed out. The directory cache is
+     retained after a successful reconnect.
+
+`quit_on_eof'
+     type: boolean
+
+     Quits yafc on end-of-file (usually `Ctrl-D').
+
+`read_netrc'
+     type: boolean
+
+     Read additional autologin entries from `~/.netrc'.  *Note
+     Bookmarks::.
+
+`use_passive_mode'
+     type: boolean
+
+     If true, use passive mode data connections. You might have to do
+     this if you are behind a proxy.
+
+`reverse_dns'
+     type: boolean
+
+     If this option is true, IP addresses will be reverse looked up in
+     the DNS for a hostname, which can be slow. Set to false to skip
+     this.
+
+`waiting_dots'
+     type: boolean
+
+     If this option is true, filenames will be completed with ... while
+     waiting for the directory listing to be downloaded.
+
+`cache_timeout'
+     type: integer
+
+     Time (in seconds) before a cached directory times out and needs to
+     be reread. Set to 0 (zero) to disable the timeout.
+
+`verbose'
+     type: boolean
+
+     Show all replies received from remote host.
+
+`debug'
+     type: boolean
+
+     Show exactly what is going on. Prints all FTP commands sent to
+     remote host and all replies received, including response code.
+
+`trace'
+     type: string
+
+     Create trace files in `~/.yafc/trace/trace.<pid>'.
+
+`ssh_program'
+     type: string
+
+     Path to local ssh program which will be used in SSH2 connections.
+     Note that only SSH version 2 is supported.
+
+`sftp_server_program'
+     type: string
+
+     Path to remote sftp-server program. Leave commented to use the sftp
+     subsystem. See also *Note open::.
+
+`inhibit_startup_syst'
+     type: boolean
+
+     Set to true to skip query of remote system on connect.
+
+`use_env_string'
+     type: boolean
+
+     Alter the environment strings to reflect what Yafc is doing.  This
+     information can be seen with the shell command `ps'.
+
+`remote_completion'
+     type: boolean
+
+     Use tab to complete remote files. Yeahh.
+
+`auto_bookmark'
+     type: yes/no/ask
+
+     If set to `yes', Yafc automatically creates a bookmarks for the
+     site when the connection is closed. Setting this to `ask', makes
+     yafc ask if to create the bookmark.
+
+     The bookmark is given an appropriate default aliases name.
+
+`auto_bookmark_update'
+     type: yes/no/ask
+
+     If set to `yes', yafc will always update an existing bookmark when
+     the connection is closed, if not the `noupdate' flag has been set,
+     see the `noupdate' keyword in *Note Bookmark keywords::.
+
+`auto_bookmark_save_password'
+     type: boolean
+
+     If set to `yes', Yafc don't ask whether to save passwords in the
+     bookmarks file. Anonymous password, though, are always saved.
+
+     Passwords in the bookmarks file are stored either as clear text or
+     base64-encoded. Be sure the file is not world readable (`chmod
+     0600 bookmarks'.)
+
+`auto_bookmark_silent'
+     type: boolean
+
+     If set to `true', Yafc won't say anything about automatically
+     created bookmarks.
+
+`default_type'
+     type: string
+
+     Specifies the default type used for file transfers, either
+     `binary' or `ascii'. Setting this to `ascii' can mess up binary
+     files (ascii mode rewrites the end-of-line characters).
+
+`default_mechanism'
+     type: string
+
+     This option specifies which security mechanisms to try, in given
+     order.  It is a colon-separated string, supported values are
+     "krb4", "krb5" and "none".  Example: `default_mechanism
+     "krb4:krb5"'
+
+`ascii_transfer_mask'
+     type: string
+
+     Filenames matching any of these filemasks are always transferred
+     in `ascii' mode, regardless of the value of the `default_type'
+     keyword. This can be overridden with the `--type' option to
+     get/put.
+
+     Masks are separated by colons (eg. `*.ext1:*.ext2:filename*') and
+     are case sensitive. This option can be specified multiple times;
+     masks will be appended.
+
+     Preferrably used with `default_type' set to `binary'.
+
+`transfer_first_mask'
+     type: string
+
+     Filenames matching any of these masks are transferred before other
+     files.
+
+     Masks are separated by colons (eg. `*.sfv:*.nfo:README*:md5sum*')
+     and are case sensitive. This option can be specified multiple
+     times; masks will be appended.
+
+`beep_after_long_command'
+     type: boolean
+
+     Beep after a long command is finished. Use `long_command_time' to
+     specify how long a `long' command is.
+
+`long_command_time'
+     type: integer
+
+     Number of seconds for command to become `long'
+
+`command_timeout'
+     type: integer
+
+     How long (in seconds) before aborting a command without response.
+
+`connection_timeout'
+     type: integer
+
+     How long (in seconds) before aborting a connection without
+     response.
+
+`connect_attempts'
+     type: integer
+
+     Number of times to try to re-connect if login failed (due to busy
+     server.)  Use the value -1 for unlimited number of tries, and 0 to
+     disable this feature.
+
+`connect_wait_time'
+     type: integer
+
+     Number of seconds to wait between connection attempts.
+
+`use_history'
+     type: boolean
+
+     Save and load history lines in `~/.yafc/history'.  This is a no-op
+     if not compiled with Readline.
+
+`history_max'
+     type: integer
+
+     Max number of history lines to save in the history file.  This is
+     a no-op if not compiled with Readline.
+
+`startup_local_directory'
+     type: string
+
+     Yafc will change to this (local) directory upon startup.
+
+`nohup_mailaddress'
+     type: string
+
+     If set, Yafc sends mail to this address when nohup transfers are
+     finished.  *Note Nohup transfers::.
+
+`sendmail_path'
+     type: string
+
+     Complete path to sendmail used by `nohup_mailaddress' above.
+
+`prompt1'
+     type: string
+
+     This prompt is printed when no connection is established.
+
+     See *Note Prompt codes::.
+
+     You can put escape codes here, for example if you want a colored
+     prompt "%{\e[01;31m%}ftp%{\e[0m%}" will be "ftp" in red, if your
+     terminal supports ISO 6429 (ANSI) color codes. *Note Colors::.
+
+`prompt2'
+     type: string
+
+     connected but not logged in.
+
+`prompt3'
+     type: string
+
+     connected and logged in
+
+`transfer_begin_string'
+     type: string
+
+     This string is printed before the actual transfer begins.
+
+     These strings are printed with the `--verbose' option to get/put.
+
+     *Note Transfer codes:: for special character codes that can be
+     used in this string to show dynamic information.
+
+`transfer_string'
+     type: string
+
+     This string is printed (approx.) every second or so during the
+     transfer with a trailing carriage return.
+
+     *Note Transfer codes:: for special character codes that can be
+     used in this string to show dynamic information.
+
+`transfer_end_string'
+     type: string
+
+     This string is printed when the transfer is finished.
+
+     *Note Transfer codes:: for special character codes that can be
+     used in this string to show dynamic information.
+
+`transfer_xterm_string'
+     type: string
+
+     This string is printed at the same time `transfer_string' is
+     printed, if the current $TERM variable is defined in
+     `xterm_title_terms'. This string can be used to reflect dynamic
+     information about the current transfer in the title bar of an
+     Xterm.
+
+     *Note Transfer codes:: for special character codes that can be
+     used in this string to show dynamic information.
+
+`tilde'
+     type: boolean
+
+     Display ~ instead of full home directory path for various commands.
+
+`xterm_title1'
+     type: string
+
+     Xterm window titles
+
+     same codes as for the prompts, see *Note Prompt codes::.
+
+     This is an excerpt from the Xterm-title mini-HOWTO:
+
+          Many people find it useful to set the title of a terminal to
+          reflect dynamic information, such as the name of the host the
+          user is logged into, the current working directory, etc.
+
+          This may be done by using XTerm escape sequences. The
+          following sequences are useful in this respect:
+
+         `ESC]0;_string_BEL'
+               Set icon name and window title to _string_
+
+         `ESC]1;_string_BEL'
+               Set icon name to _string_
+
+         `ESC]2;_string_BEL'
+               Set window title to _string_
+
+          where `ESC' is the _escape_ character (\033), and `BEL' is
+          the _bell_ character (\007).
+
+          _Note_: these sequences apply to most xterm derivatives, such
+          as nxterm, color-xterm and rxvt. Other terminal types often
+          use different escapes; see the appendix for examples. For the
+          full list of xterm escape sequences see the file ctlseq2.txt,
+          which comes with the xterm distribution, or xterm.seq, which
+          comes with the rxvt distribution.
+
+          These escapes really need to be applied every time the prompt
+          changes.  This way the string is updated with every command
+          you issue and can keep track of information such as current
+          working directory, username, hostname, etc.
+
+     Example: `xterm_title1 "\e]0;Yafc\x07"' sets the xterm window
+     title and icon name to `Yafc'.
+
+`xterm_title2'
+     type: string
+
+     Example: `xterm_title1 "\e]0:Yafc - %h\x07"' sets the xterm window
+     title and icon name to `Yafc - HOSTNAME'.
+
+`xterm_title3'
+     type: string
+
+     Example: `xterm_title1 "\e]0;Yafc - %u@%h:%~\x07"' sets the xterm
+     window title and icon name to `Yafc - USER@HOSTNAME:DIRECTORY'.
+
+`xterm_title_terms'
+     type: string
+
+     List of $TERM's, separated with spaces, which can handle xterm
+     escape sequences.
+
+
+File: yafc.info,  Node: Prompt codes,  Next: Transfer codes,  Prev: Keywords,  Up: Configuration
+
+Prompt codes
+============
+
+   These codes can be used in the prompts, *Note Keywords::, to reflect
+dynamic information. For all codes, there may be an optional minimum
+field width.  This is an integer between the '%' and the code character.
+
+`%u'
+     username
+
+`%h'
+     remote host name (as passed to open)
+
+`%H'
+     %h up to the first '.'
+
+`%m'
+     remote machine name (as returned by gethostbyname)
+
+`%M'
+     %m up to the first '.'
+
+`%n'
+     remote IP number
+
+`%w'
+     current remote working directory
+
+`%W'
+     basename of %w
+
+`%~'
+     as %w but home directory is replaced with ~
+
+`%l'
+     current local working directory
+
+`%L'
+     basename of %l
+
+`%c'
+     Total number of connections open
+
+`%C'
+     The number of the currently active connection
+
+`%%'
+     a percent sign
+
+`%#'
+     a '#' if (local) user is root, else '$'
+
+`%{'
+     begin sequence of non-printing chars, ie escape codes
+
+`%}'
+     end sequence of non-printing chars, ie escape codes
+
+`\e'
+     an escape character (hex 0x1B)
+
+`\n'
+     a newline
+
+`\t'
+     a tab character
+
+`\r'
+     a carriage return
+
+`\x##'
+     character 0x## (hex)
+
+   Example:
+
+     prompt3 "(%C) %{\e[1%}myafc%{\e[0m%} %u@%h:%42~> "
+
+
+File: yafc.info,  Node: Transfer codes,  Next: Aliases,  Prev: Prompt codes,  Up: Configuration
+
+Transfer codes
+==============
+
+   These codes can be used in the transfer strings. For all codes,
+there may be an optional minimum field width. This is an integer
+between the '%' and the code character. For example will %17v be
+expanded to a visual progress bar with length 17. If the field width if
+negative (start with a minus), the string is left-justified, so using
+%-20S will show the total size, padded with spaces to 20 characters.
+
+`%r'
+     source filename
+
+`%R'
+     source filename w/path
+
+`%l'
+     target filename
+
+`%L'
+     target filename w/path
+
+`%s'
+     size transferred so far
+
+`%S'
+     total size (if available)
+
+`%e'
+     ETA (time left)
+
+`%p'
+     percent transferred so far
+
+`%%'
+     percent sign
+
+`%b'
+     transfer rate (Bps)
+
+`%B'
+     transfer rate (Bps) or "stalled" if stalled
+
+`%t'
+     time elapsed
+
+`%v'
+     visual progress bar
+
+   Example:
+
+     transfer_string "%5p%% [%{\e[32m%}%25v%{\e[0m%}] %s/%S ETA %{\e[32m%}%e%{\e[0m%} %B"
+
+
+File: yafc.info,  Node: Aliases,  Next: Colors,  Prev: Transfer codes,  Up: Configuration
+
+Aliases
+=======
+
+   Just like in the shell, you can create aliases for commands you use
+often, with options you like.
+
+   Aliases can be defined in the configuration file or directly on the
+command line. Aliases defined on the command line are only valid in the
+current session. *Note alias::.
+
+   The best way to explain aliases, I think, is to look at some
+examples:
+
+* Menu:
+
+* Alias examples::              examples on aliases
+
+
+File: yafc.info,  Node: Alias examples,  Up: Aliases
+
+Alias examples
+--------------
+
+`alias ls "ls -F --color"'
+     Override the command `ls' to be expanded to `ls -F --color'.  Any
+     arguments given to the new `ls' alias will be appended.
+
+`alias ll "ls -l"'
+     `ll' will be expanded to `ls -l', regardless if there is an alias
+     for plain `ls' like the one above. Aliases can't be nested.
+
+`alias ls list'
+     Override the command `ls' to be expanded to the command `list'.
+     This is fine, but will generate a warning; `warning: alias 'ls'
+     shadows a command with the same name', because the original
+     command `ls' is lost and can't be referenced (except through
+     another alias.)
+
+`alias pls "ls %1 | less"'
+     Create a new command `pls', which lists the contents of a
+     directory and pages it through the pager `less'. The `%1' keyword
+     is replaced with the first argument to `pls', any other arguments
+     will be appended at the end (to the local `less' command.)
+
+`alias pls "ls %* | $PAGER"'
+     Create a new command `pls', which lists the contents of a
+     directory and pages it through your favourite pager. Any arguments
+     given to `pls' will be inserted between ls and the pipe because of
+     the `%*' keyword. Using `$PAGER' is fine, it is expanded by the
+     ordinary shell.
+
+`alias rels "cache --touch %*; ls -F --color %*"'
+     Create a new command `rels', which flushes the directories from
+     the cache before listing them. Two `%*' sequences are needed to
+     insert the arguments at both places.
+
+
+File: yafc.info,  Node: Colors,  Prev: Aliases,  Up: Configuration
+
+Colors
+======
+
+   Escape codes can be used to display colors in the transfer strings
+and the prompts. All escape codes must be surrounded by %{ and %} pairs
+for readline to correctly wrap long lines.
+
+   The built-in command `ls' has an option `--color'. You must set the
+environment variable LS_COLORS (or LS_COLOURS) for this to work.  See
+manpage for GNU ls(1) and *note dircolors: (fileutils)dircolors
+invocation, for information how to do this. If you don't set
+LS_COLO[U]RS, you can still use the `--color' option, since Yafc
+provides some default settings.
+
+* Menu:
+
+* ANSI attribute codes::        Escape codes for attributes
+
+
+File: yafc.info,  Node: ANSI attribute codes,  Up: Colors
+
+ANSI attribute codes
+--------------------
+
+   An ANSI escape sequence has the format `ESC[X;Ym', where `ESC' is
+the escape character (octal 033). `X' and, optionally, `Y', is one of
+the following escape codes:
+
+   * attribute codes
+
+        - 00 = none
+
+        - 01 = bold
+
+        - 04 = underscore
+
+        - 05 = blink
+
+        - 07 = reverse
+
+        - 08 = concealed
+
+
+   * text color codes
+
+        - 30 = black
+
+        - 31 = red
+
+        - 32 = green
+
+        - 33 = yellow
+
+        - 34 = blue
+
+        - 35 = magenta
+
+        - 36 = cyan
+
+        - 37 = white
+
+
+   * background color codes
+
+        - 40 = black
+
+        - 41 = red
+
+        - 42 = green
+
+        - 43 = yellow
+
+        - 44 = blue
+
+        - 45 = magenta
+
+        - 46 = cyan
+
+        - 47 = white
+
+
+
+   For example, the sequence `ESC[1;32myafc rulesESC[0m' will be the
+string `yafc rules' in bright green, after which the attribute is
+restored to normal.
+
+
+File: yafc.info,  Node: Bookmarks,  Next: Kerberos,  Prev: Configuration,  Up: Top
+
+Bookmarks
+*********
+
+   Just like creating bookmarks for web pages in a browser, you can
+create bookmarks for ftp sites in Yafc. These can later be used for
+autologin to that site.
+
+   When connected to an ftp site, use the `bookmark' command (*Note
+bookmark::) to create a bookmark for that site. If you logged in with a
+username and password, Yafc will ask if you want to save the password in
+the bookmarks file. If you do, be sure it isn't world readable.  By
+using the `auto_bookmark' keyword in the configuration file, Yafc can
+create bookmarks automatically for new sites.
+
+   The bookmarks are available to the `open' command, with tab
+completion. You can also specify a bookmark name/alias on the command
+line when starting yafc. Bookmark names/aliases can be abbreviated, as
+long as it isn't ambiguous.
+
+   The autologin information is stored in much the same way as in the
+`~/.netrc' file used by standard ftp(1), except that the macdef option
+is not supported.
+
+   An entry must begin with a `machine', `default' or `local' keyword.
+
+* Menu:
+
+* Bookmark keywords::          keywords for bookmarks
+* Bookmark examples::          examples
+
+
+File: yafc.info,  Node: Bookmark keywords,  Next: Bookmark examples,  Up: Bookmarks
+
+Bookmark keywords
+-----------------
+
+`machine'
+     Specify the hostname to connect to or a domainname. The hostname
+     can be a valid FTP URL, including username, password, etc. In that
+     case there is no need to specify the corresponding keywords. Using
+     the URL syntax is the only way to specify a non-standard port.
+
+     Domainnames should begin with a period, as in `.kth.se'. This will
+     match any hostname on that domain, except for hostnames explicitly
+     mentioned with another `machine' keyword.  You can not specify an
+     alias name for a domain entry.
+
+     To bookmark a ssh connection, use `ssh://hostname' or
+     `sftp://hostname' (they are equivalent).
+
+`alias'
+     Specifies another (verbose) name for the bookmark, like `ruby'
+     instead of `ftp.netlab.co.jp'. This is the name that will be shown
+     in the tab completion list. Valid only after a `machine' statement.
+
+`local'
+     If an entry begins with `local', it specifies how to login to all
+     local machines. Local machines are unqualified hostnames (ie,
+     hostnames without a period.)
+
+     This can be overridden with an entry for a specific machine.
+
+`default'
+     The `default' entry is used when no other `machine' or `local'
+     keyword matched. It can be used to login anonymously to all
+     unknown sites.
+
+`login'
+     Specify the username.
+
+`anonymous'
+     Try an anonymous login, uses ANON_PASSWORD.
+
+`password'
+     Specify the password, if required.
+
+`account'
+     Specify account name. Not fully supported, anyone using it?
+
+`cwd'
+     This keyword specifies a startup directory on the remote server.
+     Yafc changes the current directory when logged in.
+
+`prot'
+     The prot keyword sets the Kerberos data protection level.  Valid
+     protection levels are `safe', `clear' and `private'.
+
+     This is a no-op if not compiled with Kerberos.
+
+`mech'
+     List the preferred security mechanisms to use. This is the same as
+     `default_mechanism', except it is only used for this machine.
+
+`passive'
+     Boolean option requiring an argument (true/false). If true, use
+     passive mode in data transfers, regardless of the value of
+     `use_passive_mode' in the configuration file.
+
+`noupdate'
+     If this keyword is specified, the bookmark will not be updated
+     when a connection is closed. The `noupdate' flag can be toogled
+     with the command *Note bookmark::.
+
+
+File: yafc.info,  Node: Bookmark examples,  Prev: Bookmark keywords,  Up: Bookmarks
+
+Bookmark examples
+-----------------
+
+`default login anonymous'
+     As default, login as 'anonymous' and prompt for password
+
+`default anonymous'
+     As default, login as 'anonymous' and automatically supply your
+     email address as password.
+
+`local login mhe'
+     Login as 'mhe' on all machines on the local network (machines w/o
+     a '.')
+
+`machine .foo.bar.se login niels'
+     Login as 'niels' on all hosts on .foo.bar.se domain
+
+`machine dent.foo.bar.se login slartibartfast cwd ~/fjord'
+     Login as 'slartibartfast' on dent.foo.bar.se and start in
+     directory ~/fjord
+
+`machine slartibartfast@dent.foo.bar.se/fjord'
+     Identical to the example above, but using an ftp URL instead
+
+`machine ftp.gurka.com:4711 anonymous'
+     Login as 'anonymous' and automagically supply password from
+     anon_password, connect on non-standard port 4711
+
+`machine mayer.physto.se anonymous cwd /pub/yafc alias yafc'
+     Login anonymously to machine mayer.physto.se with other name yafc
+
+`machine shell.stacken.kth.se login mhe mech krb4 passive yes alias stacken'
+     Login as mhe using Kerberos 4 authentication, and use passive mode
+     for transfers (overrides the use_passive_mode keyword in the
+     config file)
+
+
+File: yafc.info,  Node: Kerberos,  Prev: Bookmarks,  Up: Top
+
+Kerberos
+********
+
+   If Yafc is compiled with Kerberos, it tries to authenticate using
+Kerberos 4/5 without sending the password in cleartext. For anonymous
+logins, Kerberos is never used. The default protection level for data
+connections is clear, ie no encryption on transfers. Use the command
+`prot' (*Note prot::), to change the data protection level. Valid
+arguments are `clear', `safe', and `private'. Note that confidential
+protection is not supported in Kerberos 4. You can use the `prot'
+keyword (*note Bookmark keywords::) in the bookmarks file to
+automagically set the protection level for a specific host.
+
+
+
+Tag Table:
+Node: Top900
+Node: Overview1329
+Node: Bugs2241
+Node: Obtaining Yafc2778
+Node: Motivation3025
+Node: Invoking Yafc3619
+Node: The shell6300
+Node: Yafc commands6865
+Node: !10181
+Node: afslog10315
+Node: alias10442
+Node: bookmark10565
+Node: cache11762
+Node: cat12293
+Node: cd12815
+Node: cdup13170
+Node: chmod13341
+Node: close13604
+Node: copyright13735
+Node: filetime13868
+Node: flush14008
+Node: fxp14136
+Node: get17963
+Node: help21002
+Node: idle21128
+Node: kauth21256
+Node: kdestroy21386
+Node: klist21523
+Node: krbtkfile21655
+Node: lcd21803
+Node: list21934
+Node: lpwd22042
+Node: ls22168
+Node: ltag23807
+Node: luntag23921
+Node: mkdir24044
+Node: mv24234
+Node: nlist24352
+Node: nop24474
+Node: open24754
+Node: prot26105
+Node: put26617
+Node: pwd29215
+Node: quit29370
+Node: quote29492
+Node: reopen29619
+Node: rhelp29755
+Node: rm29880
+Node: rmdir30340
+Node: rstatus30466
+Node: set30597
+Node: shell30720
+Node: site30844
+Node: source31059
+Node: status31189
+Node: switch31321
+Node: system31795
+Node: tag31935
+Node: unalias32794
+Node: untag32925
+Node: url33052
+Node: user33328
+Node: version33454
+Node: warranty33589
+Node: Nohup transfers33713
+Node: Configuration34550
+Node: Keywords35946
+Node: Prompt codes46422
+Node: Transfer codes47713
+Node: Aliases48780
+Node: Alias examples49305
+Node: Colors50870
+Node: ANSI attribute codes51575
+Node: Bookmarks52572
+Node: Bookmark keywords53807
+Node: Bookmark examples56295
+Node: Kerberos57609
+
+End Tag Table
diff -u -Naur yafc-1.0/doc/yafc_config.texi yafc-1.0.fink/doc/yafc_config.texi
--- yafc-1.0/doc/yafc_config.texi	Tue Dec 11 06:21:49 2001
+++ yafc-1.0.fink/doc/yafc_config.texi	Fri Jan 10 17:24:33 2003
@@ -2,7 +2,7 @@
 @chapter Configuration
 
 Yafc will parse a system-wide configuration file,
-@file{/etc/yafcrc}, first. Then, personal settings are read from
+@file{@PREFIX@/etc/yafcrc}, first. Then, personal settings are read from
 @file{~/.yafc/yafcrc} (overriding the global ones). If none of those
 files exists, internal defaults will be used.
 
diff -u -Naur yafc-1.0/src/main.c yafc-1.0.fink/src/main.c
--- yafc-1.0/src/main.c	Thu Dec  5 17:02:35 2002
+++ yafc-1.0.fink/src/main.c	Fri Jan 10 17:24:33 2003
@@ -385,7 +385,7 @@
 
 	if(!override_yafcrc) {
 		char *tmp;
-		parse_rc("/etc/yafcrc", false);
+		parse_rc("@PREFIX@/etc/yafcrc", false);
 		parse_rc(configfile, false);
 		asprintf(&tmp, "%s/bookmarks", gvWorkingDirectory);
 		parse_rc(tmp, false);
diff -u -Naur yafc-1.0/src/main.c~ yafc-1.0.fink/src/main.c~
--- yafc-1.0/src/main.c~	Wed Dec 31 19:00:00 1969
+++ yafc-1.0.fink/src/main.c~	Thu Dec  5 17:02:35 2002
@@ -0,0 +1,460 @@
+/* $Id: main.c,v 1.22 2002/12/05 22:02:35 mhe Exp $
+ *
+ * main.c -- parses command line options and starts Yafc
+ *
+ * Yet Another FTP Client
+ * Copyright (C) 1998-2001, Martin Hedenfalk <mhe@stacken.kth.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version. See COPYING for more details.
+ */
+
+#include "syshdr.h"
+#include "ftp.h"
+#include "gvars.h"
+#include "help.h"
+#include "alias.h"
+#include "input.h"
+#include "cmd.h"
+#if 0
+# include "setproctitle.h"
+#endif
+#include "completion.h"
+#include "login.h"
+#include "strq.h"
+#include "utils.h"
+#include "rc.h"
+#include "ltag.h"
+
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
+
+#include "yafcrc.h"
+
+void print_syntax_and_exit(char *argv0)
+{
+	printf(COPYLINE "\n");
+	printf(_("This is yet another FTP client.  Usage:\n"
+			 " %s [options] [[proto://][user[:password]@]hostname[:port][/directory] ...]\n"
+			 " proto can be either 'ftp' or 'ssh'\n"
+			 "Options:\n"
+			 "  -a, --anon        (*) anonymous login\n"
+			 "  -d, --debug           print all commands sent to/from server\n"
+			 "  -D, --dump-rc         prints the default config file to stdout\n"
+			 "  -m, --mechanism=MECH\n"
+			 "                    (*) try MECH as security mechanism(s)\n"
+			 "  -n, --norc            don't parse config file\n"
+			 "  -p, --noproxy     (*) don't connect via proxy\n"
+			 "  -q, --quiet           don't print the yafc welcome message\n"
+			 "  -r, --rcfile=FILE     use other config file instead of ~/.yafc/yafcrc\n"
+			 "  -t, --trace[=FILE]    use a trace file (mainly for debugging)\n"
+			 "               if FILE specified, use it instead of ~/.yafc/trace/trace.<pid>\n"
+			 "  -u, --noauto      (*) disable autologin\n"
+			 "  -U, --noalias     (*) disable bookmark alias lookup and abbreviation\n"
+			 "  -v, --verbose         print all replies from server\n"
+			 "  -w, --wait=TIME       use a different wait time for reconnecting\n"
+			 "  -W, --workdir=DIR     use a different working directory (instead of ~/.yafc)\n"
+			 "  -V, --version         print version information and quit\n"
+			 "  -h, --help            print this help and quit\n"
+			 "\n"
+			 "(*) only applies for login to host specified on the command line\n"
+			 "\n"
+			 "Report bugs to <yafc-devel@lists.sourceforge.net>\n\n"), argv0);
+	exit(0);
+}
+
+RETSIGTYPE tstp_sighandler(int signum)
+{
+	if(signum == SIGTSTP) {
+		reset_xterm_title();
+		raise(SIGSTOP);
+	} else if(signum == SIGCONT) {
+		if(readline_running)
+			input_redisplay_prompt();
+		print_xterm_title();
+	}
+	ftp_set_signal(signum, tstp_sighandler);
+}
+
+void init_ftp(void)
+{
+	ftp->getuser_hook = getuser_hook;
+	ftp->getpass_hook = getpass_hook;
+
+	ftp->open_timeout = gvConnectionTimeout;
+	ftp->reply_timeout = gvCommandTimeout;
+
+	ftp_set_verbosity(vbError); /* default */
+	if(gvVerbose)
+		ftp_set_verbosity(vbCommand);
+	if(gvDebug)
+		ftp_set_verbosity(vbDebug);
+}
+
+void init_yafc(void)
+{
+#ifdef HAVE_UNAME
+	struct utsname unbuf;
+#endif
+
+	gvFtpList = list_new((listfunc)ftp_destroy);
+	list_additem(gvFtpList, ftp_create());
+	gvCurrentFtp = gvFtpList->first;
+	ftp_use((Ftp *)gvCurrentFtp->data);
+	ftp_initsigs();
+
+	gvEditor = getenv("EDITOR");
+	if(!gvEditor)
+		gvEditor = getenv("VISUAL");
+	if(gvEditor)
+		gvEditor = xstrdup(gvEditor);
+	else
+		gvEditor = xstrdup("vi");
+
+#ifdef HAVE_UNAME
+	if(uname(&unbuf) == 0)
+		gvLocalHost = xstrdup(unbuf.nodename);
+#endif
+	if(!gvLocalHost)
+		gvLocalHost = xstrdup(getenv("HOST"));
+	if(!gvLocalHost)
+		gvLocalHost = xstrdup("localhost");
+
+	{
+		struct passwd *pwd;
+		pwd = getpwuid(geteuid());
+		gvUsername = xstrdup(pwd->pw_name);
+		gvLocalHomeDir = xstrdup(pwd->pw_dir);
+	}
+
+	if(!gvLocalHomeDir)
+		gvLocalHomeDir = xstrdup(getenv("HOME"));
+
+	gvWorkingDirectory = path_absolute(
+		gvWorkingDirectory ? gvWorkingDirectory : "~/.yafc",
+		get_local_curdir(),
+		gvLocalHomeDir);
+
+	gvSSHProgram = xstrdup("/usr/bin/ssh");
+
+	gvAnonPasswd = xstrdup("anonymous@");
+
+	/* init colors from LS_COLORS for ls */
+	init_colors();
+
+	/* choose default security mechanism */
+	gvDefaultMechanism = list_new((listfunc)xfree);
+#ifdef HAVE_KRB4
+# ifdef HAVE_KRB5
+	listify_string("krb5:krb4:none", gvDefaultMechanism);
+# elif defined(USE_SSL)
+	listify_string("krb5:krb4:ssl:none", gvDefaultMechanism);
+# else
+	listify_string("krb4:none", gvDefaultMechanism);
+# endif
+#elif defined(HAVE_KRB5)
+# ifdef USE_SSL
+	listify_string("krb5:ssl:none", gvDefaultMechanism);
+# else
+	listify_string("krb5:none", gvDefaultMechanism);
+# endif
+#elif defined(USE_SSL)
+	listify_string("ssl", gvDefaultMechanism);
+#else
+	listify_string("none", gvDefaultMechanism);
+#endif
+
+	gvPrompt1 = xstrdup("yafc> ");
+	gvPrompt2 = xstrdup("yafc %h> ");
+	gvPrompt3 = xstrdup("yafc %h:%42~> ");
+
+	gvTerm = xstrdup(getenv("TERM"));
+	if(!gvTerm)
+		gvTerm = xstrdup("dummy");
+	gvXtermTitleTerms = xstrdup("xterm xterm-debian rxvt");
+
+	gvBookmarks = list_new((listfunc)url_destroy);
+	gvAliases = list_new((listfunc)alias_destroy);
+	gvAsciiMasks = list_new((listfunc)xfree);
+	gvTransferFirstMasks = list_new((listfunc)xfree);
+	gvLocalTagList = list_new((listfunc)xfree);
+	gvProxyExclude = list_new((listfunc)xfree);
+
+	asprintf(&gvHistoryFile, "%s/history", gvWorkingDirectory);
+
+	gvSendmailPath = xstrdup("/usr/sbin/sendmail");
+
+	ftp_set_signal(SIGTSTP, tstp_sighandler);
+	ftp_set_signal(SIGCONT, tstp_sighandler);
+
+	gvTransferBeginString = xstrdup("%-70R\n");
+	gvTransferString = xstrdup("%5p%% [%25v] %s/%S ETA %e %B");
+/*	gvTransferEndString = xstrdup("%-40R      %s in %t @ %b\n");*/
+
+	gvTransferXtermString = xstrdup("\x1B]0;yafc - (%p%%) %r\x07");
+
+	input_init();
+}
+
+void check_if_first_time(void)
+{
+	if(access(gvWorkingDirectory, X_OK) == 0)
+		return;
+
+	if(errno == ENOENT) {
+		char *dir;
+
+/*		printf(_("This seems to be the first time you run Yafc...\n"));*/
+
+		printf(_("creating working directory %s: "), gvWorkingDirectory);
+		fflush(stdout);
+		if(mkdir(gvWorkingDirectory, S_IRUSR|S_IWUSR|S_IXUSR) != 0) {
+			perror("");
+			return;
+		}
+		chmod(gvWorkingDirectory, S_IRUSR|S_IWUSR|S_IXUSR);
+		printf(_("done\n"));
+
+		asprintf(&dir, "%s/trace", gvWorkingDirectory);
+		printf(_("creating directory %s: "), dir);
+		fflush(stdout);
+		if(mkdir(dir, S_IRUSR|S_IWUSR|S_IXUSR) != 0) {
+			perror("");
+			return;
+		}
+		chmod(dir, S_IRUSR|S_IWUSR|S_IXUSR);
+		printf(_("done\n"));
+		xfree(dir);
+
+		asprintf(&dir, "%s/nohup", gvWorkingDirectory);
+		printf(_("creating directory %s: "), dir);
+		fflush(stdout);
+		if(mkdir(dir, S_IRUSR|S_IWUSR|S_IXUSR) != 0) {
+			perror("");
+			return;
+		}
+		chmod(dir, S_IRUSR|S_IWUSR|S_IXUSR);
+		printf(_("done\n"));
+		xfree(dir);
+
+#if 0
+		else {
+			printf(_("creating default config file /yafcrc: "),
+				   gvWorkingDirectory);
+			fflush(stdout);
+			{
+				FILE *fp;
+				fp = fopen(, "w");
+				if(!fp) {
+					perror("");
+					xfree(rcdir);
+					return;
+				}
+				fprintf(fp, "%s", default_yafcrc);
+				fclose(fp);
+				printf(_("done\n"));
+			}
+		}
+#endif
+	} else
+		perror(gvWorkingDirectory);
+}
+
+int main(int argc, char **argv, char **envp)
+{
+	int c;
+	char *configfile = 0;
+	bool dotrace = false;
+	char *tracefile = 0;
+	unsigned int open_opt = 0;
+	int wait_time = -1;
+
+	bool override_yafcrc = false;
+	bool override_debug = false;
+	bool override_verbose = false;
+	bool override_welcome = false;
+
+	char *mech = 0;
+
+	struct option longopts[] = {
+		{"anon", no_argument, 0, 'a'},
+		{"debug", no_argument, 0, 'd'},
+		{"dump-rc", no_argument, 0, 'D'},
+		{"norc", no_argument, 0, 'n'},
+		{"quiet", no_argument, 0, 'q'},
+		{"rcfile", required_argument, 0, 'r'},
+		{"mechanism", required_argument, 0, 'm'},
+		{"noproxy", no_argument, 0, 'p'},
+		{"trace", optional_argument, 0, 't'},
+		{"noauto", no_argument, 0, 'u'},
+		{"verbose", no_argument, 0, 'v'},
+		{"version", no_argument, 0, 'V'},
+		{"wait", required_argument, 0, 'w'},
+		{"workdir", required_argument, 0, 'W'},
+		{"help", no_argument, 0, 'h'},
+		{0, 0, 0, 0},
+	};
+
+#ifdef SOCKS
+	SOCKSinit(argv[0]);
+#endif
+
+#ifdef ENABLE_NLS
+# ifdef HAVE_SETLOCALE
+	setlocale(LC_ALL, "");
+# endif
+	bindtextdomain(PACKAGE, LOCALEDIR);
+	textdomain(PACKAGE);
+#endif
+#if 0 && (!defined(HAVE_SETPROCTITLE) && defined(linux))
+	initsetproctitle(argc, argv, envp);
+#endif
+
+	while((c = getopt_long(argc, argv,
+						   "qhdDgant::r:uUm:pvVw:W:", longopts, 0)) != EOF)
+	{
+		switch(c) {
+		case 'a':
+			open_opt |= OP_ANON;
+			break;
+		case 'n':
+			override_yafcrc = true;
+			break;
+		case 'r':
+			configfile = xstrdup(optarg);
+			break;
+		case 't':
+			dotrace = true;
+			if(optarg)
+				tracefile = xstrdup(optarg);
+			break;
+		case 'u':
+			open_opt |= OP_NOAUTO;
+			break;
+		case 'U':
+			open_opt |= OP_NOALIAS;
+			break;
+		case 'm':
+			mech = xstrdup(optarg);
+			break;
+		case 'p':
+			open_opt |= OP_NOPROXY;
+			break;
+		case 'd':
+			override_debug = true;
+			break;
+		case 'D':
+			printf("%s", default_yafcrc);
+			return 0;
+		case 'q':
+			override_welcome = true;
+			break;
+		case 'v':
+			override_verbose = true;
+			break;
+		case 'V':
+			printf(PACKAGE " " VERSION " (" HOSTTYPE ")\n");
+			return 0;
+		case 'w':
+			wait_time = atoi(optarg);
+			break;
+		case 'W':
+			stripslash(optarg);
+			gvWorkingDirectory = xstrdup(optarg);
+			break;
+		case 'h':
+			print_syntax_and_exit(argv[0]);
+			break;
+		case '?':
+			return 1;
+		}
+	}
+
+	if(!override_welcome)
+		puts(_(FULLVER));
+
+	init_yafc();
+
+	if(!configfile)
+		asprintf(&configfile, "%s/yafcrc", gvWorkingDirectory);
+
+	check_if_first_time();
+
+	if(!override_yafcrc) {
+		char *tmp;
+		parse_rc("/etc/yafcrc", false);
+		parse_rc(configfile, false);
+		asprintf(&tmp, "%s/bookmarks", gvWorkingDirectory);
+		parse_rc(tmp, false);
+		xfree(tmp);
+	}
+
+	if(gvReadNetrc)
+		parse_rc("~/.netrc", false);
+
+	if(gvProxyType != 0 && gvProxyUrl == 0) {
+		fprintf(stderr, _("No proxy host defined!\n\n"));
+		gvProxyType = 0;
+	}
+
+	if(override_debug)
+		gvDebug = true;
+	if(override_verbose)
+		gvVerbose = true;
+	if(wait_time != -1) {
+		if(wait_time < 0)
+			fprintf(stderr, _("Invalid value for --wait: %d\n"), wait_time);
+		else
+			gvConnectWaitTime = wait_time;
+	}
+
+	init_ftp();
+
+	if(dotrace || gvTrace) {
+		if(!tracefile)
+			asprintf(&tracefile, "%s/trace/trace.%u",
+					 gvWorkingDirectory, getpid());
+		if(ftp_set_trace(tracefile) != 0)
+			fprintf(stderr, _("Couldn't open tracefile '%s': %s\n"),
+					tracefile, strerror(errno));
+		xfree(tracefile);
+	}
+
+	if(optind < argc) {
+		char *s;
+		int i;
+
+		if(!gvAutologin)
+			open_opt |= OP_NOAUTO;
+
+		for(i=optind; i<argc; i++) {
+#ifdef HAVE_GETTIMEOFDAY
+			struct timeval beg, end;
+			gettimeofday(&beg, 0);
+#endif
+			yafc_open(argv[i], open_opt, mech, 0);
+#ifdef HAVE_GETTIMEOFDAY
+			gettimeofday(&end, 0);
+			end.tv_sec -= beg.tv_sec;
+			if(gvBeepLongCommand && end.tv_sec > gvLongCommandTime)
+				fputc('\007', stderr);
+#endif
+#ifdef HAVE_LIBREADLINE /* add appropriate 'open' command to history */
+			asprintf(&s, "open %s%s",
+					 argv[i], test(open_opt, OP_ANON) ? " --anon" : "");
+			add_history(s);
+			xfree(s);
+#endif
+		}
+	}
+
+	load_ltaglist(false, false, 0);
+
+	command_loop();
+	/* should not return */
+	list_free(gvFtpList);
+	return 0;
+}
diff -u -Naur yafc-1.0/yafc-import_ncftp.pl yafc-1.0.fink/yafc-import_ncftp.pl
--- yafc-1.0/yafc-import_ncftp.pl	Wed Dec 31 19:00:00 1969
+++ yafc-1.0.fink/yafc-import_ncftp.pl	Fri Jan 10 17:24:33 2003
@@ -0,0 +1,68 @@
+#!/usr/bin/perl -w
+#
+# A simple ncftp -> yafc bookmark converter by Mike Wayne (arc@cts.com)
+# Sorry if my code sucks!
+#
+# Example usage:
+# yafc-import_ncftp.pl ~/.ncftp/bookmarks >> ~/.yafc/bookmarks
+#
+# If a filename argument is not given, ~/.ncftp/bookmarks will be read.
+
+use strict;
+my $mime;
+
+# set these to their appropriate settings.
+my $anonpass	= 'user@host.com';			# anonymous password
+my $ncftpbm	= "$ENV{HOME}/.ncftp/bookmarks";	# ncftp bookmarks
+
+eval 'use MIME::Base64';
+if ($@ eq '') { $mime = 1 }
+
+chomp($anonpass = encode_base64($anonpass)) if $mime;
+$ncftpbm = $ARGV[0] if $ARGV[0];
+
+open(BOOKMARKS, $ncftpbm) or die "Unable to open ncftp bookmarks file $ncftpbm: $!\n";
+
+print <<NOTICE;
+# this is an automagically created file
+# so don't bother placing comments here, they will be overwritten
+# make sure this file isn't world readable if passwords are stored here
+
+NOTICE
+
+while (<BOOKMARKS>)
+{
+	if ($_ =~ /,/)
+	{
+		my @bookmark = split(/,/, $_);
+
+		$bookmark[2] ||= 'anonymous';
+		$bookmark[7] ||= 21;
+	
+		print "machine $bookmark[1]:$bookmark[7] alias '$bookmark[0]'\n  login ";
+
+		if ($bookmark[2] eq 'anonymous')
+		{
+			print 'anonymous password ';
+			print "[base64]" if $mime;
+			print $anonpass;
+		}
+
+		else
+		{
+			print $bookmark[2];
+
+			$bookmark[3] =~ s/^\*encoded\*/\[base64\]/ if $bookmark[3];
+			print " password $bookmark[3]" if $bookmark[3];
+		}
+
+		$bookmark[5] = "\"$bookmark[5]\"" if ($bookmark[5] =~ m/ /);
+		print " cwd $bookmark[5]" if ($bookmark[5] && $bookmark[5] ne '/');
+
+		print "\n\n";
+	}
+}
+
+print "# end of bookmark file\n";
+
+close(BOOKMARKS);
