Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jun 1996 00:55:33 -0700 (PDT)
From:      asami@cs.berkeley.edu (Satoshi Asami)
To:        committers@freebsd.org
Cc:        ports@freebsd.org, jmz@freebsd.org
Subject:   review: ftpget final source
Message-ID:  <199606170755.AAA04411@silvia.HIP.Berkeley.EDU>

next in thread | raw e-mail | index | archive | help
Here is the final source of /usr/bin/ftpget.  Please review, I'd like
to put this in -current (and ask David to pull it over to -stable) in
the next couple of days.

Notes:

(1) Yes, I know the manpage is quite sparse. ;)

(2) I changed the indentation from the original 4 spaces to 8 spaces.
    I'm still not sure if it conforms to the standard, can someone
    with more experience please check it?

(3) The program can fetch using either ftp or http, so the name
    "ftpget" may be misleading.  Anyone with a better idea?

(4) Jordan asked if we can put the ftp function in a library others
    can use.  If someone can convert it that way, that will be great.

Satoshi
=======
begin 644 ftpget.tar.gz
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
`
end




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606170755.AAA04411>