2000-10-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: fix globbing for tilde; optimize
	  the case when pattern does not contain wildcards.
	* HttpDir.cc, FtpGlob.cc: some code moved to FileAccess.cc.
	* complete.cc: call NoInhibitTilde.

2000-10-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h, FtpSplitList.cc, FtpSplitList.h,
	  FtpGlob.cc, HttpDir.cc: Glob::add cleanup.
	* complete.cc: fix completion for filenames starting with tilde.
	* ftpclass.cc, ftpclass.h: fix for old gcc (ftps undefined).

2000-10-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: handle CONNECT_VERIFY in CONNECTED state.
	* NetAccess.cc: Disconnect before Connect.

2000-10-03  Alexander V. Lukyanov  <lav@yars.free.net>

	* Makefile.am: use C compiler to compile modules, it should use c++
	  for c++ files automatically.
	* ResMgr.cc: use extern "C" for regex.h, this fixes linking for some
	  systems.

2000-09-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: fix for `ls|head'.
	* ftpclass.cc, resource.cc: ftp:bind-data-socket new setting;
	  fix for assert(rate_limit!=0).
	* url.cc, url.h: provisions for not using rfc1738 for ftp urls.

2000-09-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: fix lcd & in queue.
	* commands.cc: fix cmd:move-background handling when there is no jobs.

2000-09-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: fix cd & in queue.

2000-09-21  Arkadiusz Miskiewicz <misiek@pld.org.pl>

	* ftpclass.cc: fix addr_received initialization for ipv6.

2000-09-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* module.cc: aliases for https and ftps.

2000-09-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc: fix error on some compilers (e.g. irix).

2000-09-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* pgetJob.cc: fix yet another hang bug (hopefully last).

2000-09-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: move out of CONNECTING_DATA_SOCKET after DataClose
	  (fixes rare `bad file number' error).
	* MirrorJob.cc: propagate remove_source_files to submirrors.

2000-09-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: include modconfig.h. (fixes module compilation).

2000-09-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* buffer.cc: handle eof on ssl connection properly.

2000-09-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: don't remember path=/ in cookies; skip all spaces
	  before a cookie.

2000-09-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc, MirrorJob.h: support for redirection.
	* CmdExec.cc: move `cd' out ot translated string.
	* Http.cc, LocalAccess.cc, Fish.cc, MirrorJob.cc, SleepJob.cc:
	  don't rely on MODULE.
	* Makefile.am: don't define MODULE.

2000-09-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* GetJob.cc, GetJob.h: restore mode on new file.

2000-09-05  Matthias Andree <matthias.andree@gmx.de>

	* FtpDirList.cc: reformat EPLF even if mtime if absent.

2000-08-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: try PORT if connect fails after fixing
	  pasv address.
	* Http.cc: really skip rest of body from recv_buf; call recv_buf->Do.

2000-08-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: fix error handling for port-range; bind local address
	  to data socket in passive mode (helps for rare case of routing change).

2000-08-26  Nicolas Noble <nicolas.n.@wanadoo.fr>

	* command.cc: fix N_ for queue help.

2000-08-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, CmdExec.h: follow redirections in `cd'.
	* mkdirJob.cc, rmJob.cc: add forgotten plural.
	* module.cc: define RTLD_GLOBAL to 0 if needed.
	* url.cc: set path=/ by default for http urls.
	* CopyJob.cc, pgetJob.cc: move string out of #define to help
	  xgettext to extract it (reported by Nicolas Noble).
	* FileAccess.cc: allow //path (required by posix and needed for
	  novell). Reported by Andreas Quitzow <u042415@xham.dlh.de>.
	* ftpclass.cc, ftpclass.h: fix ssl support (tested on ftpd-tls).

2000-08-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: set *_ssl_connected after SSL_connect.

2000-08-24  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.h, Fish.h: fix last comma in enum.
	* ResMgr.h: make ResMgr::Resource public.

2000-08-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: fix Seek of FileCopyPeerFDStream. This fixes
	  problem with downloading from REST uncapable servers.

2000-08-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: if server returned address from private network
	  and its own address is not in private network, don't beleave it
	  and use original server address.

2000-08-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: check data port for ftps-data; all_lines
	  new member; check all_lines for auto-sync-mode; fix ftps connection
	  borrowing.
	* resource.cc: make use-site-idle off by default; validate https:proxy.
	* HttpDir.cc: fix unterminated comment handling; handle bsd-like
	  ftp listings from apache proxy.

2000-08-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: (MergeCookies) null-terminate cookie properly.

2000-08-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: support for ssl (AUTH TLS).
	* resource.cc: new settings ftp:ssl-allow, ssl-force, ssl-protect-data;
	  allow https for http:proxy; set https:proxy by https_proxy.
	* Http.cc: move Https::New to ifdef; fix cookie closure match.

2000-08-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h: init https properly; rework cookie sending/receiving,
	  now cookies are joined from all matching closures, path is
	  also checked; use lftp_ssl_new; don't disconnect in some cases.
	* ResMgr.cc, ResMgr.h: (QueryNext) new method for cookies merging.
	* buffer.cc: use service lftp_ssl* functions.
	* ftpclass.cc, ftpclass.h: send SITE IDLE.
	* resource.cc: new setting ftp:use-site-idle.
	* ResMgr.cc: quote ;& properly.
	* MirrorJob.cc: increment error_count when cd fails.

2000-07-31  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: add ] to list of wildcards.
	* FtpGlob.cc: fix coredump on empty directories.
	* complete.cc: fix filename quotation.
	* lftp_ssl.cc, lftp_ssl.h: new files.

2000-07-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: res_prefix new member.
	* FindJob.cc, Fish.cc, Fish.h, FtpDirList.cc, LocalAccess.cc,
	  Resolver.cc: use new IOBuffer.
	* Http.cc, Http.h: implement https; use IOBuffer.
	* HttpDir.cc: skip comments in html; use IOBuffer.
	* buffer.cc, buffer.h: IOBuffer class; IOBufferSSL for ssl IO.
	* resource.cc: add https:proxy setting.

2000-07-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: fix # quoting.

2000-07-28  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc, FileCopy.h: don't create file in reget until data are
	  available.
	* buffer.cc, buffer.h: get_size new method; getsize_and_seek_end removed.

2000-07-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* ResMgr.cc, ResMgr.h: NoClosure validator.
	* CmdExec.cc, FileCopy.cc, GetJob.cc, Resolver.cc, Speedometer.cc,
	  resource.cc: use NoClosure where needed.
	* commands.cc: add closure for cmd:default-protocol and
	  bmk:save-passwords.
	* resource.cc: add http:post-content-type; validate http:put-method.
	* Http.cc: use http:post-content-type.
	* FileSet.cc: (FileSet::Merge) fix long standing bug, which caused
	  rare coredumps on completion.

2000-07-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: apply non-absolute redirection to orig_url.
	* ResMgr.cc, ResMgr.h: regexp validator.
	* ftpclass.cc, resource.cc: ftp:auto-sync-mode setting.

2000-07-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc, MirrorJob.h: count errors; (ExitCode) implemented.
	* Resolver.cc: use getipnodebyname when available (for solaris8).
	* ftpclass.cc: handle "" in PWD reply; fix NextPeer selection.
	* NetAccess.cc: don't reset peer_curr on Resolve.
	* pgetJob.cc: fix eta.

2000-07-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.cc: fix duplicate error messages.
	* commands.cc: help update: mirror -P, exit bg.

2000-07-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: (GetVisualProto, SetVisualProto)
	  new methods; handle http proxy on creation of ftp session.
	* Http.cc: use ftp:proxy if session was created as ftp.
	* HttpDir.cc: check for ftp too.
	* commands.cc: create new session everytime.
	* resource.cc: check ftp:proxy for http://.

2000-07-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.cc, Job.h: support for several jobs being waited for
	  (preparation for mirror --parallel).
	* CmdExec.cc, CmdExec.h, CopyJob.cc, FindJob.cc, MirrorJob.cc,
	  SleepJob.cc, commands.cc, mgetJob.cc: according to Job.cc.
	* MirrorJob.cc, MirrorJob.h: --parallel option (finally!).
	* CatJob.cc, CatJob.h, commands.cc: auto ascii for cat; wait all
	  for new waiting scheme.
	* CopyJob.cc, CopyJob.h: support several CopyJob's in CopyJobEnv.
	* Job.cc, Job.h: (WaitForAllChildren) new method for `wait all'.

2000-07-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.h, FileAccess.cc: use FileSet in Glob.
	* CmdExec.cc, FileSet.h, FileSet.cc, FtpGlob.cc, FtpGlob.h,
	  FtpListInfo.cc, FtpListInfo.h, FtpSplitList.cc, HttpDir.cc,
	  HttpDir.h, LocalAccess.cc, mgetJob.cc: change for FileSet in Glob.
	* complete.cc: FileSet from Glob; append / for directories (finally!).

2000-07-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileSet.cc: don't pass REG_NOSUB to regexec, this fixes
	  coredump on BSD. Reported by Andriy I Pilipenko <bamby@marka.net.ua>

2000-07-16  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: invalidate dir listing cache on chmod.
	* Http.cc, Http.h: implement Suspend, Resume; resume and Roll
	  recv_buf on Close.
	* SMTask.h: (IsSuspended) new method.
	* buffer.cc: resume in_FA before Close.

2000-07-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* NetAccess.cc: (SocketNumericAddress) use SocketAddrLen, this fixes
	  a problem with solaris8.
	* Http.cc: set real_pos=0 when no_ranges==true.
	* commands.cc: fix `open -u ... -p ... bookmark_name'.

2000-07-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: (SendArrayInfoRequests) new method;
	  fix gcc-2.96 error; fix a coredump; add asserts.
	* LocalAccess.cc: fix rels.

2000-07-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: don't query for accept* if hftp.
	* pgetJob.cc: fix deadlock.

2000-07-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: fix error with gcc-2.96.

2000-07-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: fix potential memory leak.

2000-07-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftp.cc, resource.cc: ask for password for ftp:proxy.
	* Http.cc: workaround for redirections without "\n\n";
	  check if all data arrived before disconnecting; set body_size=0
	  on "204 No Content"; handle "100 Continue".

2000-07-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: (FileAccess::ClassInit) new function;
	  move calls of Ftp::ClassInit there.
	* lftp.cc: call FileAccess::ClassInit.
	* Filter.cc, Filter.h: add stderr_to_stdout flag.
	* FtpDirList.cc, FtpListInfo.cc, FtpSplitList.cc, HttpDir.cc:
	  fix printing for off_t.

2000-07-03  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: fix compilation problem on IRIX.

2000-06-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: don't Open NULL file, use "".

2000-06-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc: use lstat instead of stat on local file before mkdir.
	* Job.cc, Job.h: (FindAnyChild) new method.
	* CmdExec.cc, CmdExec.h, commands.cc: support for `wait all'.
	* ftpclass.cc: fix RETR reply handling (was broken in A00625 snapshot).
	* Http.cc: don't use |= on bool.

2000-06-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* resource.cc: limit max-retries by default.
	* ftpclass.cc: fix 4xx handling in file access (broken by recent changes).

2000-06-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: (StrError) optimize; add error text to "Login failed".
	* NetAccess.cc, NetAccess.h, resource.cc: net:persist-retries new setting.
	* ftpclass.cc, ftpclass.h: rework of reply handling; persist support.

2000-06-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc, FileCopy.h: log redirections; fix init of redirections;
	  (FileCopyPeerFA::Init) new method.
	* Http.cc, resource.cc: new settings http:accept, http:accept-charset,
	  http:accept-language.

2000-06-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, CmdExec.h, commands.cc, lftp.cc: new setting
	  cmd:move-background; (Feeder::RealEOF) new method.
	* FileAccess.cc, FileAccess.h, Http.h, Http.cc, FileCopy.cc,
	  FileCopy.h: new setting xfer:max-redirections; redirection support;
	  in http code - check for 20X code before using size/date.

2000-06-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: use strncasecmp for special cookie checking; handle domain=.

2000-06-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopyFtp.cc, Fish.cc, Fish.h, FtpDirList.cc, FtpListInfo.cc,
	  HttpDir.cc, NetAccess.cc, ftpclass.h: use off_t in many places.

2000-06-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* GetJob.cc: new setting xfer:make-backup.

2000-06-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* NetAccess.cc: use 2*rate as default limit-max.

2000-06-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.cc, CopyJob.h, FileAccess.cc, FileAccess.h, FileCopy.cc,
	  FileCopy.h, FileSet.h, Filter.cc, Filter.h, Http.cc, Http.h,
	  LocalAccess.cc, Makefile.in, Speedometer.cc, Speedometer.h,
	  buffer.cc, buffer.h, ftpclass.cc, ftpclass.h, misc.cc, misc.h,
	  pgetJob.cc, pgetJob.h, plural.c, plural.h: large file size support.

2000-06-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: apply `;type=' to hftp urls too.
	* MirrorJob.cc: chmod files if needed before continuing download.
	* xmalloc.h: add alloca_strdup2 macro.
	* resource.cc: workaround IRIX CC and Unixware c++ bug by converting
	  array to plain variables. (debugged and workaround proposed by
	  Eugene Exarevsky <zheka@relex.ru>)

2000-06-01  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc: better status line; quote more special symbols.
	* FileCopy.cc: fix positioning in FileCopyPeerFDStream.
	* FindJob.cc: change op in FinderJob_Cmd ctor.
	* Http.cc: don't pass user data as format, use %s.
	* Job.cc: fix kill all.
	* MirrorJob.cc: remove remote directories in reverse mode; fix chmod.

2000-05-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: fix quote-post; fix spurious 'Op not supp' messages and
	  looping.
	* HttpDir.cc: fix symlinks parsing in squid ftp listing.

2000-05-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: implement `quote set-cookie'; don't retry POST op if
	  some data were sent; implement `quote POST path data'.
	* Http.h: (post, post_data) new members.

2000-05-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h, resourse.cc: add http:set-cookies var.
	* xmalloc.cc: (xstrdup) correct spare allocation when str==0.

2000-05-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* resource.cc: remove `-' from default anon password.

2000-05-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: use getaddrinfo only if gethostbyname2 is not available.
	* HttpDir.cc: (remove_tags) don't remove anchor tags; add debug.
	* Http.cc: fix few bugs concerned with keep-alive support.

2000-05-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: disconnect on 421/221 reply without sending QUIT.
	* Resolver.cc: use getaddrinfo if available. (original patch
	  from Brandon Hume)

2000-05-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: use vsnprintf only if available.
	* log.cc: move vsnprintf declaration to xstring.h.
	* ftpclass.cc, ftpclass.h, resource.cc: wait for QUIT reply before
	  closing the socket; ftp:use-quit new setting.

2000-05-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* xmalloc.cc, xmalloc.h: add spare parameter to xstrdup.
	* HttpDir.cc: workaround some bugs in apache proxy.
	* GetJob.cc, bookmark.cc, history.cc: use new xstrdup parameter.
	* Http.cc, Http.h, resource.cc: add http:put-content-type setting;
	  fix Http::Send buffer allocation.
	* misc.cc, misc.h: optimize month_names.
	* CmdExec.cc: don't say Running when doing nothing.
	* FileAccess.cc, FileAccess.h: move retries here; don't reset try_time
	  on open; GetTryTime, SetTryTime, GetRetries, SetRetries new/moved here.
	* NetAccess.cc, NetAccess.h: ...from here.
	* FileCopy.cc, FileCopy.h: get/set try_time and retries on store retry.

2000-05-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: (Disconnect) don't set state before check.
	* CmdExec.cc, CmdExec.h: use TERM as closure for cmd:prompt.

2000-05-01  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: support http:put-method; don't use locale for sending
	  Last-Modified header line; add \n to Last-Modified line;
	  don't use keep-alive for PUT; fix coredump on ^C on PUT.
	* resource.cc: add http:put-method.
	* misc.cc, misc.h: export month_names.

2000-04-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h: finish keep-alive support.
	* ftpclass.cc: return from GetBetterConnection if a connection breaks.

2000-04-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: add Cookie support; allow disabling user-agent.
	* resource.cc: new setting http:cookie.
	* CatJob.cc: simplify FileCopyPeerFA creation.
	* FileAccess.cc, FileAccess.h, url.cc, url.h, Http.cc,
	  FileCopy.cc, FileCopy.h: use original URL when sending HTTP request,
	  this allows requesting URLs containing e.g. '?'.

2000-04-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: don't disable ranges always, check condition before
	  disconnect.

2000-04-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: handle old servers version 0.9 correctly.
	* CmdExec.cc: actually commit the change for ^Z handling in `cd' command.

2000-04-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: query http:user-agent explicitly.
	* MirrorJob.cc: fix compilation problem.
	* CmdExec.cc: fix stall problem with glob.
	* DummyProto.h, complete.cc, pgetJob.h: fix warnings.

2000-04-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, Http.cc: fix SetError(SEE_ERRNO) usage.
	* MirrorJob.cc: add -T option.
	* commands.cc: update mirror help.

2000-04-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileSet.cc, FileSet.h: use class TimeInterval; add loose_prec arg.
	* MirrorJob.cc, MirrorJob.h: add --loose-time-prec; handle new mirror:
	  settings.
	* ResMgr.h: make some TimeInterval methods const.
	* ftpclass.cc: lower priority of messages for failed MDTM.
	* resource.cc: new settings mirror:time-prec and loose-time-prec.

2000-04-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: workaround for `class' in nameser.h (freebsd3.2).
	* ftpclass.cc: (TransferCheck) fix wrong error handling in passive
	  STORE mode, it lead to infinite loops.

2000-04-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, CmdExec.h, lftp.cc: add cmd:interactive setting.
	* commands.cc: encode special characters in bookmark target.
	* GetPass.cc: (readline_from_file) treat ^C as empty line, not eof.

2000-04-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: workaround gcc alloca misfeature.

2000-04-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc: better error messages.

2000-04-03  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: return m, not STALL.
	* Http.cc, Http.h, resource.cc: add http:user-agent setting.
	* MirrorJob.cc, MirrorJob.h: add --Remove-source-files option.
	* ResMgr.cc: fix small memory leak.
	* pgetJob.cc: resume CopyJob, maybe this fixes rare pget hang.

2000-03-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: disconnect even if control_sock==-1.
	* Filter.cc: add O_BINARY for windows.

2000-03-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc, MirrorJob.h: check --no-perms in reverse mirror;
	  take umask into account in reverse mirror (unless --no-umask
	  is specified).
	* Http.cc, Http.h: when there is "Accept-Ranges: none", don't send
	  Ranges: again; catch size of the file when Ranges: did not work;
	  workaround squid feature when server does not support Ranges:
	  but squid emulates it and thus lftp gets timeout.
	* FileCopy.cc, FileCopy.h: emulate eof when regetting a file which
	  is already complete and source does not support restarting.

2000-03-24  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.h: (SetParentFg) new method.
	* CmdExec.cc, CopyJob.cc, FindJob.cc, MirrorJob.cc, SleepJob.cc,
	  commands.cc, mgetJob.cc, pgetJob.cc: use it.
	* lftpget: -u is obsolete.
	* MirrorJob.cc: set use_cache in child MirrorJob.

2000-03-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* Speedometer.cc: cast to int to avoid ambiguity on HP/UX.

2000-03-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, LsCache.cc, commands.cc: don't call macro alloca_strdup
	  on complex expressions.
	* FileCopy.cc: remove default value in function definition; count
	  rate when draining `put' in CONFIRM_STORE.
	* ResMgr.cc: include math.h for irix.
	* GetJob.cc: apply cwd in reverse mode.

2000-03-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: allow \n in file names, substitute it
	  with \0; clean up command sending.

2000-03-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: add debug messages.
	* Http.cc: initialize bytes_received; add debug messages;
	  simulate eof if pos>=entity_size.
	* HttpDir.cc: fix bug in TR handling, introduced yesterday.
	* Http.cc: fix no-proxy handling, always use proxy for hftp.
	* ftpclass.cc: fix no-proxy handling.

2000-03-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: treat table row as a whole line; remove tags before
	  parsing. (this helps to parse boa_indexer indices, e.g.
	  http://download.sourceforge.net)
	* FtpDirList.cc, FtpListInfo.cc: recognize permissions in EPLF listing.
	* misc.cc, misc.h: (format_perms) new function.
	* ftpclass.cc: treat cat "" as raw LIST.
	* resource.cc: make passive mode the default.

2000-03-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: debug code added.
	* FindJob.cc, FindJob.h: (quiet) new member; use it; set child jobs fg
	  if needed.
	* commands.cc: rm -f.
	* ftpclass.cc: don't delay session re-usage if connection limit is not
	  reached.

2000-03-16  Alexander V. Lukyanov  <lav@yars.free.net>

	* ResMgr.cc: call srandom if range is full.
	* ftpclass.cc: don't fail if port not available, but rather wait
	  and retry.
	* commands.cc: (command) handle args->count()==1.

2000-03-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: disallow filenames with NL;
	  call ReuseAddress if could not get available port.
	* FileAccess.cc: (Rename) assign file1 before Open; (Open) don't Close
	  if not needed.
	* buffer.cc: ignore EINTR from write.
	* NetAccess.cc, NetAccess.h: (ReuseAddress) new method.

2000-03-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, resource.cc: add ftp:web-mode.

2000-03-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: (DataAbort) disregard replies for commands sent
	  before ABOR.

2000-03-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: disallow double ABOR, disconnect instead.

2000-03-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: (GetBetterConnection) don't touch CONNECTING_STATE.
	* CmdExec.cc: fix prompt space allocation.
	* ResMgr.cc: declare random if needed.

2000-03-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* ResMgr.cc, ResMgr.h: add Range class.
	* resource.cc: add ftp:port-range.
	* ftpclass.cc: use port-range to bind data socket.

2000-03-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: make IsConnected int; simpler
	  IsBetterThan implementation.
	* Http.h, ftpclass.h: better IsConnected - assign to conneting state
	  connect level 1.

2000-03-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: use NO_SIZE and NO_DATE.
	* ftpclass.cc: save size in entity_size and simulate eof on pos>=size;
	  send proper offset for REST.
	* NetAccess.cc, NetAccess.h: add takeover_time.
	* ftpclass.cc, ftpclass.h: don't use taken-over connection immediately
	  if priority<1; pass connection count to GetBetterConnection.

2000-03-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: don't take over a connection if it has NOREST_MODE;
	  check if connection_limit is reached before interrupting a transfer.
	* commands.cc: -E for get, put, mget, mput.

2000-03-01  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, CopyJob.h, FileAccess.cc, FileCopy.cc, FileCopy.h,
	  Job.cc, Job.h, NetAccess.cc, commands.cc, ftpclass.cc, resource.cc:
	  implement net:connection-limit and net:connection-takeover
	  settings; add Fg/Bg where needed.

2000-02-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc: explain termination when cwd is not accessible.
	* FileAccess.cc, FileAccess.h: (priority) new member; (SetPriority);
	  (FirstSameSite, NextSameSite) new methods.
	* FileCopy.cc: (OpenSession) mark current task as moved.
	* Http.h: (IsConnected) implemented.
	* NetAccess.cc, NetAccess.h: (CountConnections) new method;
	  (connection_limit, connection_takeover) new members.
	* SMTask.cc, SMTask.h: add a dummy init_task so that current!=0.

2000-02-28  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: remember last REST position and do `REST 0'
	  if last REST was >0 (for broken? ftp servers that don't reset REST).
	* MirrorJob.cc: (PrintStatus) improved.
	* pgetJob.cc: get size and offset after calling super::Do, because
	  the copier can be changed by it.

2000-02-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: fix typo in mput help.

2000-02-24  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.cc, Job.h, CmdExec.cc: (Job::ListOneJob, Job::PrintJobTitle) new
	  methods; use them.

2000-02-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: raise log level of CWD reply to 3.
	* MirrorJob.cc: log directory if verbose>=3; show directory in status.
	* misc.cc, misc.h: (squeeze_file_name) new function (from CopyJob).
	* CopyJob.cc: use it.

2000-02-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: implement LOCAL_DIR mode; recognize -O;
	  use LOCAL_DIR for lcd.
	* FtpListInfo.cc: add OS2 list parser.

2000-02-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, CmdExec.h, commands.cc: (saved_session) new member;
	  save old session while new host name is verified and restore on error.
	* NetAccess.cc: nullify cwd too on bad host name error.
	* FileAccess.cc: (Rename) correct typo (which caused core dumps).

2000-02-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: count Buffered() change even when input buffer is empty.
	* Speedometer.cc: protect from rate<0.

2000-02-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: workaround server's y2k bug in MDTM.
	  (reported by Robert de Bath <rdebath@poboxes.com>)

2000-02-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc: (SuspendJob) print a better status for CopyJobEnv.
	* Speedometer.cc: reduce initial rate period to 2 seconds.

2000-02-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: close data socket when switching to no-rest mode.
	* HttpDir.cc: strip quotes from refresh URL.

2000-02-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, GetPass.cc, Job.cc, LsCache.cc, MirrorJob.cc, ResMgr.cc,
	  alias.cc, commands.cc, complete.cc, lftp.cc, netrc.cc, parsecmd.cc,
	  pgetJob.cc:
	  call xfree everywhere.
	* Filter.cc: use xfree and xgetcwd.
	* Resolver.cc: don't dup2 to fd 1.
	* SMTask.cc: add task_count and debug.
	* SleepJob.cc: use TimeoutS.
	* ftpclass.cc, ftpclass.h: add FreeResult method.
	* misc.cc: (xgetcwd) call xmalloc_register_block.
	* xmalloc.cc, xmalloc.h: count memory blocks;
	  add xmalloc_register_block.
	* NetAccess.cc: workaround gcc bug, this fixes mem leak.
	* buffer.cc: clean up gotos.
	* lftp.cc, lftp_rl.c, lftp_rl.h: readline result must be freed;
	  register it with xmalloc_register_block.

2000-02-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: fix memory leaks.
	* LsCache.cc: use xfree.
	* commands.cc: help for repeat.
	* xmalloc.cc, xmalloc.h: outline xstrdup; MEM_DEBUG it.
	* ArgV.cc, ArgV.h: fix memory leak. Allocate memory in chunks.
	* FileAccess.cc, FileAccess.h, Filter.cc, Filter.h, LocalAccess.cc:
	  don't include ArgV.h in header.
	* LsCache.h, LsCache.cc: don't dup memory in Find method.
	* FtpDirList.cc, FtpSplitList.cc, HttpDir.cc: use new LsCache::Find.
	* url.h: start implementing class url.

2000-02-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.cc: print rate using Speedometer::GetStr.

2000-02-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.cc, CopyJob.h: don't use putchar; print summary when Done().
	* pgetJob.cc: don't use putchar.
	* mgetJob.cc: don't print empty line.

2000-02-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: don't show rate when put==0.
	* Makefile.am: remove ftpget.o.
	* SMTask.cc, SMTask.h: (current) new static member; empty all block's
	  before calling all Do's.
	* NetAccess.cc: (DelayingMessage) use current->Timeout.
	* PollVec.h: add GetTimeout for debugging.
	* Speedometer.cc: use current->Timeout.
	* StatusLine.cc: use TimeoutS.

2000-02-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc: (PrintStatus) special case for CopyJobEnv in queue mode.

2000-02-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* ProcWait.cc: if waitpid fails, check pid existence.

2000-02-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: add -O option to help.
	* Http.cc: declare strptime if needed.
	* ftpclass.cc: handle "port theft" message in fxp mode.
	* FileCopyFtp.cc: check for reversing passive-source fixed; add
	  messages.
	* FileCopy.cc: add missing \n.

2000-02-01  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.h: add GetETAStrSFromTime.
	* FileCopy.cc, FileCopy.h: split off Speedometer;
	  add GetETAStrSFromTime; pass reource name to Speedometer.
	* pgetJob.cc: call cp->GetETAStrSFromTime.
	* commands.cc: set old path before cd, so that after `open url'
	  `cd -' works; add --use-cache to mirror help.
	* Speedometer.cc, Speedometer.h: new files; accept resource name
	  instead of period.
	* ProcWait.cc: don't change state to ERROR at all (because process
	  can still run after waitpid fails)
	* FtpListInfo.cc: more verbose status.
	* FtpSplitList.cc, FtpSplitList.h: measure rate.
	* MirrorJob.cc: show only li->Status(); add use_cache member;

2000-01-31  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.h, FileAccess.cc: add NO_PASSWORD option for GetFileURL.
	* history.cc: use NO_PASSWORD; encode paths in cwd_history.
	* NetAccess.cc, NetAccess.h: (ReconnectInterval, DelayingMessage) new
	  methods.
	* ftpclass.cc, Http.cc: use DelayingMessage.
	* CmdExec.cc: show job number for queue's current job.
	* complete.cc: improve completion for queue command.
	* commands.cc: improve help for queue.

2000-01-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: flush buffer in case of error.
	* ProcWait.cc: don't spin on error or done.
	* SMTask.cc: add debug code.
	* ftpclass.cc: add assert; remove obsolete code.
	* ProcWait.cc: handle waitpid errors better.

2000-01-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: check for "timed out" in reply; check if data were
	  sent or received before 5xx reply; don't spin on errors (not a bug).
	* PollVec.cc, PollVec.h: simplify.
	* CharReader.cc, FileCopy.cc, FileFeeder.cc, LocalAccess.cc,
	  ProcWait.cc, Resolver.cc, StatusLine.cc, SysCmdJob.cc, buffer.cc,
	  lftp.cc: don't use block directly.
	* GetJob.cc: check if output file is normal before renaming it.
	* Http.cc, Http.h: remove redundant CheckTimeout;
	  don't use block directly.
	* NetAccess.cc, NetAccess.h: bool CheckTimeout; don't use block
	  directly.
	* SMTask.cc, SMTask.h: use simplified PollVec.

2000-01-28  Alexander V. Lukyanov  <lav@yars.free.net>

	* url.cc: workaround for dos paths.
	* ftpclass.cc: unixware does not have IN6_ARE_ADDR_EQUAL - workaround.

2000-01-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* CharReader.h, CmdExec.cc, CopyJob.cc, FileAccess.cc, FileAccess.h,
	  FileCopy.cc, FileCopy.h, Filter.cc, FindJob.cc, FtpDirList.cc,
	  FtpGlob.cc, FtpListInfo.cc, Http.cc, HttpDir.cc, Job.cc, Job.h,
	  LocalAccess.cc, LsCache.cc, LsCache.h, MirrorJob.cc, NetAccess.cc,
	  NetAccess.h, PollVec.h, ProcWait.cc, ProcWait.h, Resolver.cc,
	  Resolver.h, SMTask.cc, SMTask.h, SleepJob.cc, StatusLine.h,
	  buffer.h, commands.cc, ftpclass.cc, ftpclass.h, log.h, mgetJob.cc,
	  pgetJob.cc: (SMTask::Delete, SMTask::Roll) new methods; use them
	  everywhere; prohibit direct SMTask destruction by making destructors
	  protected; (SMTask::deleting) new member; don't show rate if it is
	  not valid; don't call SMTask::Do directly; (NetAccess::Close) new
	  method.
	* ftpclass.cc: turn on sync mode when 331 precedes 220. (for vftpd)

2000-01-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* md5.c: check for HAVE_ENDIAN_H
	* commands.cc: options for glob; add help for glob and find.
	* ftpclass.cc: compilation fix for solaris251.

2000-01-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: runtime test for TIOCOUTQ.

2000-01-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* ChmodJob.cc, TreatFileJob.cc, TreatFileJob.h, mkdirJob.cc,
	  mkdirJob.h, rmJob.cc: recognize urls.
	* CmdExec.cc: cmd:default-protocol new setting.
	* DummyProto.cc, DummyProto.h: add DummyNoProto class.
	* FileAccess.cc: use ParsedURL::Combine; get password from .netrc
	  if not present; create DummyNoProto if protocol is not supported;
	  (GlobURL) find url prefix and use it; make StrError virtual.
	* FileAccess.h: see above.
	* FileCopy.cc: now there is no need to handle unsupported protocol.
	* FileCopyFtp.cc, FileCopyFtp.h: save/restore try_time.
	* FileSet.cc: compare DATE_UNPREC too.
	* LocalAccess.cc, LocalAccess.h: ignore AnonymousLogin and Login;
	  improve globbing.
	* MirrorJob.cc: revert the change from 1998-10-13 - don't ignore date.
	* NetAccess.h: add GetTryTime.
	* Resolver.cc, Resolver.h: add dns:use-fork setting; pass data over
	  a Buffer.
	* commands.cc: add cmd:default-protocol; change protocol in open
	  if current one is file; use .netrc not only for ftp; add option -O
	  for get, put, mget, mput; use output_file_name.
	* complete.cc: in local completion check for URLs too.
	* ftpclass.cc: disallow empty home; (ReplyLogPriority) new method;
	  handle 221 reply as 421.
	* ftpclass.h: set try_time in SetCopyMode.
	* mgetJob.cc, mgetJob.h: (make_directory) new method; use output_file_name;
	  support for -O.
	* misc.cc, misc.h: (url_file) new function; (output_file_name) new
	  function.
	* url.cc, url.h: (url::path_index) new function;
	  (ParsedURL::Combine) new method.

2000-01-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* FtpListInfo.cc: check file names for slashes.
	* FileCopy.cc: make percent using ranges.

2000-01-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: don't use netrc if protocol is specified.
	* ftpclass.cc: don't use s6_addr32, use s6_addr instead (for
	  freebsd-4.0).
	* CopyJob.cc: suppress status in Echo if output uses stdout.
	* FileCopy.cc, FileCopy.h: reconfig Speedometers.

2000-01-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.h: move NO_DATE, NO_SIZE here.
	* FileCopy.h: from here.
	* FileCopy.cc: (FileCopyPeerFA::GetStatus) don't return status if
	  session is not open.
	* FtpDirList.cc: parse EPLF listing and show it pretty.
	* FtpListInfo.cc: parse EPLF listing.
	* misc.h: move find_char here.
	* HttpDir.cc: from here; parse EPLF listings from squid.
	* ftpclass.cc: use NO_SIZE and NO_DATE macros.
	* md5.c: don't compile anything if HAVE_MD5.

2000-01-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: (OpenSession) set correct pos in PUT mode;
	  don't call SaveRollback in PUT mode; handle eof in fxp PUT.
	* SMTask.h: ensure STALL|MOVED==MOVED.
	* ftpclass.cc, ftpclass.h: make FlushSendQueue and ReceiveResp
	  return flag indicating progress; OR it with m in Ftp::Do;
	  fix condition of Disconnect in copy mode; fix SwitchToState
	  to not ignore severe errors in copy mode; outline New;
	  (SendCmd2) new method; use it everywhere; new settings use-stat,
	  stat-interval.
	* HttpDir.cc: fix spinning on & in file names when no &amp; etc match.
	* FileCopy.h: make bytes_count protected.
	* FileCopyFtp.cc: increment bytes_count.
	* Http.cc, Http.h, LocalAccess.cc, LocalAccess.h: outline (New).
	* commands.cc: optimize cmd_user; update description for user;
	  update copyright string for year 2000.
	* resource.cc: new settings ftp:use-stat, ftp:stat-interval.

2000-01-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h, FileCopyFtp.cc: fixes for FXP.
	* FileCopy.cc: don't set pos to FILE_END; don't try to figure out
	  position in fxp mode; don't try to fake eof in PUT mode;
	  (RateReset) new method.
	* FileCopy.h: (SetFXP) accept argument.
	* FileCopyFtp.cc, FileCopyFtp.h: allow switching passive_source;
	  revert to plain copy if both cases fail; call RateReset; allow
	  store when necessary.
	* ftpclass.cc, ftpclass.h: check PORT reply, switch copy_passive
	  if it fails; add support for delayed STOR in copy mode; don't
	  check data address in copy mode.

2000-01-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* NetAccess.cc: cast off const for solaris 2.5.1.
	* Filter.cc, Filter.h: allow Input/OutputFilter from ArgV.
	* LocalAccess.cc, LocalAccess.h: accept current system cwd as default;
	  log errors; implemented LocalDirList.
	* commands.cc: don't append var_ls if empty.
	* FileCopy.cc: set pos in FileCopyPeerFA::Seek.

2000-01-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopyFtp.cc: check use-fxp for both sessions.
	* Makefile.am: remove FtpCopy.{cc,h}.
	* commands.cc: get rid of ftpcopy.
	* NetAccess.cc, NetAccess.h, ftpclass.cc, Http.cc, resource.cc:
	  support no_proxy environment variable; net:no-proxy setting.

2000-01-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopyFtp.cc, FileCopyFtp.h: new files
	  (FXP implementation over FileCopy class).
	* CatJob.cc, CopyJob.cc, GetJob.cc, commands.cc, pgetJob.cc:
	  use FileCopy::New; update year.
	* DummyProto.cc, DummyProto.h, FileAccess.cc, FileAccess.h, FindJob.cc,
	  FtpDirList.cc, Http.cc, MirrorJob.cc, NetAccess.h, Resolver.cc,
	  SMTask.h, bookmark.cc, history.cc, lftp.cc, misc.cc, misc.h,
	  netrc.cc: update year.
	* FileCopy.cc, FileCopy.h: support for fxp; (New) new method;
	  (RateAdd) new method; (..Peer::CannotSeek) new method; (GetSession)
	  new method; (SetFXP) new method.
	* Makefile.am: add FileCopyFtp.{cc,h}.
	* buffer.h: (SetPos) new method.
	* ftpclass.cc: register FXP creator.
	* ftpclass.h: add FXP support methods.
	* resource.cc: new fxp resources (ftp:use-fxp, ftp:fxp-passive-source).

2000-01-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* NetAccess.h, NetAccess.cc, ftpclass.cc, Http.cc: (SocketConnect,
	  SocketAddrLen) new methods; use them. This fixes a problem on NetBSD.

2000-01-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc, FileCopy.h: prepare for fxp; reuse session in New
	  if told so; don't request date many times.
	* ftpclass.cc, ftpclass.h: support STAT while doing fxp.
	* SMTask.h: (TimeoutS) new method.

2000-01-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: include netinet/tcp.h conditionally.
	* FindJob.cc: #if 0 dead code.
	* Http.cc: send Last-Modified in STORE mode.
	* Resolver.cc: include arpa/nameser.h and resolv.h conditionally;
	  conditionally compile functions depending on HAVE_RES_SEARCH.
	* bookmark.cc: use / if HOME is not set.
	* history.cc: same.
	* lftp.cc: don't create ./.lftp if HOME is not set.
	* netrc.cc: fail if HOME is not set.

2000-01-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: (pass_open) new member;
	  (InsecurePassword) new method; (GetFileURL) include password if
	  pass_open is true; (OpenMode) new method.
	* FileCopy.cc: don't check session pos if it is not properly opened;
	  use OpenSession in Put_LL.
	* commands.cc: `pwd -p' to show password; call InsecurePassword
	  when password is entered on command line; forbid recursive bookmarks;
	  use ascii mode for ls.
	* ftpclass.cc: don't hide password if pass_open.
	* FtpDirList.cc: don't strip CRs.
	* Http.cc: better handle PUT errors.

2000-01-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: delete args in DirList; outline virtual
	  functions; remove CopyOptions.
	* DummyProto.cc, DummyProto.h: implement DummyDirList.
	* FileCopy.cc, FileCopy.h: handle errors in DirList.
	* ftpclass.h: remove CopyOptions.

2000-01-03  Alexander V. Lukyanov  <lav@yars.free.net>

	* misc.cc, misc.h: (percent) new function.
	* pgetJob.cc: use it.
	* FileCopy.cc: use it - and thus avoid integer overflow.
	  (reported by Slama YA).

2000-01-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: check if line_buffer!=0 (by Slama YA)

2000-01-01  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.h: add GetETA(long remainder) method.
	* Job.cc, Job.h: (ListOneJobRecursively) new method; list waiting
	  job before others.
	* LocalAccess.cc: expand tilde (finally).
	* pgetJob.cc, pgetJob.h: re-implement PrintStatus method.
	* FileCopy.cc: init need_seek.
	* commands.cc: add queue help.

1999-12-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: fix SetPasswordGlobal.

1999-12-28  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc, FileCopy.h: implemet LineBuffered; handle EPIPE.
	* commands.cc, CatJob.cc: use LineBuffered.
	* CopyJob.cc: implement SqueezeName.

1999-12-28  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.h: put back FDStream for stdout creation.
	* FileCopy.h: no cache does not mean `don't save to cache'.
	* commands.cc: redo quote and site commands.
	* ftpclass.cc: advance pos in QUOTE_CMD mode; append file name
	  to error message if it is not mentioned already.
	* Makefile.am: remove QuoteJob.{cc,h}, XferJob.{cc,h}
	  (XferJob is dead - long live FileCopy)
	* parsecmd.cc: handle ? specially.
	* FileAccess.cc, FileAccess.h: (SetPasswordGlobal) new method;
	  make NoGlob to produce empty list if pattern contains wildcards.
	* commands.cc: use it.
	* complete.cc: few improvements.

1999-12-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.cc, CopyJob.h: add op member for CopyJob.
	* FileCopy.cc: add ls caching support; (FileCopyPeerDirList) new class.
	* Makefile.am: remove LsJob.cc, LsJob.h, ftpget.
	* MirrorJob.cc: supply op for CopyJob.
	* buffer.cc, buffer.h: (SaveRollback) new method; define GET_BUFSIZE.
	* commands.cc: new ls, nlist; supply op for CopyJob.
	* pgetJob.cc: supply op for CopyJob.

1999-12-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, CmdExec.h: use GlobURL.
	* FileAccess.cc: (GetFileURL) handle file starting with '~';
	  (GlobURL::GetResult) implemented.
	* FileAccess.h: few methods for GlobURL added.
	* FtpGlob.cc: handle updir errors; handle dir starting with '~'.
	* GetJob.cc, GetJob.h: (NoProtoSrc, NoProtoDst) new methods;
	  handle reverse transfers (put).
	* LocalAccess.cc, LocalAccess.h: preserve home by ignoring Connect();
	  support ascii transfers.
	* Makefile.am: remove mputJob.cc, mputJob.h, PutJob.cc, PutJob.h,
	  FileXfer.cc, FileXfer.h.
	* MirrorJob.cc: don't include PutJob.h.
	* commands.cc: don't include PutJob.h, mputJob.h; move put, mput, mget
	  functionality to cmd_get; update help; use GlobURL;
	  support `login URL'.
	* mgetJob.cc, mgetJob.h: support mput.
	* url.h: (is_url) new method.
	* complete.cc: use GlobURL.
	* FileCopy.cc: don't open session if seek_pos>=size.
	* pgetJob.cc: correct accounting.

1999-12-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: help update; support get -a for ascii mode;
	  don't use ascii mode for zcat and zmore.
	* CopyJob.cc, CopyJob.h: ascii support in CopyJobEnv; add SetDate and
	  SetSize methods.
	* FileCopy.cc, FileCopy.h: init can_seek0; add FileCopyPeerFA::NewGet,
	  NewPut methods.
	* MirrorJob.cc: use CopyJob.
	* commands.cc: use NewPut.
	* url.cc: allocate enough memory for file: urls.

1999-12-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* CatJob.cc, ChangeLog, CopyJob.cc, CopyJob.h, FileAccess.cc,
	  FileAccess.h, FileCopy.cc, FileCopy.h, Filter.cc, Filter.h,
	  GetJob.cc, GetJob.h, MirrorJob.cc, commands.cc, mgetJob.cc,
	  mgetJob.h, pgetJob.cc, pgetJob.h: lots of changes - get, mget, pget
	  now work with new FileCopyEnv class.

1999-12-24  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileCopy.cc: support ascii conversion.
	* commands.cc: ignore -u for compatibility.
	* CmdExec.cc: beware of stale pointers, use job number instead.

1999-12-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc, CatJob.cc, CatJob.h: add ascii mode.
	* HttpDir.cc: handle ~ as absolute path in check for icon.

1999-12-22  Robert de Bath <rdebath@poboxes.com>

	* FileAccess.cc, FileAccess.h, Http.cc, LocalAccess.cc, NetAccess.cc,
	  ftpclass.cc: rehash debug levels.

1999-12-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.cc: don't show job info as ? if there is no info.
	* CatJob.cc, CatJob.h: use new architecture w/ CopyJobEnv.
	* CopyJob.cc, CopyJob.h: (CopyJobEnv) new class; misc tweaks.
	* FileCopy.cc, FileCopy.h: add features for cat command.
	* commands.cc: new cat command creation.

1999-12-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: (DataAbort) Disconnect in copy mode if ABOR is disabled.

1999-12-21  Robert de Bath <rdebath@poboxes.com>

	* NetAccess.cc: correction for ReconnectAllowed

1999-12-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* CopyJob.cc, CopyJob.h: add methods for creating different copiers:
	  NewGet, NewPut, NewEcho.
	* commands.cc: use CopyJob::NewEcho.
	* FileCopy.cc, FileCopy.h: new methods in Speedometer: GetStr, GetStrS,
	  GetETAStr, GetETAStrS; use them in FileCopy; add bytes_count,
	  start_time, end_time for accounting; fix FileCopyPeerString; add
	  Done to FileCopyPeerFDStream to wait for stream->Done.
	* NetAccess.cc: little fix in ReconnectAllowed.

1999-12-19  Alexander V. Lukyanov  <lav@yars.free.net>

        * HttpDir.cc: decode &amp; and similar; don't accept ~ for ListInfo.
	* FileCopy.h, FileCopy.cc, CopyJob.cc: (GetFgData) implemented;
	  fill CopyJob::fg_data; handle NeedSizeDateBeforehand.
	* FileAccess.h, Http.h: add NeedSizeDateBeforehand.

1999-12-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: get1 command.
	* XferJob.cc: move xfer:eta-terse to CopyJob.
	* FtpCopy.cc, FtpCopy.h: save retries count.
	* CopyJob.cc, CopyJob.h: first version.
	* FileCopy.cc, FileCopy.h: finished.
	* NetAccess.cc: correct calculations in extreme cases
	  (reported by Robert de Bath)
	* FileAccess.cc, FileAccess.h: expand tilde in file and file1 too.
	  (ExpandTildeStatic) new method; New from ParsedURL; propagate
	  passwords.
	* ftpclass.cc: handle size==0 in Write; expand tilde for ARRAY_INFO;
	  correct test for ftp:rest-stor.
	* Http.cc: handle size==0 in Write; send port to proxy;
	  encode hostname; in error message append / conditionally.
	* url.h: add more URL_*_UNSAFE.

1999-12-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* Filter.h, Filter.cc: add can_seek method.
	* buffer.cc, buffer.h: add UnSkip method.

1999-12-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* LocalAccess.h: remove error_code (it is defined in super class) -
	  this fixes error handling in file: urls.
	* LocalAccess.cc: set size and date to -1 in case of error;
	  fill opt_size and opt_date.
	* FileAccess.h: IOReady checks IsOpen.
	* ftpclass.cc: IOReady checks IsOpen.
	* buffer.cc, buffer.h: add pos member; de-virtualize Skip.
	* Filter.cc: don't close -1; correct default file permissions.

1999-12-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: check use-abor before sending ABOR.
	* LsCache.cc: use SMTask::now.
	* misc.cc: include time.h

1999-12-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, Http.cc, url.cc: fix ftp url handling (%2F for root)
	  (reported by Robert de Bath <rdebath@poboxes.com>)
	* url.h: no need to specify \033 in URL_UNSAFE; define URL_PATH_UNSAFE.
	* url.cc: avoid // for ftp urls.
	* FileAccess.cc: use URL_PATH_UNSAFE; specially hanle ~/ for ftp urls.
	* FtpListInfo.cc: move parse_perms and parse_month...
	* misc.cc, misc.h: ...here; implement parse_year_or_time, guess_year.
	* Http.cc: better handling for ftp urls; ascii support.
	* HttpDir.cc: handle apache proxy ftp listings.
	* resource.cc: add ftp:use-abor.

1999-12-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* GetJob.cc: don't close session too early when deleting.
	* buffer.cc, buffer.h: add SetError method, use it.

1999-12-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* check if GetBetterConnection(0) succeeded. (bug report from
	  Robert de Bath <rdebath@poboxes.com>).

1999-12-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* resource.cc: new resources reconnect-interval-multiplier/max;
	  reconnect-interval renamed to reconnect-interval-base.
	* ResMgr.cc, ResMgr.h: (FloatValidate) new method.
	* NetAccess.cc, NetAccess.h: (ReconnectAllowed) (NextTry) new methods;
	  implement reconnect-interval-multiplier/max.
	* Http.cc: use ReconnectAllowed and NextTry.
	* commands.cc: disallow spaces in bookmark names.
	* ftpclass.cc, ftpclass.h: (IOReady) implemented; check for space
	  in last line of multiline response; use is_ascii_digit;
	  use ReconnectAllowed and NextTry.
	* FileAccess.h: (IOReady) new method.

1999-11-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.h, FileAccess.cc, complete.cc: add Glob::NoMatchPeriod
	  method; use it for completion.

1999-11-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: try_time=0 is the same as DontSleep().
	* Http.cc: support ConnectVerify; remove some unneeded statements.
	* NetAccess.cc, NetAccess.h: move ConnectVerify here; remove
	  relookup-always setting.
	* resource.cc, ftpclass.cc, ftpclass.h: remove relookup-always.

1999-11-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: move aborted_data_sock along with control_sock.
	* FtpGlob.cc: make sure to restore old cwd.

1999-11-16  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: don't decrease sync_wait on 1xx replies.

1999-11-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: (ExtractPWD) don't return alloca'ed space, strdup it.

1999-11-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, CmdExec.h: (SuspendJob) new method; (PrintStatus)
	  don't print all queued commands if not verbose, print current
	  queue command status if ^Z (v==0).

1999-11-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: add site_chmod_supported flag.

1999-11-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: properly set info.size and info.time if mdtm or size
	  are not supported.
	* FtpListInfo.cc: fix infinite loop on bad symlinks.

1999-11-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: allow moving a connection with buffered
	  data or expected responses; (sync_wait) new member for number of
	  commands in flight.

1999-11-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h: (RereadManual) new method to stop
	  the driver wasting data when REST is not supported;
	  (norest_manual) new member; (device_prefix_len) new protected method;
	  use it in Chdir.
	* FtpGlob.cc: implement files_only.
	* FtpSplitList.cc, HttpDir.cc: use RereadManual.
	* Http.cc: support norest_manual.
	* ascii_ctype.h: add to_ascii_lower.
	* buffer.cc, buffer.h: (Empty) new method.
	* complete.cc: use DirectoriesOnly for `cd' command.
	* ftpclass.cc, ftpclass.h: better support for vms; remember that
	  MDTM or SIZE is not supported; implement ftp:rest-stor setting;
	  add closure to ftp:rest-list setting.
	* resource.cc: ftp:rest-stor setting.

1999-11-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h, FtpGlob.cc, FtpGlob.h, FtpListInfo.cc,
	  FtpListInfo.h, FtpSplitList.cc, FtpSplitList.h, Makefile.am:
	  redesign FtpGlob class to use FtpListInfo class; FtpListInfo now
	  uses more specialized FtpSplitList instead of FtpGlob;
	  (Glob::dirs_only) new member, implemented simple type filter.

1999-10-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.h, Http.cc: (use_head) new member; hftp:use-head new setting;
	  use GET instead of HEAD if !use_head.
	* resource.cc: (hftp:use-head) new setting.

1999-10-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: compare ftp:// with hftp:// properly.

1999-10-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc: (AnonymousLogin) reset cwd and home.
	* Http.h, Http.cc: add HFtp::Login; don't send password in URI.
	* commands.cc: do Login after Connect, not reverse.

1999-10-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: set hour/minute to 0 if they are not available.
	* Http.cc: avoid memory leak in encode_string; add support for
	  non-anonymous ftp over http.
	* url.cc: (url::encode_string) don't malloc buffer;
	  quote all if quote==0.

1999-10-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: don't send data in STORE mode until header is sent.
	  (reported by Brian Ristuccia)

1999-10-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: don't skip line begin early; parse Mini-Proxy listings.
	* Filter.cc: try getfd() before utime(), it might create the file.
	  (this is a workaround for getting empty files, a full solution
	  would be to block on close of output file.)
	* complete.cc: (glob_quote) remove extra quoting. This fixes completion
	  for files with spaces in name.

1999-10-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* ResMgr.cc: pass canonic resource name to Reconfig.

1999-10-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc, CmdExec.cc: call Reconfig after session change;
	  (do_cd) exit_code=0 if check is not needed.

1999-10-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: check file info for validity.
	* HttpDir.cc: don't dump core on eol==0.

1999-10-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* GetJob.cc: don't open local file early if !cont.

1999-10-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* misc.cc: call mkdir(...,0777) to let user choose umask.
	* ftpclass.cc: prepare for better handling of unsupported SIZE/MDTM.

1999-10-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h, ftpclass.cc: low level ascii-mode
	  support.

1999-10-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: don't free peer, it is freed in parent class, and so
	  don't free proxy* (the later was harmless since proxy was set to 0).
	* Http.cc: use ClearPeer.
	* CmdExec.cc: actually assign c.
	* HttpDir.cc: better handle symlinks.

1999-10-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: handle Netscape-proxy listing; handle parse errors
	  better.
	* lftp.cc: use SOCKS4 define.
	* CmdExec.cc: use URL closure on several settings.

1999-10-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* ArgV.cc: (delarg) decrement ind if needed.
	* HttpDir.h, HttpDir.cc: (LsOptions) new class, use it, implement
	  -F ls option, accept -alC but ignore them for now.

1999-10-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc: fix type mismatch on 64-bit machines.
	* Makefile.am: don't depend on rlstdc.h

1999-10-01  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: cast ResValue to (const char *) to avoid ambiguity.

1999-09-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: remove _() from "%s: %s\n".

1999-09-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h, ftpclass.cc, ftpclass.h, commands.cc:
	  (CleanupAll, CleanupThis) new methods; use it in cmd_close.

1999-09-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, log.h: extra info in debug output when it goes
	  to a file. (suggested by Caleb Epstein <cae@home.com>)

1999-09-30  Albert Chin-A-Young <china@thewrittenword.com>

	* module.c: fix // comment

1999-09-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* ResMgr.h: include time.h for time_t.

1999-09-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: strip leading slash in links to /~user.

1999-09-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: create rate_limit for STORE mode.
	* lftp.cc: close fd 0; call setsid.

1999-09-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc, MirrorJob.h: use TimeInterval.
	* misc.cc, misc.h: drop decode_delay.
	* ResMgr.cc: (TimeInterval ctor) handle one more error case.

1999-09-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: define _XOPEN_SOURCE 500 for linux.

1999-09-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc: don't print messages when lftp is not foreground
	  process.
	* ResMgr.h: add TimeInterval(time_t) constructor.
	* SleepJob.cc, SleepJob.h: use TimeInterval; support `sleep forever'.
	* commands.cc, LsCache.cc, LsCache.h: use TimeInterval.

1999-09-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* ResMgr.cc, ResMgr.h: new resource type TimeInterval.
	* Resolver.cc, Resolver.h: settings cache-{enable,expire,size}.
	* commands.cc: (set) print more meaningful message for invalid values.

1999-09-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* SleepJob.cc, SleepJob.h: add repeat functionality;
	  implement PrintStatus.
	* commands.cc: add repeat command.
	* module.c: another module alias.
	* XferJob.cc: remove unneeded poll call.
	* ftpclass.cc: remove unneeded error checks.

1999-09-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.cc: (SessionJob::PrintStatus) check if session!=0.

1999-09-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* resource.cc: check if ipv6 is supported at runtime.
	* FileAccess.cc: better message for system errors, correctly adjust
	  str_allocated.
	* NetAccess.cc: (NextPeer) fix off-by-one error; set try_time.
	* Http.cc, ftpclass.cc: move reconnect delay before Resolve, to avoid
	  double lookup in case of relookup_always; handle error of socket
	  creation better, skip address and report error verbosely.

1999-09-14  Alexander V. Lukyanov  <lav@yars.free.net>

	* PutJob.cc: unsuspend session; few corrections in size handling;
	  don't try to use size of pipe.

1999-09-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* NetAccess.cc: when adding first RateLimit, reset global pool.

1999-09-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* NetAccess.cc, NetAccess.h: implement RateLimit class; use it.
	* ftpclass.cc, Http.cc: use RateLimit.
	* resource.cc: new resources net:limit-total-rate
	  and net:limit-total-max.
	* ftpget.cc: create Log::global.

1999-09-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: recognize host names in the form proto,hostname and
	  lookup address in specified protocol family, e.g. inet6,hostname.com.
	  (Note: this won't work over proxies)
	* GetJob.cc: add xfer:clobber setting; don't overwrite files if it is
	  false.

1999-09-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* NetAccess.cc, NetAccess.h: drop first_lookup.
	* MirrorJob.cc, MirrorJob.h: don't get just appeared files, check
	  that size/date has not changed before overwrite/append;
	  build local file set before remote one.
	* FileSet.cc, FileSet.h: (SubstractNotIn) new method; optimize
	  other Substract* methods; make FindByName const.

1999-08-31  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: add missing \n
	* ftpclass.cc: fix previous change not to close data_sock.
	* Http.cc: call SayConnectingTo.
	* complete.cc, complete.h: move remote_completion here.
	* CmdExec.cc, CmdExec.h, lftp.cc, log.cc, log.h: make debug output
	  clear/redraw the prompt.

1999-08-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.cc, FileAccess.h, Http.cc, Http.h, LocalAccess.cc,
	  NetAccess.cc, ftpclass.cc, ftpclass.h: split off NetAccess class;
	  use Resolver cache; add Resolve method; move rate limiter to
	  NetAccess.
	* Resolver.cc, Resolver.h: implement cache.
	* LsCache.cc, LsCache.h: allow adding from Buffer class.
	* HttpDir.cc: use new LsCache::Add method varianth; handle symlinks.
	* commands.cc: remove debug level restriction.
	* buffer.cc, buffer.h: make GetSaved const.
	* Makefile.am: add NetAccess.
	* NetAccess.cc, NetAccess.h: new files.
	* SMTask.cc, SMTask.h, ResMgr.cc, CmdExec.cc, CmdExec.h:
	  Reconfig now takes arg.

1999-08-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: improve completion of file names with wildcards.

1999-08-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: handle 225 and 226 replies in TransferCheck.
	* Http.cc: use cwd in error message if file=="".

1999-08-24  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: reset try_time on certain failures: greeting, user,
	  pass, to sleep proper time before reconnect.

1999-08-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: improve support for squid's ftp listings;
	  support symlinks.
	* Makefile.am: cmd-sleep.so target; use -nostdlib to reduce size,
	  this works unless there are static constructors.
	* SleepJob.cc, commands.cc: move at and sleep commands to SleepJob.cc
	  to allow modularity.
	* modconfig.h: add MODULE_CMD_SLEEP.

1999-08-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* module.c: provide module aliases.
	* FileAccess.cc: revert last change.

1999-08-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h, HttpDir.cc: implement hftp protocol (ftp over http);
	  parse squid's ftp listings.
	* FileAccess.cc: load proto-http when hftp is requested.
	* resource.cc: hftp resources added; set ftp:proxy if environment
	  variable ftp_proxy points to ftp proxy.

1999-08-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* buffer.h, buffer.cc: allow saving data; (Save, GetSaved) new methods.
	* HttpDir.cc, HttpDir.h, FtpDirList.cc, FtpDirList.h: save data in
	  Buffer ubuf, members (upos, from_cache) become obsolete.

1999-08-18  Jim Pick <jim@jimpick.com>

	* LsCache.h, FtpDirList.cc, FtpDirList.h: don't try to cache
	  anything if cache is off; don't cache too large objects (by lav)

1999-08-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: local completion after redirection.

1999-08-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.cc, Job.h: provide useful default ShowRunStatus method.
	  (e.g. helps `at' command)

1999-08-16  Alexander V. Lukyanov  <lav@yars.free.net>

	* ArgV.cc, ArgV.h: make several methods const.
	* CmdExec.cc, CmdExec.h, commands.cc: chain all CmdExec's; allow
	  several queues to exist; (FindQueue) new method; (FeedArgV) new
	  method; synchronize cwd's of queue and main CmdExec.

1999-08-16  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: (cmd_queue) print usage; set exit_code.

1999-08-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.h, CmdExec.cc, commands.cc: implement simple command queue;
	  (CmdExec::queue) new static member; (queue) new command.

1999-08-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: paranoia check.

1999-08-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: try to catch "Too many open files" server error;
	  check for the substring in file name too; remove old code for
	  switching to sync mode.

1999-08-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftpget: options -c -v -d.
	* Http.cc: change level of Connecting message.

1999-08-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftpget: turn off final rate printing.
	* MirrorJob.cc: don't reset time on unchanged files - it can be bad
	  if time-prec>0 and files have really changed but have the same size.
	  (reported by Oscar Y Takeshita)

1999-08-09  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: (HttpDirList::Do) use proper prefix for ls -f.

1999-08-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: only try to get info for href links.

1999-08-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: (cmd_get) decode %xx in default output file name.
	* XferJob.h: disable non_strict_urls (too complex).

1999-08-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h, resource.cc: add ftp:rest-list setting.
	* Job.h, Job.cc: more useful Job::AcceptSig.
	* CmdExec.cc: improve AcceptSig.
	* SleepJob.cc: assign jobno and cmdline to sub-CmdExec.

1999-08-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* modconfig.h: enable proto-ftp module for real.

1999-08-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* ArgV.h, CmdExec.cc: (ArgV::CombineQuoted) new method.
	* commands.cc: fix `at' command to quote the command to execute.
	* lftp.cc: use CombineQuoted.

1999-08-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* FtpListInfo.cc: fix NT listing parser for the case of file name
	  with spaces.

1999-08-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc, FindJob.cc, FtpCopy.cc, LsJob.cc, MirrorJob.cc,
	  StatusLine.cc, StatusLine.h, TreatFileJob.cc, XferJob.cc,
	  log.cc, mkdirJob.cc, mvJob.cc: (StatusLine::Clear) new method;
	  use it everywhere, this avoids warning in new gcc.
	  Don't call Clear when Done(), it will be cleared anyway by upper
	  level job (it was race anyway).

1999-08-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* StatusLine.h, StatusLine.cc, XferJob.cc, pgetJob.cc:
	  (StatusLine::GetWidthDelayed) new method; use it to reduce number
	  of ioctl calls.

1999-08-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* LsJob.cc: (NoCache) open with proper mode.
	* HttpDir.cc: handle another listing format.

1999-08-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc, log.cc: declare res_search, vsnprintf if prototypes
	  are missing.

1999-07-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* SignalHook.cc: ignore SIGXFSZ, want to get EFBIG.

1999-07-24  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: send `Accept: */*', it is needed for some http servers.

1999-07-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: make it compile on sunos551.
	* FindJob.cc, FindJob.h: fix core dump on output stall;
	  add PrintStatus method.
	* lftpget: set verbose; unset at-exit; print usage.

1999-07-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftpget: new file.
	* Makefile.am: install and distribute lftpget.

1999-07-16  Alexander V. Lukyanov  <lav@yars.free.net>

	* LsJob.cc: fixed bug caused by cut-n-paste. This fixes spinning
	  when output stalls.
	* Resolver.cc: include netinet/in.h

1999-07-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: fix handling of HREF=/

1999-07-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: (glob) rewind args before calling original command.
	  (fixes coredump for mrm without args)

1999-07-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc: don't search for SRV RR if address is numeric.

1999-07-11  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftp_rl.c: improve lftp_rl_clear.

1999-07-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.h: (CmdFeeder::clear) new method; (CmdExec::feeder_called)
	  new member.
	* CmdExec.cc: set feeder_called; call feeder->clear in top_vfprintf.
	* MirrorJob.cc: (va_Report) print even in background.
	* complete.cc: redisplay before waiting for key.
	* lftp.cc: (ReadlineFeeder::clear) implemented.
	* lftp_rl.c, lftp_rl.h: (lftp_rl_clear, lftp_rl_redisplay_maybe) new
	  functions.

1999-07-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: add nlist to list of commands taking remote file as
	  an argument.

1999-07-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.cc, Job.h: (GetConnectURL) virtual new method. (ListDoneJobs)
	  compare urls and print job url if different.

1999-07-10  Alexander V. Lukyanov  <lav@yars.free.net>

	* Job.cc, Job.h, CmdExec.cc, CmdExec.h: add top_vfprintf method;
	  modify vfprintf method to call top_vfprintf; in (class CmdExec)
	  redefine only top_vfprintf.

1999-07-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc: support base href, refresh, take list of tags from wget;
	  show relative icon links in ls.
	* HttpDir.h: (class HttpDirList) add base_href member.
	* Http.cc: set home to / properly.

1999-07-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: cd and lcd without arguments go to home.
	* Resolver.cc: (LookupOne) fix to actually use argument.

1999-07-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: use new Resolver constructor; fix relookup
	  in case of net:relookup-always=true to lookup only after
	  trying last address.
	* Resolver.cc: finish SRV support; don't close stderr.
	* XferJob.cc: don't include netdb.h

1999-07-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc, Resolver.h: about to support SRV dns records.
	* Http.cc: use new Resolver constructor.

1999-07-04  Darren Stuart Embry <dsembr01@ox.slug.louisville.edu>

	* FileAccess.cc: (GetFileURL) prepend colon before port name.

1999-06-29  Artur Frysiak <wiget@t17.ds.pwr.wroc.pl>

	* Http.cc: send User-Agnet header.

1999-06-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: organize a list of tag/link pairs; add AREA/HREF pair.

1999-06-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileAccess.h, Http.h: (FA::UseCache) new method.
	* LsJob.cc, HttpDir.cc: use it in rels.
	* Http.cc: send Cache-Control too.

1999-06-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h, resource.cc: implement http:cache (pragma:no-cache)

1999-06-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: workaround for readline bug (reported by
	  <sniffer@pamela.prograd.ufrgs.br>); make few functions static.
	* Makefile.am: add READLINE_DEPEND to lftp_DEPENDENCIES.

1999-06-24  Alexander V. Lukyanov  <lav@yars.free.net>

	* XferJob.cc: translate time units in one place; add optional verbose
	  eta reporting (from Ben Winslow <rain@insane.loonybin.net>).

1999-06-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: fix never-ending-transfer problem with servers
	  not supporintg ranges.

1999-06-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc, HttpDir.h: extract link target from <frame src=;
	  support `ls -f file.html' to extract links from file.

1999-06-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* XferJob.cc: more precise eta reporting.
	* HttpDir.cc: prevent coredump on url.path==0.
	* MirrorJob.cc: add missing eprintf argument.

1999-06-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: add sleep help

1999-06-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* resource.cc: set http:proxy to getenv(http_proxy) initially.

1999-06-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: remove prehistoric methods DataReady
	  and Block.

1999-06-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: fix for ftpcopy in passive mode.

1999-06-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: prevent coredump when short_desc!=0 && long_desc==0.

1999-06-02  Alexander V. Lukyanov  <lav@yars.free.net>

	* module.c: handle case with RTLD_NOW undefined (SunOS4)
	* FtpListInfo.cc, HttpDir.cc: correct format string.

1999-06-01  Alexander V. Lukyanov  <lav@yars.free.net>

	* Makefile.am: remove module before its re-creation.
	* ascii_ctype.h: add is_ascii_xdigit.
	* Http.cc, Http.h: support for keep-alive getting info; support
	  for chunked transfer encoding.
	* url.cc: always encode control characters.

1999-05-31  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h: hook up HttpListInfo
	* HttpDir.cc, HttpDir.h: HttpListInfo implemented
	* FtpListInfo.cc: fixed bug with setting precise file time.
	* FileAccess.cc: untranslate some messages which indicate bug in app.
	* complete.cc: completion for new commands; add cache completion;
	  reset SIGINT count so that interrupted completion does not clear
	  line; call Open from GetInfoArray, Rename to avoid code duplication.
	* PutJob.cc, PutJob.h: add entity_date member; set date after Open.
	* LocalAccess.cc: don't use Poll; set file time in StoreStatus.
	* CmdExec.h: extern bookmark_subcmd, cache_subcmd.
	* ftpclass.cc: don't save line for every 213 response - this fixes
	  quote stat .
	* CatJob.cc, CatJob.h: removed globbing support,
	  now glob cat can be used.
	* commands.cc: use string_alloca; add slash for new bookmarks.
	* FtpGlob.cc: fix workarounds to check original; move workaround
	  for "no /" bug here from complete.cc.

1999-05-26  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc, MirrorJob.h: do chmod on remote files.
	* commands.cc: (glob, chmod) new commands.
	* rmJob.cc, rmJob.h: use TreatFileJob as base class.
	* TreatFileJob.cc, TreatFileJob.h, ChmodJob.cc, ChmodJob.h: new files.
	* ArgV.cc, ArgV.h: (insarg) new method.
	* LocalAccess.cc: support chmod.
	* ftpclass.cc: support chmod; tune overloaded server recognition.
	* FileAccess.h, FileAccess.cc: CHANGE_MODE new open mode;
	  (Chmod) new method.
	* lftp.cc: quote cmd line before adding it to history.
	* CmdExec.cc, CmdExec.h: (BUILTIN_GLOB) new builtin;
	  (needs_quotation) new method.
	* FtpDirList.cc: (Status) implemented.
	* LsJob.cc: (ShowRunStatus) implemented.
	* HttpDir.cc: implement FtpDirList::Status; check ubuf==0 before usage.
	* Http.cc: handle chmod.
	* keyvalue.h: make Pair protected
	* ResMgr.cc, ResMgr.h: outline ResDecl constructor.
	* misc.cc: clean const usage; optimize.
	* SMTask.cc: use true/false for bool.

1999-05-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: make better function pointer casts.
	* ResMgr.cc, ResMgr.h, keyvalue.cc, keyvalue.h: few fixes for other
	  compilers.
	* FileSet.cc, FileSet.h: initialize FileInfo::data; outline few funcs.
	* xmalloc.cc, xmalloc.h: outline xfree to simplify debugging.
	* misc.cc: (dir_file) handle file==0.
	* HttpDir.cc, HttpDir.h: remove prefix if present; workaround apache
	  bug.
	* history.cc: use NO_PATH.
	* FileAccess.cc, FileAccess.h: (GetFileURL) new method; rename NO_CWD
	  to NO_PATH.
	* url.cc, url.h: add proto_required option; don't assign const char *
	  to char *.

1999-05-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* HttpDir.cc, HttpDir.h: new files.
	* lftp.cc: use const; readline wrappers.
	* complete.cc: include complete.h, lftp_rl.h
	* complete.h: renamed from lftp.h
	* lftp_rl.c, lftp_rl.h: new files.
	* commands.cc: use const; use FinderJob.
	* FindJob.cc, FindJob.h: rename class FindJob to FinderJob, to avoid
	  conflict with Job::FindJob method.
	* ArgV.cc, ArgV.h: don't call getopt, because its prototype is
	  uncertain.
	* GetJob.cc: remove unused variable
	* MirrorJob.cc: use const; satisfy non-gcc compilers in case(file->...)
	* GetPass.cc: don't include readline.
	* buffer.cc: close session in ~FileInputBuffer.
	* Http.cc, Http.h: fix LONG_LIST mode to restart transfer;
	  change SendRequest to accept file name; add Connect method;
	  add MakeDirList, MakeGlob methods.
	* CmdExec.h, CmdExec.cc: use const char * where needed; remove
	  CmdExec:: inside CmdExec definition.
	* ResMgr.cc, ResMgr.h: make ResMgr::Resource public; add
	  ResourceCompare method.
	* keyvalue.cc, keyvalue.h: make KeyValueDB::Pair public; add
	  KeyValueDB::KeyCompare method.
	* bookmark.cc, CatJob.cc, XferJob.cc, XferJob.h, pgetJob.cc,
	  pgetJob.h, FileFeeder.cc, FileFeeder.h, xmalloc.cc, CatJob.h,
	  history.cc, SysCmdJob.cc:
	  use const char * where needed.
	* netrc.cc: avoid gcc'ism.
	* Filter.h: kill a warning
	* FileSet.cc, FileSet.h: (Add) merge info if already added.
	  (SortByName) mew method; few consts; add associated data.
	* SignalHook.cc, SignalHook.h: declare signal_handler type.
	* LocalAccess.cc, StatusLine.cc: use alloca instead of variable size
	  array.
	* ftpclass.cc, ftpclass.h: fix sscanf to work with int's instead of
	  members of struct tm; add const to several pointers; declare
	  friend struct expected_response properly for other compilers.
	  Fix bug with wrong address family for data socket in rare cases.
	  Add more error messages; assertions.
	* LsCache.h: declare friend class ExpireHelper properly for other
	  compilers.
	* misc.cc, misc.h: add static for inline basename_ptr, use const as
	  main version.
	* FtpCopy.cc: no need for ctype.h
	* ascii_ctype.h: new file
	* ftpget.cc: use ArgV for LsJob
	* LsJob.cc, LsJob.h: use ArgV
	* FtpDirList.cc, FtpDirList.h: use ArgV
	* FileAccess.h: pass ArgV to MakeDirList; add const; kill a warning.

1999-05-19  Albert Chin-A-Young <china@thewrittenword.com>

	* ftp-opie.c, module.c, getdate.y: include xalloca.h to allow
	  compilation by Sun C compiler.

1999-05-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* XferJob.cc, XferJob.h: (CanShowRate) new function; optimize timeout.
	* FileAccess.cc: encode some unsafe chars in url
	* url.cc, url.h: take extra argument for unsafe chars.
	* mgetJob.cc, CatJob.cc, mrmJob.cc: use the changed Glob::Status.
	* FtpGlob.cc: change Status to include session status.
	* Resolver.cc: change timeout to fatal-timeout
	* FtpDirList.cc, FtpDirList.h: new files
	* LsCache.cc, LsCache.h: add const
	* LsJob.cc, LsJob.h: support for DirList.
	* Http.cc: unset hostname if resolution cannot be done.
	* ftpclass.cc, ftpclass.h: add FtpDirList support, unset hostname
	  if resolution cannot be done.
	* buffer.h, buffer.cc: allow for FileInputBuffer to read data from
	  a session; support suspend/resume.
	* SignalHook.h: fix for some compilers/systems
	* resource.cc: add net: variables; removed duplicates in ftp: and http:;
	  make ftp:anon-pass visible.
	* FileAccess.cc: check for socket errors every time;
	  query net:variable too.
	* FileAccess.h: (DirList::DirList) create the buffer.
	* ResMgr.h: (ResValue::is_nil) new method.

1999-04-30  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h: complete support for put (untested).
	* ftpclass.cc: move DefaultAnonPass to resource.cc
	* commands.cc: add set -a, set -d support; last_bg is default for wait.
	* lftp.cc: use ResMgr::ClassInit
	* ftpget.cc: support SOCKS, use ResMgr::ClassInit
	* resource.cc: initialize default for ftp:anon-user;
	  add ResMgr::ClassInit.
	* pgetJob.cc: use total_xferred in CurrETA.
	* XferJob.cc, XferJob.h: add offset argument for CurrETA
	* CmdExec.cc: add last_bg member
	* FtpListInfo.cc: create empty FileSet to avoid NULL access; handle L
	  in file permissions.
	* MirrorJob.cc: run session after Chdir to avoid 'idle' status
	* FileAccess.h: add virtual class DirList
	* ResMgr.cc, ResMgr.h: support for printing with defaults/only defaults
	* ArgV.h: add getindex method

1999-04-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* FindJob.cc: don't go uplevel if there are cd/list errors.
	* FtpListInfo.cc, FtpListInfo.h: change format-specific
	  parsers to process single line at a time; copy line
	  before processing.
	* PutJob.cc: remove poll on input file.
	* XferJob.cc, XferJob.h, pgetJob.cc: remove obsolete slow status
	  line update.
	* CmdExec.cc, CmdExec.h: remove obsolete ls-in-completion
	* StatusLine.cc, StatusLine.h: implement delayed update.
	* commands.cc: move res_save_passwords to top level.

1999-04-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: use INET6 instead of AF_INET6
	* MirrorJob.cc: check if LocalAccess has been created
	* CmdExec.cc: add missing \n at end of input file
	* complete.cc: add mv to list of remote commands
	* commands.cc: add lpwd command
	* mgetJob.cc: more verbose status
	* CatJob.cc: more verbose status; remove unused has_wildcards
	* mrmJob.cc: more verbose status
	* FileAccess.h: (ArrayInfoPercentDone) new method
	* FtpGlob.cc: more verbose status
	* FtpListInfo.cc: more verbose status

1999-03-29  Alexander V. Lukyanov  <lav@yars.free.net>

	* FtpGlob.cc: fix handling of long lists
	* FileAccess.cc, FileAccess.h: add Glob::add_force
	* Http.cc: handle cd errors, deal with documents with no length
	* CatJob.cc: (Do) fix stupid bug introduced by Glob change

1999-03-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc, Http.h: add Location handling, get whole header on errors,
	  misc improvements.
	* Resolver.cc, Resolver.h: use FileInputBuffer to be reliable.
	* mrmJob.cc, mgetJob.cc: use NoGlob as last resort.
	* CatJob.cc: do glob always (because FtpGlob is now smart)
	* complete.cc: support MakeGlob==0
	* FileAccess.h, FileAccess.cc: implemented Glob::HasWildcards,
	  Glob::UnquoteWildcards, new class NoGlob.
	* pgetJob.cc: correct status lines and rate calculations.
	* FtpGlob.cc, FtpGlob.h: fnmatch inside of add(), don't access ftp
	  server if there are no wildcards.
	* FtpListInfo.cc: list parsing restructured; added NT list parser
	* LocalAccess.cc: (Glob) do chdir to cwd before glob.

1999-03-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpget.cc: support modules
	* Http.cc, Http.h: many changes, still unfinished.
	* FtpGlob.cc, FtpGlob.h: new files
	* LocalAccess.cc, LocalAccess.h: implement LocalGlob; more verbose
	  error messages.
	* lftp.cc: don't call obsolete ListInfo::ClassInit
	* ftpclass.cc, ftpclass.h: always copy resolved address
	  to connected session along with socket; implement SameSiteAs,
	  MakeGlob.
	* LsCache.cc, LsCache.h: implemented partial cache flush.
	* FileAccess.cc, FileAccess.h: add class FileAccessOperation;
	  move ListInfo here; add class Glob; move class Protocol here;
	  call LsCache flushing routines on certain operations;
	  add SameSiteAs method (almost th same sa SameLocationAs,
	  but don't check cwd).
	* complete.cc: use Glob
	* XferJob.cc: use FileAccess::New, don't include obsolete headers
	* mputJob.cc, mputJob.cc: don't include rglob.h, localize
	* FtpListInfo.cc, FtpListInfo.h: use FtpGlob
	* CatJob.cc, CatJob.h, mgetJob.cc, mgetJob.h, mrmJob.cc, mrmJob.h:
	  use new class Glob.
	* MirrorJob.h, MirrorJob.cc: don't include ListInfo.h;
	  use FileAccess::New; explicitly use UseCache(false).
	* FindJob.h: don't include ListInfo.h
	* ListInfo.h, ListInfo.cc, ProtoList.cc, ProtoList.h: removed; contents
	  moved to FileAccess
	* pgetJob.cc: use only 40 chars for file name; print eta in jobs output
	* commands.cc: use FileAccess::New; add list address to version output;
	  add --help and --version to `help lftp' output.
	* SignalHook.cc, SignalHook.h: don't use static arrays; add ClassInit
	* FtpCopy.cc: use FileAccess::New

1999-02-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* Http.cc: Basic auth, new resource usage
	* lftp.cc: modular proto-ftp support
	* LocalAccess.cc: use Protocol::Register
	* ftpclass.cc: module support, new resource usage
	* commands.cc: module command, --no-umask in help for mirror,
	  use single quotes in 'bookmark edit' shell command.
	* DummyProto.h: add Reconfig
	* ResMgr.cc, ResMgr.h: renamed Query to SimpleQuery, add complex
	  Query method.
	* Resolver.cc, Resolver.h: add ClassInit
	* resource.cc, resource.h: new files
	* FileAccess.cc, FileAccess.h: move traffic shaper here, add Query and
	  Reconfig methods; add closure member.
	* ProtoList.h: add static Register member
	* ListInfo.cc, ListInfo.h: add ClassInit
	* FtpCopy.cc: don't use StateToError
	* MirrorJob.cc, MirrorJob.h: implement --no-umask, apply umask
	  by default.
	* CmdExec.cc: use op instead of args->a0().

1999-02-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc, CmdExec.cc, CmdExec.h: module support
	* lftp.cc: module support
	* complete.cc: don't use cmd_table directly
	* misc.cc, misc.h: (decode_delay) moved here
	* MirrorJob.cc: don't create LocalListInfo directly, module support
	* LocalAccess.cc: module support
	* ProtoList.cc: module support
	* PutJob.cc: call SetTime and SetDate
	* module.cc, module.h, modconfig.h: new files
	* Http.cc, Http.h: new files
	* buffer.cc, buffer.h: (FileInputBuffer) new class; (Errno) new method;
	  (EventTime) new method.
	* FileAccess.cc, FileAccess.h: (default_cwd) new member; stuff from
	  ftpclass; (SetTime, SetDate) new methods.
	* ftpclass.h, ftpclass.cc: move traffic shaper and other common with
	  Http things to FileAccess.
	* SMTask.h: add Timeout and Block methods for convenience
	* SMTask.cc: don't run suspended tasks.

1999-01-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc: fix Report condition
	* ftpclass.cc: change format for EPSV response
	* Resolver.cc: set flags on pipe (O_NONBLOCK, FD_CLOEXEC); check
	  for non-fatal errors.

1999-01-21  Alexander V. Lukyanov  <lav@yars.free.net>

	* Resolver.cc, Resolver.h: use string portname
	* FileAccess.h, FileAccess.cc: use string portname; implement base
	  Connect.
	* FtpCopy.cc, commands.cc, ftpget.cc, XferJob.cc: use symbolic port
	  in Connect.
	* ftpclass.h, ftpclass.cc: use string portname and proxy_port;
	  print "connecting..." messages for ipv6; set peer_curr properly to
	  less than peer_num; parse EPSV response correctly - search for '('.
	* MirrorJob.cc: always report to non-tty
	* CmdExec.cc, CmdExec.h: add cmd:verbose, useful for scripts.
	* ftpclass.cc: set peer_curr properly <peer_num.

1999-01-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* PollVec.cc: merge pollfd's with the same descriptor (workaround for
	  problems in some systems' poll)
	* ftpclass.cc: support for multiple addresses and ipv6; fixed bugs in
	  CloseRespQueue; don't check port in passive mode.
	* ftpclass.h: support for multiple addresses and ipv6
	* Resolver.cc, Resolver.h: support for multiple addresses, multiple
	  address families, dns:order variable.
	* url.cc: check for multiple colons (ipv6 numeric)

1999-01-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: check for mirror -N
	* CmdExec.cc, CmdExec.h: add BUILTIN_NONE, reset builtin to it.
	* commands.cc: (do_open) (do_cd) don't verify host or cwd if background
	* ftpclass.cc, ftpclass.h: (FindLastCWD) new method;
	  remove target_cwd; (CloseRespQueue) handle CHECK_{USER,PASS}*
	  correctly, don't ignore them; fix waiting for cwd to
	  proper directory.

1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* PutJob.cc: correct bytes count when position changes (negative
	  count is obviously incorrect)
	* plural.c: use absolute value
	* commands.cc: fix to exit if initial open fails (that from lftp call)
	* CmdExec.cc: cmd:fail-exit to exit if a command fails.

1998-12-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* rglob.cc: (path_match) treat empty pattern specially
	* CmdExec.cc, CmdExec.h: (AtExit) new function, (cmd:at-exit) new
	  setting.
	* lftp.cc: call top_exec->AtExit() and wait before exit
	* commands.cc: (do_lftp) feed "||exit" only if have fed command;
	  (do_bookmark) don't add empty bookmark or bookmark with empty
	  name.

1998-12-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc: clear waiting properly

1998-12-04  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: use socklen_t instead of ADDRLEN_TYPE; correct Buffered.
	* FileAccess.cc: use socklen_t instead of ADDRLEN_TYPE.
	* XferJob.cc: (Offset) implemented, used; (CountBytes) use Buffered
	  and session_buffered to correct transfer rate.
	* XferJob.h: (Offset) new method, (session_buffered) new member
	* ftpclass.h, ftpclass.cc: (Buffered) new method
	* FileAccess.h: (Buffered) new virtual method

1998-12-03  Alexander V. Lukyanov  <lav@yars.free.net>

	* XferJob.cc: add i18n for K/s etc.
	* commands.cc: (open) create new session if current protocol is dummy
	* FileAccess.cc: (GetConnectURL) return empty url for dummy protocol
	* lftp.cc: (main) use DummyProto instead of Ftp.
	* DummyProto.cc, DummyProto.h: (new files) dummy protocol, will help
	  in future to support dynamic loadable protocols.
	* xmalloc.h: don't rely on memcpy return value
	* LocalAccess.cc: when follow_links don't remove dangling links

1998-11-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftp.cc: remove extra \n
	* ftpclass.cc: (Reconfig) call ResetBytes to reset accumulated count
	* SMTask.cc: call UpdateNow in ReconfigAll

1998-11-25  Alexander V. Lukyanov  <lav@yars.free.net>

	* XferJob.cc: add i18n for eta
	* complete.cc, rglob.cc, rglob.h, Job.h, LsCache.h, XferJob.cc,
	  CmdExec.cc, mgetJob.cc, rmJob.h, rmJob.cc, QuoteJob.h, QuoteJob.cc,
	  LsJob.h, mvJob.cc, PutJob.cc, MirrorJob.cc, CatJob.cc, GetJob.cc,
	  LsJob.cc, mkdirJob.cc, mrmJob.cc, pgetJob.cc, ftpget.cc: remove
	  dependency on ftpclass.h, use FileAccess.h instead; use FA.
	* rmJob.cc: support i18n; use FA
	* FileAccess.h: add FA shortcut to FileAccess
	* log.cc: cast void* to char*
	* ResMgr.cc, netrc.cc, lftp.cc: use const char *, avoid error with
	  new egcs
	* ftpclass.cc, ftpclass.h: use enum for various response checks;
	  clear resp queue on Close; associate path with CWD response handle.
	* commands.cc: use &CmdExec::do_... to compile with recent egcs
	* CmdExec.cc: set exit_code to zero when cd or open is stopped.

1998-11-22  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.h: add ~CmdFeeder destructor, this fixes problem with
	  feeders not destroyed, open fd's in particular.

1998-11-20  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: don't try to handle anon users specially,
	  it did not work anyway; one has to use anon-user and anon-pass
	  settings.
	* netrc.cc: ignore default; handle comments
	* SMTask.cc: include sys/time.h
	* commands.cc: add `command' command; replace args->a0() with op in
	  several places.
	* CmdExec.cc, CmdExec.h: (BUILTIN_EXEC_RESTART) new builtin.
	* ArgV.cc, ArgV.h: (delarg) new method

1998-11-18  Alexander V. Lukyanov  <lav@yars.free.net>

	* XferJob.cc: add start_time_ms, end_time_ms; use now and now_ms.
	* LocalAccess.cc: check Poll return value for -1
	* commands.cc: updated help for rm, mirror.
	* ftpclass.cc, ftpclass.h: ftp:limit-rate, ftp:limit-max new settings;
	  traffic limit implemented (BytesAllowed, BytesUsed, BytesReset);
	  allow passing data peer address to data_address_ok for verification
	  of PASV response; scan PASV response for address (as recommended in
	  RFC1123; thanks to Michael Handler <handler@sub-rosa.com> for patch);
	  verify data peer address in passive mode; check return value of Poll
	  for -1; (AbortedClose, ControlClose) new functions; rearrange code
	  in Read; clear lookup_done in SetProxy only if proxy changed.
	* lftp.cc: log SIGTERM when in background.
	* Resolver.cc: use static now.
	* SMTask.cc, SMTask.h: add static members: now, now_ms; (UpdateNow)
	  new static method; call UpdateNow from Schedule.
	* FileAccess.cc: don't call Disconnect from CheckHangup; return -1
	  from Poll if hangup.

1998-11-12  Alexander V. Lukyanov  <lav@yars.free.net>

	* MirrorJob.cc: set time only on directories; get sets it on files;
	  don't print report messages if there is parent_mirror, this
	  fixes multiple messages in nested directories after fg.
	* FileSet.cc, FileSet.h: add option to set time for only directories.
	* ftpclass.cc, ftpclass.h: add aborted_data_sock member; don't
	  close data connection right after sending ABOR, wait for answer;
	  send only first byte before ABOR as OOB to workaround recv()
	  braindamage; clear lookup_done in Reconfig since proxy could change.
	* CmdExec.cc: set verify_path, verify_host; handle ^Z in open/cd
	* commands.cc: use verify_path, verify_host
	* CmdExec.h: (verify_path, verify_host) new members

1998-11-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* FtpListInfo.cc, QuoteJob.cc, netrc.cc, Resolver.cc, misc.cc,
	  parsecmd.cc, rglob.cc, url.cc, StatusLine.cc, ftpget.cc, buffer.h,
	  xmalloc.h, lftp.cc: use xstring.h instead of string.h to improve
	  portability.
	* Job.cc: (Fg, Bg) protect against infinite recursion

1998-10-31  Alexander V. Lukyanov  <lav@yars.free.net>

	* log.cc: (Format) implemented, added sl_cleared flag.
	* ftpget.cc: enable log when verbose
	* ftpclass.cc: add state check in ACCEPTING_STATE, fixes rare coredump.
	  socket-maxseg experimental setting for TCP_MAXSEG. Print errors from
	  setsockopt.
	* PollVec.cc: add assert(fd>=0).

1998-10-27  Alexander V. Lukyanov  <lav@yars.free.net>

	* commands.cc: (do_mirror) fix include/exclude setting, add -L option
	* FtpListInfo.cc: fix follow_symlinks handling, clear MODE, SIZE, etc.
	* ftpclass.cc: check for 4xx response for REST
	* ftpclass.h: comment fix
	* FtpCopy.cc: fix setting dst_size (was -2, need 0)

1998-10-23  Alexander V. Lukyanov  <lav@yars.free.net>

	* FtpListInfo.cc: fix exclude/include, implement follow_symlinks
	* commands.cc: (do_lftp) call do_open only if no lftp-specific options
	  were found; (do_mirror) add --dereference (-L) option;
	  (do_at) use get_date function
	* log.cc: fix logging after tty disconnect, clear tty flag
	* LocalAccess.cc: implement follow_symlinks semantics
	* ListInfo.cc, ListInfo.h: add follow_symlinks flag
	* MirrorJob.cc, MirrorJob.h: add RETR_SYMLINKS flag
	* getdate.y, getdate.h: new files (replace parsetime*)

1998-10-13  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: fix remote completion (automatic class was deleted too
	  early); fix typo.
	* commands.cc: (do_mirror) don't use ONLY_NEWER for reverse mirror.
	* FileSet.cc, FileSet.h: (SameAs) add ignore argument,
	  (SubtractSame) same.
	* MirrorJob.cc: ignore date in reverse mode. (HandleFile) skip: label;
	  report errors in mkdir
	* ftpclass.cc: check only first digit in response.
	* parsetime.y: use mktime_from_utc for portability

1998-10-07  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: prevent re-entering to Disconnect, this fixes stack
	  overflow. (FlushSendQueue) new method. close control_sock if connect
	  failed. check for try_time==0. Change default for verify-address,
	  seems quite a bit of servers fail the check.

1998-10-03  Alexander V. Lukyanov  <lav@yars.free.net>

	* complete.cc: bookmark completion. cleanup.
	* CmdExec.cc: make FeedQuoted insert quotes, (GetFullCommandName) new
	  method.
	* keyvalue.h: (CurrentKey) (CurrentValue) (Next) (Rewind) new methods,
	  (current) new member
	* bookmark.h, bookmark.cc: (Rewind) new method, comment unused List()
	* history.h: (Rewind) new method
	* PutJob.cc, PutJob.h: (delete_files) new member, use it.
	* FindJob.cc: quote arguments and use --
	* mputJob.cc: recognize -e
	* FtpCopy.cc: include url in status
	* commands.cc: remove unused unquote(), fix do_lftp to call do_open.
	* FileAccess.cc: encode url parts
	* url.h, url.cc: (url) new class, (url::decode_sctring)
	  (url::encode_string) new functions, use the functions.
	* ftpclass.cc: typo corrected
	* GetJob.cc, GetJob.h: (RemoveBackupFile) new function
	* pgetJob.cc: use RemoveBackupFile

1998-09-15  Alexander V. Lukyanov  <lav@yars.free.net>

	* FindJob.cc, FindJob.h: add FindJob_Cmd class;
	  (class FindJob) use_cache, init_dir - new members, NextDir - new
	  method; show status in WAIT state, don't show it in CD.
	* FileSet.cc, FileSet.h: outline next() and curr().
	* ArgV.cc, ArgV.h: make getcurr return 0 after getnext returns 0
	* commands.cc: add rm -r support
	* misc.cc, misc.h: (xgetcwd) new function
	* CmdExec.cc, CmdExec.h: don't execute commands if chdir failed;
	  (FeedQuoted, unquote) new methods
	* ftpclass.cc: disable timeout for ftpcopy, remove NoWait.
	* SleepJob.h, SleepJob.cc: save and restore cwd, set parent of exec
	* FindJob.cc: include config.h

1998-09-08  Alexander V. Lukyanov  <lav@yars.free.net>

	* CmdExec.cc: (MakePrompt) add \@ handling
	* commands.cc: limit debug level to 0-9 range
	* keyvalue.cc: (Format) add \0 for empty case

1998-09-06  Alexander V. Lukyanov  <lav@yars.free.net>

	* rglob.cc: don't ignore NO_FILE
	* ftpclass.cc, ftpclass.h: remove unused ChdirStatus,
	  ignore NO_FILE for NLST and simulate eof; don't set state
	  in SwitchToState if we have failed smth (or else infinite loop
	  is possible).
	* FileAccess.cc, FileAccess.h: add 'verify' to Chdir
	* FindJob.cc, FindJob.h: support depth-first search, don't verify cd's

1998-09-05  Alexander V. Lukyanov  <lav@yars.free.net>

	* ListInfo.cc, ListInfo.h: add 'need' and 'use_cache' members
	* XferJob.cc, LsCache.cc: use #l# for longs in plural()
	* lftp.cc: use ProcWait::Signal
	* buffer.cc, buffer.h: new files
	* FindJob.cc, FindJob.h: new files
	* SignalHook.cc, SignalHook.h: add Block, Unblock, Default methods
	* commands.cc: use decode_delay in sleep, add CMD(find)
	* MirrorJob.cc: request ALL_INFO
	* FileSet.h: add ALL_INFO
	* misc.cc: support dir_file(dir_file(),)
	* FtpListInfo.cc: handle 'need' and 'use_cache'. If there were no
	  errors in long list, don't get short one. count errors in
	  ParseLongList_UNIX.
	* FileAccess.h: add GetFile method, include ListInfo.h
	* Resolver.h: include string.h
	* CmdExec.h: add CMD(find)
	* ProcWait.h, ProcWait.cc: add Signal method
	* Filter.h, Filter.cc: add closed member to avoid spawning a process
	  when done and waiting for termination; block SIGCHLD while spawning
	  process to prevent races.
	* SysCmdJob.cc: same for SIGCHLD
	* FtpCopy.cc: fix rolling stick :)
	* FileSet.h: add ALL_INFO
	* mgetJob.cc: don't use cache for rglob

1998-08-31  Alexander V. Lukyanov  <lav@yars.free.net>

	* ftpclass.cc: fix connection leak in GetBetterConnection (missing
	  return); add conditions to DataAbort to avoid unneeded ABOR;
	  close data connection in Read on EOF to avoid ABOR;
	  SwitchToState - remove bogus condition for COPY_FAILED

1998-08-28  Alexander V. Lukyanov  <lav@yars.free.net>

	* FileXfer.cc: fix setting op when args->count()==1
	* ArgV.h: add GetV method
	* SignalHook.cc, SignalHook.h: move to posix sigaction; add old_saved[]
	* ProcWait.cc, ProcWait.h: add SIGCHLD_handler, chain, destructor
	* log.cc, log.h: new files (log facility)
	* lftp.cc: use SIGCHLD_handler, use Log
	* SleepJob.cc, SleepJob.h: new files (sleep and at commands)
	* parsetime.y, parsetime-lex.l, parsetime-i.h: new files (from at-3.1.7)
	* FtpCopy.cc, FtpCopy.h: new files (copy between ftp servers)
	* Job.cc: call Bg() and Fg() for waiting
	* complete.cc: avoid "total xxx" in completion
	* FtpListInfo.cc: use int for base_dir_len
	* FileAccess.cc, FileAccess.h: use new log facility
	* ftpget.cc: use new log facility
	* CmdExec.cc, CmdExec.h: get rid of old debugging, Bg, Fg;
	  add new commands
	* commands.cc: use new log facility; add new commands
	* XferJob.cc, XferJob.h, pgetJob.cc: add eta reporting
	  (original by jaeger@tekniq.net)
	* ftpclass.cc, ftpclass.h: add COPY_FAILED state, DataAbort method,
	  abort data connection properly, send QUIT before control socket
	  close, copy_* members for ftpcopy support, FlushSendQueue flushes
	  all optionally

1998-08-19  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftp.cc: (ReadlineFeeder) added ctty (is control tty) member;
	  removed hung-up check, since readline() should report eof in
	  the case; modified check for background state.
	* SMTask.cc: (Schedule) fix block collecting to exclude already
	  running tasks.

1998-08-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* lftp.cc: (ReadlineFeeder::NextCmd) check for hung-up terminal

1998-08-17  Alexander V. Lukyanov  <lav@yars.free.net>

	* fg.cc: add debug printf's
	* Job.h, Job.cc: make Fg() and Bg() outline virtual
	* lftp.cc: (ReadlineFeeder::NextCmd) don't call readline()
	  if in background; (main) call top_exec->Fg() to make it foreground.
	* CmdExec.cc, CmdExec.h: (Fg, Bg) new functions; call waiting->Fg()
	  for only foreground jobs

Fri Aug 14 19:00:54 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* CmdExec.h, commands.cc: (suspend) new command
	* GetJob.cc: rename old file to file~ if it exists, and remove
	  backup upon getting the new file; this is useful for accidently
	  forgotten 're' or '-c'.
	* ftpclass.cc: fix warning about old_type; improve
	  error reporting; ignore extra 2xx responses for buggy servers
	* fg.h, fg.cc: (cont) new function; (Fg) cont the process even
	  if we don't own the terminal.
	* SysCmdJob.cc, SysCmdJob.h: (AcceptSig) implemented; (~) call
	  Bg() to release terminal properly, kill process in destructor
	* ProcWait.cc: (Kill) check if process still running

Mon Aug  3 19:18:51 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* commands.cc: (mirror) increase verbose instead of setting to 1
	* ftpclass.cc: (PASV_Catch) fix for broken servers returning 0,0,0,0

Wed Jul 29 17:35:15 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* CmdExec.cc: (~CmdExec) clear debug_shell if destroying it
	* CmdExec.h: make debug_shell public
	* commands.cc: (do_debug) don't set debug_shell
	* lftp.cc: (main) set debug_shell to top_exec
	Note: debug subsystem must be rewritten
	* complete.cc: remote completion by default for mirror
	* ftpclass.cc, ftpclass.h: ReadyCheck, check for m$ server and turn on
	  sync mode if it was not; check for hostname==""

Fri Jul 24 16:45:41 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc: verify address before port

Thu Jul 23 00:54:11 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* mkdirJob.cc: include plural.h, one more message is preprocessed
	  by plural().
	* FileAccess.cc: (expand_tilde) fix memmove bound violation in
	  shrink case

Mon Jul 20 21:04:06 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* Filter.cc, Filter.h: new broken() method
	* XferJob.cc: use it to prevent spinning when output is broken
	  and data is not available yet

Wed Jul  1 11:31:22 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: rename some settings for better sorting;
	  (verify-port) new setting, (data_port_verify) new member;
	  set buffer size in Reconfig; some tweaks
	* commands.cc: set arg1 in cd command for status line when dir=="-"

Mon Jun 22 16:31:09 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: fix data_address_ok DebugPrint's;
	  add ftp:socket-buffer variable to tune tcp window

Thu Jun 18 18:19:20 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* alias.cc, alias.h: (Format) new function
	* commands.cc: use it
	* complete.cc: ls hack - ignore "total xxx", don't add /

Sun Jun 14 14:28:09 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* MirrorJob.cc: if file type is unknown and local directory exists,
	  assume the remote file is a directory
	* ResMgr.cc, ResMgr.h: (Format) new function
	* commands.cc: use ResMgr::Format
	* ftpclass.cc, ftpclass.h: address-verify - new setting;
	  (data_address_ok) new function

Thu Jun 11 16:55:57 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* Filter.cc: expand tilde in file name.
	* misc.cc, misc.h: (expand_home_relative) take and return const
	* commands.cc: use const for expand_home_relative
	* LocalAccess.cc: (Write) fix to adjust pos correctly
	* CmdExec.cc: (completion_use_ls) new member, new setting
	  cmd:ls-in-completion; use host name for ls-default.
	* complete.cc: several fixes, use complation_use_ls.

Tue Jun  9 19:25:50 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* XferJob.cc: plural support
	* MirrorJob.cc: report not deleted files if flag set;
	  (SetRX) new method, replaces SetInclude and SetExclude;
	  plural support
	* commands.cc: (do_mirror) support several -i/-x; add optional
	  argument for --verbose; use new interface to MirrorJob
	* lftp.cc: (ReadlineFeeder) fix memory leak
	* xmalloc.h: (xfree) not report xfree(0) when debugging

Fri Jun  5 17:24:04 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* commands.cc: update help for bookmark, fix bo import to look in
	  proper directory.

Fri Jun  5 15:19:31 MSD 1998

	* ftpclass.cc: (Ftp(Ftp*)) copy anon_user/anon_pass if available
	(StrError) don't translate string that can't be seen by user

Fri Jun  5 14:42:15 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* commands.cc: (do_pwd) print url, allow redirection,
	  (do_open) prepend cmd_to_exec before bookmark expansion,
	  (do_bookmark) add import subcommand, complain if bookmark to delete
	  does not exist.

Fri Jun  5 14:37:26 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* complete.cc: try to use cached LONG_LIST for completion
	* LsCache.cc: (Lookup) don't copy out contents of cache if d==NULL

Wed Jun  3 17:18:04 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* CmdExec.cc, CmdExec.h: (save_passwords) new member,
	  (bmk:save-passwords) new setting
	* commands.cc: use save_passwords, (echo) new command
	* CatJob.cc: if output==0 use stdout

Fri May 29 18:32:47 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>
	* XferJob.cc, XferJob.h: add xfer:use_urls, unstrict urls

Mon May 25 23:42:14 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* FtpListInfo.cc: close session in destructor (fixes coredump)

Mon May 25 23:24:09 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* CmdExec.cc: use status_line even if !interactive

Mon May 25 15:52:08 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* FileAccess.h, FileAccess.cc: add WITH_PASSWORD flag to GetConnectURL

Sun May 24 23:30:00 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* CmdExec.h: make print_cmd_help non static, (do_lftp) new
	  function
	* commands.cc: (do_lftp) new function, remove -f option from
	  do_open, print_cmd_help changes, `open' help change
	* lftp.cc: use do_lftp (indirectly)

Sun May 24 23:00:16 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* CmdExec.cc: don't reference status_line when it's zero,
	  change status for cd and open commands

Sat May 23 03:06:25 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* MirrorJob.cc: pass newer_than to child mirror jobs
	* FileSet.cc: (SubtractOlderThan) subtract only plain files

Thu May 21 22:56:22 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc: (mktime_from_utc) new function (from wget)
	  (ConvertFtpDate) use mktime_from_utc instead of old hack.

Thu May 21 22:21:50 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* FileAccess.h: make Login() virtual
	* ftpclass.cc: (Login) new function, add anon-user/anon-pass,
	  (SameConnection) new function, differenciate connections with,
	  different anonymous login. (DefaultAnonUser) new function,
	  (ClassInit) set default anon-pass, (anon_user) new member
	* ftpclass.h: same

Thu May 21 13:55:20 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* PutJob.cc: fix for new buffer allocation

Tue May 19 16:53:36 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* commands.cc: (find_command) new function (from vars.cc)
	* vars.cc, vars.h: remove

Fri May 15 19:25:49 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>
	* commands.cc: don't use errno in GetPass() error message

Fri May 15 18:17:31 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* Resolver.cc: handle timeout, fix sleep, (Reconfig) new function
	* Resolver.h: (timeout) new member, (Reconfig) new decl

Fri May 15 18:11:44 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ResMgr.cc: (ResDecl::Query) new function
	* ResMgr.h: (ResValue) new class
	* ftpclass.cc: (Reconfig) use it, (ResQuery) remove
	* ftpclass.h: (ResQuery) remove, (SetFlag) take bool arg
	* CmdExec.cc: (Reconfig) use it, (ResQuery) remove
	* CmdExec.h: (ResQuery) remove

Fri May 15 16:49:35 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>
	* SMTask.cc (ReconfigAll): add NoWait

Fri May 15 16:31:14 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>
	* LsJob.cc: Fix cached listing printing
	* LsJob.h: remove unused variable cache_buffer_ptr

Tue May 12 22:24:38 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc: move pass hiding	here, where it belongs, show pass
	  when s/key is used or anonymous
	* FileAccess.cc: ...and remove from here

Tue May 12 21:45:02 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* XferJob.cc, XferJob.h: add support for variable sized buffer
	* CatJob.cc, CatJob.h: add support for cat'ing from memory
	* command.cc: (bookmark) use CatJob for bookmark list
	* bookmark.cc, bookmark.h: add Format

Tue May 12 19:19:54 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: tune memory use

Tue May 12 19:00:06 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* xmalloc.cc, xmalloc.h: support for debug

Tue May 12 16:31:07 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* keyvalue.cc: (Format) new function
	  (Write) use Format
	* keyvalue.h: ajust accordingly

Mon May 11 01:08:37 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* commands.cc: (open) use password from .netrc if user name matches

Sat May  9 01:47:41 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.c: add "S/Key MD5" string to list of skey strings
	  (make_skey_reply) use `result' to catch multiline responses.

Fri May  8 02:47:11 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc, ftpclass.h: add force_skey, allow_skey defaults to yes
	  (make_skey_reply) rewrite, add otp-md5 string
	* ftpclass.cc: wait for pass prompt only when user given (no anon)

Thu May  7 21:55:17 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* parsecmd.cc: fix alias_field calculation

Wed May  6 21:13:41 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc (make_skey_reply): implement (base from wget) and use it;
	  (skey_pass, allow_skey): new members of class Ftp
	* ftpclass.h: likewise
	* Makefile.am: add md5.c, md5.h, ftp-opie.c to sources

Wed May  6 20:38:55 MSD 1998  Alexander V. Lukyanov <lav@yars.free.net>

	* ftpclass.cc (LoginCheck): assume non-fatal error when
	got RESP_LOGIN_FAILED, but without "Login incorrect" string.

Wed May  6 15:19:00 MSD 1998 Alexander V. Lukyanov <lav@yars.free.net>

	* commands.cc (bookmark): add `bookmark edit' command
