diff -urNp inetutils/ftp/cmds.c inetutils-build/ftp/cmds.c --- inetutils/ftp/cmds.c 2007-08-12 07:18:01.000000000 +0530 +++ inetutils-build/ftp/cmds.c 2007-08-12 07:08:02.000000000 +0530 @@ -214,7 +214,7 @@ setpeer (argc, argv) int argc; char *argv[]; { - char *host; + char *host = NULL; int port; if (connected && command ("NOOP") != COMPLETE) @@ -225,16 +225,28 @@ setpeer (argc, argv) code = -1; return; } + if (argc < 2) - another (&argc, &argv, "(to) "); + { + if (hostname) + { + host = hostname; + argc = 2; + } + else + another (&argc, &argv, "(to) "); + } if (argc < 2 || argc > 3) { printf ("usage: %s host-name [port]\n", argv[0]); code = -1; return; } - port = sp->s_port; - if (argc > 2) + + if (!host) + host = argv[1]; + + if (argc == 3) { port = atoi (argv[2]); if (port <= 0 || port > 65535) @@ -246,7 +258,10 @@ setpeer (argc, argv) } port = htons (port); } - host = hookup (argv[1], port); + else + port = sp->s_port; + + host = hookup (host, port); if (host) { int overbose; @@ -262,7 +277,7 @@ setpeer (argc, argv) strcpy (structname, "file"), stru = STRU_F; strcpy (bytename, "8"), bytesize = 8; if (autologin) - login (argv[1]); + login (host); #if defined(unix) && NBBY == 8 /*