Re: ange-ftp.el patch to always asynchronously copy files

Andy Norman (ange@otter.hpl.hp.com)
Fri, 09 Sep 1994 11:52:05 +0100


Rick writes:

>>>>>> "Andy" == Andy Norman <ange@hplb.hpl.hp.com> writes:
Andy> I'd advise against this change as it would confuse dired when
Andy> multiple tagged files are being copied.  (Note that efs
Andy> 1.12-beta / dired 7.5 have asynchronous file copying support).

> Hmmm. I've been using ange-ftp on 19.25 for a long while now and the fact
> that I did have to wait around was major factor of cheese for me. Then I
> switched to Lucid 19.10 and the ange-ftp I'm using there is (I guess)
> asynchronously copying files, because I can edit, read mail etc while the
> file is being transferred.

> So how come this is implemented in Lucid but not GNU Emacs?

A bit of history may help new listeners here...

ange-ftp was developed under GNU Emacs 18.  It worked mainly by overloading
functions.  Around the same time, an extended version of dired (=tree dired)
was developed by Sebastian Kremer and both Sebastian and I worked together to
make sure that both packages were compatible as far as possible.

ange-ftp 4.20 (the last v18 release) came with several functions which
re-defined what tree dired did when copying files.  It allowed both single
file copy (=copy-file) and dired's "c" command to work asynchronously even on
multiple files.

RMS then took tree dired and ange-ftp 4.20 and incorporated them into FSF GNU
Emacs 19.<somelowdigit>.  He renamed several ange-ftp variables, removed a lot
of the non-UNIX support in ange-ftp and stripped out a lot of the dired
overloading, including the multiple file async copying.

In addition, RMS wasn't too keen on the way that ange-ftp overwrote functions,
so he added a different mechanism for ange-ftp and other packages that might
play with filenames could hook into GNU Emacs.  This mechanism has been
refined a few times since its original introduction.

The fallout from all these changes is that RMS's version of ange-ftp/dired
doesn't currently do any copying asynchronously.

Now, Lucid Emacs (or XEmacs as it is probably called now) took the v18
ange-ftp 4.20 and made a few improvements to it.  I believe that they took
"tree" dired 6.0, but I'm not sure.  The offshoot is that ange-ftp works under
XEmacs in the same way as it worked under v18, namely that async copying is
supported and works fine.

I hope this ramble helps a bit...
					-- ange -- <><

					ange@hplb.hpl.hp.com