Sun Jan 25 18:27:58 1998  Noah Friedman  <friedman@splode.com>

	* Version 0.8 released.

	Changes to accomodate linux libc6 (glibc 2.0).
	* configure.in: check for sys/select.h header.
	* ftp.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
	(ftp_login): Renamed from `login'.
	* cmds.c (cmd_open): Change callers.
	* extern.h: Change extern decl.
	* sockapi.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.

	* ftp.c (empty, proxtrans, reset, abort_remote): Don't use
	`struct fd_set' in decls; just use `fd_set'.

	* extern.h: Include port.h after all other includes.

Thu Jul 31 04:02:39 1997  Noah Friedman  <friedman@splode.com>

	* version.c (reportaddress): New variable.
	* extern.h: Declare it.
	* options.c (process_options): Print it.
	(usage): Here also.

Thu Jul 24 14:12:10 1997  Noah Friedman  <friedman@splode.com>

	* Version 0.7 released.

Tue May 27 02:34:25 1997  Noah Friedman  <friedman@splode.com>

        * ftp.c (csp): New variable.
	(main): Copy sp to csp after calling getservbyname.

	* ftp.c (dataconn): Use sockapi_accept, not accept.
	(initconn): Use sockapi_bind, not bind.
	Use sockapi_connect, not connect.
	Use sockapi_getsockname, not getsockname.
	Use sockapi_listen, not listen.
	(hookup): Use sockapi_connect, not connect.
	Use sockapi_getsockname, not getsockname.
	Use sockapi_gethostbyname, not gethostbyname.
	(empty): Use sockapi_select, not select.
	* ftp_var.h (user_option): New option `socks'.
	* main.c (main): Initialize it to 0.

	* sockapi.c: New file.
	* cmdtab.c (helpstr_socks): New variable.
	(cmdtab): New entry for `socks' command.
	* cmds.c (cmd_socks): New function.
	(cmd_status): Indicate current state of socks flag.
	* ftpline.c (initialize_completion_constructs): Define completion
	table for `socks' command.
	* options.c (long_options): Add slot for --socks option.
	(option_string): Add short option.
	(process_options): Process it.
	(usage): Document it.
	* Makefile.in (SRCS, OBJS): Add entries for sockapi.c.
	(sockapi.o): Add dependency on ftp_var.h.
	* aclocal.m4 (AC_USE_SOCKS, AC_ARG_WITH_SOCKS): New macros.
	* configure.in: Call them.

	* configure.in: Check for xmalloc and xrealloc.
	* util.c: Don't define them if they exist already.

	* ftp.c (hookup) [!__STDC__]: Don't use `signed' keyword.

	* extern.h (fclose, pclose): Declare them.

Thu Feb 20 18:45:37 1997  Noah Friedman  <friedman@splode.com>

	* Version 0.6 released.

	* acconfig.h: File removed.
	* Makefile.in: Remove all references to it.

	* ruserpass.c (rgetc): Return type int, not char.
	Save result from getc in int, not char.

	* util.c (herror): Change return type to void, and make
	arg be a const pointer.

	* configure.in: run AC_TYPE_UID_T, AC_TYPE_PID_T, AC_HEADER_STDC.
	* extern.h [STDC_HEADERS]: Include stdlib.h.  Otherwise, define
	some needed prototypes.

	* cmds.c: Include fcntl.h.

Sun Dec 29 00:04:47 1996  Noah Friedman  <friedman@splode.com>

	* cmds.c (remglob): Make sure temp file doesn't already exist
	before writing.

Sat Dec 28 21:00:00 1996  Noah Friedman  <friedman@splode.com>

	* time.c: New file.
	* Makefile.in (SRCS, OBJS): Modify appropriately.
	* extern.h: Prototype new functions in time.c.
	* cmds.c (cmd_modtime, timestamp_preserve): Use new time functions.

	* cmds.c (cmd_put, getit): Warn if more than 2 args specified to
	command.
	(cmd_modtime): Warn if more than 1 arg specified to command.

Fri Dec 20 15:59:36 1996  Noah Friedman  <friedman@splode.com>

	* util.c (herror): Change name of arg from errmsg to error_message
	to avoid conflict with the function named errmsg (which is also used).

	* Makefile.in (Makefile): Depend on version.c (for VERSION var)

Sun Nov 24 00:29:44 1996  Noah Friedman  <friedman@splode.com>

	* Makefile.in (WFLAGS): New variable.
 	(.c.o): Use it.
	* configure.in: If using gcc, substitute WFLAGS.

Sat Nov 23 21:42:46 1996  Noah Friedman  <friedman@splode.com>

	* extern.h [HAVE_UNISTD_H]: Include unistd.h.

	* ftp.c: Don't need to include unistd.h again.
	Include arpa/inet.h.

	* ftp_var.h (struct cmd): Declare c_handler fn pointer to void.

	* ftp.c (abort_remote, sendrequest, ptransfer, pswitch, reset,
	tvsub): Define as void.
	(proxtrans, recvrequest): Return explicit value.

	* cmds.c (rcsid): Static variable deleted.
	* cmdtab.c (rcsid): Static variable deleted.
	* domacro.c (rcsid): Static variable deleted.
	* ftp.c (rcsid): Static variable deleted.
	* main.c (rcsid): Static variable deleted.
	ruserpass.c (rcsid): static variable deleted.

	* configure.in: Check for utime.h.

	* main.c (passive_refused): New variable.
	* extern.h: Declare it.
	* ftp.c (initconn): Initialize it; set to 1 if PASV fails.
	(dataconn): If passive refused, open data port for listening.

	* RFC959: New file.
	* Makefile.in (TXTS): Add it.

Wed Nov 20 22:59:16 1996  Noah Friedman  <friedman@splode.com>

	* configure.in: Check for strings.h and string.h.
	* extern.h: Include strings.h and string.h as appropriate.

Mon Nov 18 04:56:17 1996  Noah Friedman  <friedman@splode.com>

	* Makefile.in (dist): Test if configure.in is newer than
	config.h.in, not the other way around.

Mon Nov 18 03:10:41 1996  Noah Friedman  <friedman@splode.com>

	* options.c (long_options): New option `--passive-only'.
	(option_string): New option `-P'.
	(process_options): Handle it.
	(usage): Update docstring.

	* configure.in: Check for vsprintf.
	Check for stdarg.h
	* util.c (errmsg): Use stdarg or varargs if vsprintf available.
	(errmsg_internal): New function.
	(errmsg): Use it.

Sun Nov 17 00:18:04 1996  Noah Friedman  <friedman@splode.com>

	* main.c (slurpstring): Allow literal "" to be interpreted as an
	empty arg.  Previously, the arg would be skipped entirely.

	* util.c (errmsg): New function.
	All diagnostic messages in all files changed to use this.
	(strerror): Function ifdef'ed out.
	configure.in (strerror): Don't check for this function.

	* cmds.c (cmd_version): New function.
	* extern.h: Declare it.
	* cmdtab.c (cmdtab): Add entry.
	(helpstr_version): New variable.

	* main.c (cmdscanner): If eof reached and on a tty, output a
	newline before disconnecting and exiting.

	* ftp.c (initconn): Don't revert to port commands when passive
	connections fail if user_options.passive == 2.

	* cmds.c (option_set): New arg `opt_args'.
	All callers changed.
	(passive_option_arg_table, num_passive_option_arguments): New
	variables.
	(cmd_passive): Use them.
	* extern.h: Declare them.
	* ftpline.c (initialize_completion_constructs): Initialize
	completion table for `passive' command appropriately.

	* domacro.c: No need to include sys/ttychars.h even if available.
	* configure.in (sys/ttychars.h): Don't check for it.

        * configure.in, aclocal.m4 (AC_ARG_ENABLE_NETRC_SECURITY): Removed.
	* ruserpass.c [FASCIST]: All code in ifdefs removed.
	No sysadmin has any business forcing people to protect their .netrc
	files, period.

	* main.c (makeargv): Increase margv vector size if necessary to
	handle argument list.

Sat Nov 16 14:06:57 1996  Noah Friedman  <friedman@splode.com>

	* cmdtab.c: Include stdio.h (for extern.h).
	* domacro.c: Here also.

	* ruserpass.c: Include <extern.h>.

	* cmds.c (prompt_another): Use LINEBUFSIZE for sprompt.
	Use LINEBUFSIZE instead of sizeof(line).

Thu Nov 14 22:09:10 1996  Noah Friedman  <friedman@splode.com>

	* options.c (process_options): Reverse meaning of `-p'.
	(long_options): Make long arg `no-passive', instead of `passive'.
	(usage): Update docstring.
	* main.c (main): Initialize user_options.passive to 1.

Mon Nov  4 21:49:43 1996  Noah Friedman  <friedman@splode.com>

	* ftp_var.h (LINEBUFSIZE): New macro.
	main.c (line, argbuf, margv): Use it in definition.

	* domacro.c (macnum, struct macel macros, macbuf): Declare them here.
	* ftp_var.h: Not here.

	* extern.h: Declare them extern.

	* Makefile.in (PACKAGE): Change package name to `fftp'.

	* options.c (usage): New arg exitstat.
	(long_options): Rename `--no-editing' to `--no-edit'.
	Rename `--no-interactive' to `--no-prompt'.
	Rename `--no-autologin' to `--no-login'.
	Rename `-E' to `-e'.

Mon Nov  4 00:53:51 1996  Noah Friedman  <friedman@splode.com>

	* Version 0.5 released.

	* Makefile.in (ftp): Use $(OBJS), not $^; solaris2.5
	/usr/ccs/bin/make doesn't seem to grok the latter.

	* aclocal.m4 (AC_USE_READLINE): Don't check for history.h.

	* main.c: No need to include readline/readline.h or
	readline/history.h.

Sun Nov  3 02:50:14 1996  Noah Friedman  <friedman@splode.com>

	* ftp_var.h (struct user_option): New field `preseve'.
        * cmds.c (cmd_preserve): New function.
	* extern.h: (cmd_preserve): Prototype it.
	* cmdtab.c (helpstr_preserve): New help string.
	(cmdtab): New entry for `preserve' command.

	* ftpline.c (completion_info_option_add): New function.
	(initialize_completion_constructs): Use it to add completions for
	the following commands: bell case cr debug edit glob hash passive
	prompt runique sendport sunique tick trace verbose.
	* cmds.c (cmd_open) [HAVE_LIBREADLINE]: Call uncache_directory.
	(cache_directory): re-cache remote directory if partial completion
	is for files in another directory.

	* ftp_var.h (struct user_option): New definition.
	Prevent against multiple inclusion.

	* cmds.c (user_options): Declare it.
	* cmds.c, domacro.c, main.c: All references changed for the
	following variables:
	Use `user_options.autologin', not `autologin'.
	Use `user_options.bell', not `bell'.
	Use `user_options.map_case', not `mcase'.
	Use `user_options.strip_cr', not `crflag'.
	Use `user_options.debug', not `debug'.
	Use `user_options.edit', not `use_readline_p'.
	Use `user_options.glob', not `doglob'.
	Use `user_options.hash', not `hash'.
	Use `user_options.map_case', not `mcase'.
	Use `user_options.passive', not `pasvmode'.
	Use `user_options.prompt', not `interactive'.
	Use `user_options.receive_unique', not `runique'.
	Use `user_options.send_unique', not `sunique'.
	Use `user_options.sendport', not `sendport'.
	Use `user_options.strip_cr', not `crflag'.
	Use `user_options.tick', not `tick'.
	Use `user_options.trace', not `trace'.
	Use `user_options.verbose', not `verbose'.

	* version.c: Report package name as `fftp'.

	* ftp_var.h (struct option_argument_table): New struct.
        * cmds.c (option_arg_table, num_option_arguments): New variables.
	(option_set): New function.
	(cmd_bell, cmd_cr, cmd_debug, cmd_edit, cmd_glob, cmd_hash,
	cmd_passive, cmd_prompt, cmd_runique, cmd_sendport, cmd_sunique,
	cmd_tick, cmd_trace, cmd_verbose): Use it.

	* ftp_var.h (HASHBYTES): New macro.
	* cmds.c (cmd_hash): Use it.

	* cmds.c (cmd_help): Renamed from `help' and moved from main.c.

	* cmds.c: All callers of the following functions changed.
	(cmd_account): Renamed from `account'.
	(cmd_ascii): Renamed from `setascii'.
	(cmd_bell): Renamed from `setbell'.
	(cmd_binary): Renamed from `setbinary'.
	(cmd_case): Renamed from `setcase'.
	(cmd_cd): Renamed from `cd'.
	(cmd_cdup): Renamed from `cdup'.
	(cmd_chmod): Renamed from `do_chmod'.
	(cmd_cr): Renamed from `setcr'.
	(cmd_debug): Renamed from `setdebug'.
	(cmd_delete): Renamed from `delete_cmd'.
	(cmd_disconnect): Renamed from `disconnect'.
	(cmd_domacro): Renamed from `domacro'.
	(cmd_edit): Renamed from `setedit'.
	(cmd_form): Renamed from `setform'.
	(cmd_get): Renamed from `get'.
	(cmd_glob): Renamed from `setglob'.
	(cmd_hash): Renamed from `sethash'.
	(cmd_help): Renamed from `help'.
	(cmd_idle): Renamed from `idle_cmd'.
	(cmd_iprompt): Renamed from `setiprompt'.
	(cmd_lcd): Renamed from `lcd'.
	(cmd_lpwd): Renamed from `lpwd_cmd'.
	(cmd_ls): Renamed from `ls'.
	(cmd_macdef): Renamed from `macdef'.
	(cmd_mdelete): Renamed from `mdelete'.
	(cmd_mget): Renamed from `mget'.
	(cmd_mkdir): Renamed from `makedir'.
	(cmd_mls): Renamed from `mls'.
	(cmd_mode): Renamed from `setmode'.
	(cmd_modtime): Renamed from `modtime'.
	(cmd_mput): Renamed from `mput'.
	(cmd_newer): Renamed from `newer'.
	(cmd_nmap): Renamed from `setnmap'.
	(cmd_ntrans): Renamed from `setntrans'.
	(cmd_open): Renamed from `setpeer'.
	(cmd_passive): Renamed from `setpassive'.
	(cmd_prompt): Renamed from `setprompt'.
	(cmd_proxy): Renamed from `doproxy'.
	(cmd_put): Renamed from `put'.
	(cmd_pwd): Renamed from `pwd'.
	(cmd_quit): Renamed from `quit'.
	(cmd_quote): Renamed from `quote'.
	(cmd_reget): Renamed from `reget'.
	(cmd_rename): Renamed from `renamefile'.
	(cmd_reset): Renamed from `reset'.
	(cmd_restart): Renamed from `restart'.
	(cmd_rhelp): Renamed from `rmthelp'.
	(cmd_rmdir): Renamed from `removedir'.
	(cmd_rstatus): Renamed from `rmtstatus'.
	(cmd_runique): Renamed from `setrunique'.
	(cmd_sendport): Renamed from `setport'.
	(cmd_shell): Renamed from `shell'.
	(cmd_site): Renamed from `site'.
	(cmd_size): Renamed from `sizecmd'.
	(cmd_status): Renamed from `status'.
	(cmd_struct): Renamed from `setstruct'.
	(cmd_sunique): Renamed from `setsunique'.
	(cmd_system): Renamed from `syst'.
	(cmd_tenex): Renamed from `settenex'.
	(cmd_tick): Renamed from `settick'.
	(cmd_trace): Renamed from `settrace'.
	(cmd_type): Renamed from `settype'.
	(cmd_umask): Renamed from `do_umask'.
	(cmd_user): Renamed from `user'.
	(cmd_verbose): Renamed from `setverbose'.
 	(prompt_another): Renamed from `another'.
	(prompt_confirm): Renamed from `confirm'.

Fri Nov  1 02:41:17 1996  Noah Friedman  <friedman@splode.com>

        * ftpline.c (read_command_line_readline): New function.
	* main.c (read_command_line): Use it.

        * cmdtab.c (cmdtab): New aliases "..", "ftp", "msend".

	* ftp_var.h (struct transfer_types): Move struct definition here.
	Renamed from struct types.
	* cmds.c (num_transfer_types): New variable.
	(transfer_types): Renamed from types.
	(settype, changetype): All references changed.

	* main.c (read_command_line): New parameter `completer'.
	(cmdscanner): Pass appropriate completion function.
	* cmds.c (another): Use read_command_line to display prompt and
	accept input.
	New parameter `completer'.
	(setpeer, put, mput, mget, cd, delete_cmd, mdelete, renamefile,
	mls, user, makedir, removedir, quote, site, do_chmod, doproxy,
	setnmap, macdef, sizecmd, modtime): Call `another' with
	appropriate completion function.
	* domacro.c (domacro): Here also.
	Include extern.h.
	* ftpline.c (attempt_ftp_completion, complete_remote_file_name,
	complete_local_file_name, complete_hostname): No longer static.
	(complete_macro, macro_completion_function): New functions.
	* ftpline.h (MacroName): New enum value.
	* ftpline.c (complete_command_arg): Call complete_macro for that
	type.
	(initialize_completion_constructs): Provide context-sensitive
	completion for `form', `macdef', and `struct' commands.
	Correct completions for `mode' and `type'.

	* ftpline.c (initialize_readline): Cast
	rl_attempted_completion_function and rhs to (char *), not (void *).
	(complete_string_list): Return a copy of string.
	* extern.h: New file.
	* cmds.c, cmdtab.c, ftp.c, main.c: Include it.

	* cmds.c (status): Display current passive transfer status.

Thu Oct 31 23:01:01 1996  Noah Friedman  <friedman@splode.com>

	* main.c (read_command_line): Always prompt and flush stdout, even
	if stdin is not a tty.

Mon Oct 28 02:08:04 1996  Noah Friedman  <friedman@splode.com>

	* Version 0.4 released.

	* port.h [!S_ISDIR]: Define it.

	* configure.in: Check for stdlib.h.
	* glob.c [HAVE_STDLIB_H]: Include stdlib.h.
	[HAVE_UNISTD_H]: Include unistd.h.
	(compare): Declare args as char *, not void *.
	Get rid of gratuitous casting in args to strcmp.

	* cmds.c (setedit): New function.
	cmdtab.c (cmdtab): New slot for `edit'.
	(edithelp): New docstring.

	* port.h [!S_ISLNK]: Define it.

	* configure.in: Check for strcasecmp.
	* util.c [!HAVE_STRCASECMP]: Define strcasecmp and strncasecmp.

Sun Oct 27 20:41:48 1996  Noah Friedman  <friedman@splode.com>

	* configure.in: Check for getcwd.
	* cmds.c (lpwd_cmd): New function.
	(lcd): Use it to print directory.
	* cmdtab.c (lpwdhelp): New docstring.
	(cmdtab): New slot for `lpwd' command.

Fri Oct 25 20:22:33 1996  Noah Friedman  <friedman@splode.com>

	* COPYING, INSTALL, NEWS, NOTES, README, TODO: New files.
	Makefile.in (TXTS): Add them.
	* aclocal.m4: New file.
	* Makefile.in (ACFS): Add it.
	(configure): Add aclocal.m4 as a dependency.
	* configure.in: Remove readline and netrc-security feature checks;
	they are defined in aclocal.m4 now.
	* Makefile.in (ACFS): Add acconfig.h.

	* configure.in: Check for vfprintf and _doprnt.
	* port.h [!HAVE_VFPRINTF && HAVE__DOPRNT]: Define vfprintf in terms
	of _doprnt.

	* ftp.c: Include sys/types.h before sys/stat.h.

	* configure.in: Check AC_CONST.

	* configure.in: Check for res_gethostbyname function.
	* ftp.c (hookup) [HAVE_RES_GETHOSTBYNAME]: Use res_gethostbyname
	instead of gethostbyname.

	* configure.in: Check for unistd.h.
	* ftp.c [HAVE_UNISTD_H]: Include <unistd.h>.
	(recvrequest): Use SEEK_SET and SEEK_CUR, not L_SET and L_INCR.
	* port.h [SEEK_SET, SEEK_CUR]: Define them if undefined.

	* configure.in: Check for herror function.
	* util.c [!HAVE_HERROR](herror): New function.

	* configure.in: Check for strerror function.
	* util.c (strerror) [!HAVE_STRERROR]: New function.

	* ftpline.c: Include <fcntl.h>.

	* configure.in: Check for netinet/in_systm.h and netdb.h.
	* ftp.c [HAVE_NETINET_IN_SYSTM_H]: Include <netinet/in_systm.h>.
	[HAVE_NETDB_H]: Include <netdb.h>.
	* ruserpass.c [HAVE_SYS_PARAM_H]: Include <sys/param.h>.
	[HAVE_NETDB_H]: Include <netdb.h>.

	* configure.in: Check for `signal' return type.
	* port.h (retsigtype): Typedef it.
	* cmds.c (another, mput, mget, mdelete, mls, shell, doproxy):
	Declare signal handler functions, pointers, and variables to be of
	type retsigtype.
	* ftp.c (lostpeer, cmdabort, command, getreply, sendrequest,
	recvrequest, pswitch, abortpt, proxtrans, gunique): Here also.
	* main.c (intr, lostpeer): Here also.

	* configure.in: Check for memset, memcpy.
	* ftp.c (hookup): Use memcpy, not bcopy.
	Use memset, not bzero.
	* port.h [!HAVE_MEMSET]: Define macros to implement routines
	functions in terms of bzero and bcopy.

	* configure.in: Check for strchr.
	* cmds.c, ruserpass.c: Replace all calls to `index' with `strchr'.
	Replace all calls to `rindex' with `strrchr'.
	* port.h [!HAVE_STRCHR]: Define macros to implement routines
	functions in terms of index and rindex.

	* ftp.h: New file, from UCB.
	* Makefile.in (HDRS): Add it.
	* cmds.c, ftp.c, main.c: Use it, not <arpa/ftp.h>.

	* port.h [!__P]: Define cdefs-like prototyper.
	Protect against multiple inclusion.
	* glob.h: Don't include sys/cdefs.h.
	* glob.c: Include config.h and port.h.

	* configure.in: Get the current package version from version.c and
	substitute it into the VERSION Makefile variable.

	* glob.c, glob.h, glob.3: New files, from NetBSD 1.2.  Reindented.
	glob.h (GLOB_ALTDIRFUNC, GLOB_BRACE, GLOB_MAGCHAR, GLOB_NOMAGIC,
	GLOB_QUOTE, GLOB_TILDE): Define unconditionally.
	* cmds.c: Include <glob.h>.
	(globulize): Rewritten.  From NetBSD 1.2 cmds.c.
	(globerr, ftpglob): Remove obsolete external decls.
	(home): Define it.
	(mput): Use new globbing mechanism.

	* util.c: New file.
	* main.c (xmalloc, xrealloc): Move functions to util.c.
	* ftp_var.h: Declare xmalloc, xrealloc, and xstrdup functions.

Thu Oct 24 15:38:43 1996  Noah Friedman  <friedman@splode.com>

	* ftpline.c [HAVE_LIBREADLINE]: Compile whole file to empty module
	unless defined.

	* configure.in: Check for paths.h.
	* pathnames.h [HAVE_PATHS_H]: Include <paths.h> only if defined.
	(_PATH_BSHELL): Define if not previously defined.

Thu Oct 24 01:32:47 1996  Noah Friedman  <friedman@splode.com>

	* options.c, getopt.c, getop1.c, getopt.h: New files.
	* Makefile.in: Add appropriate dependencies.
	* main.c (main): Use process_options to parse command line args.

	* ftpline.c, ftpline.h: New files.
	* Makefile.in: Update dependencies.
	* cmds.c (cdup, cd) [HAVE_LIBREADLINE]: call uncache_directory.
	* ftp.c (command, getreply): If called from within readline
	completion functions, keep quiet.

	* cmdtab.c (cmdtab): Add `exit' as an alias for `quit'.

	* cmds.c (setpassive): New function.
	* cmdtab.c (passivehelp): New help string.
	(cmdtab): Add `passive' command.
	* ftp.c (pasvmode): New variable.
	(initconn): Initialize data socket appropriately for passive mode.
	(dataconn): If in passive mode, just use existing data fd.
	* ftp_var.h (pasvmode, use_readline_p): New extern decl.
	[HAVE_LIBREADLINE]: Declare called_from_readline extern.

	* glob.c (DIRENT_ILLEGAL_ACCESS): Define it.

	* main.c (read_command_line): Don't depend on `interactive' to
	determine when to use readline.

Tue Mar 26 00:18:39 1996  Noah Friedman  <friedman@splode.com>

        * main.c (read_command_line): New function.
        (main): Use it to abstract out the use of readline/stdio to get
        interactive commands.
        (use_readline_p): New variable.
        (main): Initialize it appropriately.

Mon Mar 25 00:14:46 1996  Noah Friedman  <friedman@splode.com>

        * cmds.c (setpeer) [unix]: Don't test this cpp symbol.

        * main.c (default_prompt, command_prompt): New variables.
        (main): Initialize them.
        (cmdscanner): Use them.
        * ftp_var.h: Declare them extern.
        cmdtab.c (iprompthelp): New variable.
        (cmdtab): New entry for "iprompt".
        cmds.c (setiprompt): New function.
        (disconnect): Use it to reset prompt on disconnect.
        (lostpeer): Here too.

        * ruserpass.c [IPROMPT]: New definition.
        (toktab): New entry for "iprompt".
        (ruserpass): Handle `iprompt' lines.
        * ftp.c (login): pass new arg iprompt.

        * ruserpass.c (netrc_msg): New function.
        (ruserpass): Use it throughout to report errors in .netrc.

        * main.c (xmalloc): New function.
        * glob.c (strspl, copyblk): Use it instead of malloc directly.
        * ruserpass.c (ruserpass): Here also.

        * ftp_var.h (MAX_MACROS, MACBUF_SIZE): New definitions.
        Use them to declare macros and macbuf.
        * ruserpass.c (ruserpass): Use them instead of hardcoded,
        duplicated values.
        * cmds.c (macdef): Here also.

        * ftp_var.h: Define MAC_NAME_LENGTH_MAX.  Increase from 8 to 32.
        (macel->mac_name): Use definition instead of literal.
        * ruserpass.c (ruserpass): Here also.
        * cmds.c (macdef): Here also.

        * configure.in: (--enable-fascism): New option.
        * ruserpass.c (fascist): New function.
        * ruserpass.c (ruserpass): Call it to print error messages about
        .netrc file, if --enable-fascism was defined on configure's
        command line.

        * configure.in (--with-readline): New option.

Sun Mar 24 17:53:56 1996  Noah Friedman  <friedman@splode.com>

        * mkinstalldirs, install-sh: New files.

        * cmds.c [HAVE_CONFIG_H]: Include config.h.
        [HAVE_SYS_PARAM_H]: Include sys/param.h only if defined.
        * cmdtab.c [HAVE_CONFIG_H]: Include config.h.
        * domacro.c [HAVE_CONFIG_H]: Include config.h.
        * ftp.c [HAVE_CONFIG_H]: Include config.h.
        [HAVE_SYS_PARAM_H]: Include sys/param.h only if defined.
        * glob.c [HAVE_CONFIG_H]: Include config.h.
        [HAVE_SYS_PARAM_H]: Include sys/param.h only if defined.
        * main.c [HAVE_CONFIG_H]: Include config.h.
        * ruserpass.c [HAVE_CONFIG_H]: Include config.h.
        * ftp_var.h [HAVE_SYS_PARAM_H]: Include sys/param.h only if defined.

        * main.c: Use HAVE_LIBREADLINE instead of __USE_READLINE__ throughout.
        * domacro.c: Use HAVE_SYS_TTYCHARS_H instead of __NetBSD__ to
        determine whether to include <sys/ttychars.h>.
        * configure.in: Check for sys/ttychars.h.

Thu Mar 21 11:24:01 1996  Noah Friedman  <friedman@splode.com>

        * All files: indent with `indent -gnu'.

        * ruserpass.c (ruserpass): If NETRC environment variable is
        defined, use that instead of $HOME/.netrc.
        Don't verify .netrc permissions for `ftp' (which is another name
        for `anonymous') logins when looking up password.
        [FASCIST]: Don't do any .netrc permission checking at all unless
        this is defined (affects both PASSWORD and ACCOUNT).

        * main.c (cmdscanner) [__USE_READLINE__]: Use "Ftp> " for prompt,
        to distinguish between readline and non-readline ftp clients.

        * domacro.c [__NetBSD__]: Don't include <sys/ttychars.h> unless
        this is defined.

        * port.h: New file.
        ftp.c: Include it.
        cmds.c: Here also.
        glob.c: Here also.
