- (djm) Bug #456: Support for NEC SX6 with Unicos; from wendyp@cray.com
diff --git a/ChangeLog b/ChangeLog
index 0fc1191..b99e2bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -86,6 +86,7 @@
  - (djm) Rest of Bug #499: Import a basename() function from OpenBSD libc
  - (djm) Bug #494: Allow multiple accounts on Windows 9x/Me; 
    From vinschen@redhat.com
+ - (djm) Bug #456: Support for NEC SX6 with Unicos; from wendyp@cray.com
 
 20030211
  - (djm) Cygwin needs libcrypt too. Patch from vinschen@redhat.com
@@ -1186,4 +1187,4 @@
      save auth method before monitor_reset_key_state(); bugzilla bug #284;
      ok provos@
 
-$Id: ChangeLog,v 1.2620 2003/02/24 02:04:01 djm Exp $
+$Id: ChangeLog,v 1.2621 2003/02/24 04:45:42 djm Exp $
diff --git a/config.sub b/config.sub
index 9ff085e..a03c1d1 100755
--- a/config.sub
+++ b/config.sub
@@ -887,6 +887,10 @@
 		basic_machine=sv1-cray
 		os=-unicos
 		;;
+        sx*-nec)
+		basic_machine=sx6-nec
+		os=-sysv
+		;;
 	symmetry)
 		basic_machine=i386-sequent
 		os=-dynix
diff --git a/configure.ac b/configure.ac
index 2011076..bdf8028 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-# $Id: configure.ac,v 1.108 2003/02/24 01:55:55 djm Exp $
+# $Id: configure.ac,v 1.109 2003/02/24 04:45:43 djm Exp $
 
 AC_INIT
 AC_CONFIG_SRCDIR([ssh.c])
@@ -600,18 +600,20 @@
 	]
 )
 
-dnl    Checks for library functions.
-AC_CHECK_FUNCS(arc4random b64_ntop bcopy basename bindresvport_sa \
-	clock fchmod fchown freeaddrinfo futimes gai_strerror \
-	getaddrinfo getcwd getgrouplist getnameinfo getopt getpeereid\
-	getrlimit getrusage getttyent glob inet_aton inet_ntoa \
-	inet_ntop innetgr login_getcapbool md5_crypt memmove mkdtemp \
-	mmap ngetaddrinfo nsleep openpty ogetaddrinfo pstat readpassphrase \
-	realpath recvmsg rresvport_af sendmsg setdtablesize setegid \
-	setenv seteuid setgroups setlogin setproctitle setresgid setreuid \
-	setrlimit setsid setpcred setvbuf sigaction sigvec snprintf \
-	socketpair strerror strlcat strlcpy strmode strnvis sysconf tcgetpgrp \
-	truncate utimes vhangup vsnprintf waitpid __b64_ntop _getpty)
+dnl    Checks for library functions. Please keep in alphabetical order
+AC_CHECK_FUNCS(\
+	arc4random __b64_ntop b64_ntop __b64_pton b64_pton basename bcopy \
+	bindresvport_sa clock fchmod fchown freeaddrinfo futimes \
+	gai_strerror getaddrinfo getcwd getgrouplist getnameinfo getopt \
+	getpeereid _getpty getrlimit getrusage getttyent glob inet_aton \
+	inet_ntoa inet_ntop innetgr login_getcapbool md5_crypt memmove \
+	mkdtemp mmap ngetaddrinfo nsleep ogetaddrinfo openpty pstat \
+	readpassphrase realpath recvmsg rresvport_af sendmsg setdtablesize \
+	setegid setenv seteuid setgroups setlogin setpcred setproctitle \
+	setresgid setreuid setrlimit setsid setvbuf sigaction sigvec \
+	snprintf socketpair strerror strlcat strlcpy strmode strnvis \
+	sysconf tcgetpgrp truncate utimes vhangup vsnprintf waitpid \
+)
 
 AC_SEARCH_LIBS(nanosleep, rt posix4, AC_DEFINE(HAVE_NANOSLEEP))
 
diff --git a/openbsd-compat/base64.c b/openbsd-compat/base64.c
index 005170b..91a5ab0 100644
--- a/openbsd-compat/base64.c
+++ b/openbsd-compat/base64.c
@@ -44,7 +44,7 @@
 
 #include "includes.h"
 
-#if !defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP)
+#if (!defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP)) || (!defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON))
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -130,6 +130,7 @@
 	   characters followed by one "=" padding character.
    */
 
+#if !defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP) 
 int
 b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize)
 {
@@ -190,6 +191,9 @@
 	target[datalength] = '\0';	/* Returned value doesn't count \0. */
 	return (datalength);
 }
+#endif /* !defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP) */
+
+#if !defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON)
 
 /* skips all whitespace anywhere.
    converts characters, four at a time, starting at (or after)
@@ -314,4 +318,5 @@
 	return (tarindex);
 }
 
-#endif /* !defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP) */
+#endif /* !defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON) */
+#endif 
diff --git a/openbsd-compat/base64.h b/openbsd-compat/base64.h
index c92e70e..72db3ff 100644
--- a/openbsd-compat/base64.h
+++ b/openbsd-compat/base64.h
@@ -1,4 +1,4 @@
-/* $Id: base64.h,v 1.3 2002/02/26 16:59:59 stevesk Exp $ */
+/* $Id: base64.h,v 1.4 2003/02/24 04:45:43 djm Exp $ */
 
 #ifndef _BSD_BASE64_H
 #define _BSD_BASE64_H
@@ -9,10 +9,15 @@
 # ifndef HAVE_B64_NTOP
 int b64_ntop(u_char const *src, size_t srclength, char *target, 
     size_t targsize);
-int b64_pton(char const *src, u_char *target, size_t targsize);
 # endif /* !HAVE_B64_NTOP */
 # define __b64_ntop b64_ntop
-# define __b64_pton b64_pton
 #endif /* HAVE___B64_NTOP */
 
+#ifndef HAVE___B64_PTON
+# ifndef HAVE_B64_PTON
+int b64_pton(char const *src, u_char *target, size_t targsize);
+# endif /* !HAVE_B64_PTON */
+# define __b64_pton b64_pton
+#endif /* HAVE___B64_PTON */
+
 #endif /* _BSD_BASE64_H */