- Check for gl_matchc support in glob_t and fall back to the
   openbsd-compat/glob.[ch] support if it does not exist.
diff --git a/ChangeLog b/ChangeLog
index 50cc97d..a1426e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -22,6 +22,8 @@
      [auth-options.c channels.c channels.h serverloop.c session.c]
      implement "permitopen" key option, restricts -L style forwarding to
      to specified host:port pairs. based on work by harlan@genua.de
+ - Check for gl_matchc support in glob_t and fall back to the 
+   openbsd-compat/glob.[ch] support if it does not exist.
 
 20010315
  - OpenBSD CVS Sync
@@ -4584,4 +4586,4 @@
  - Wrote replacements for strlcpy and mkdtemp
  - Released 1.0pre1
 
-$Id: ChangeLog,v 1.967 2001/03/17 00:47:54 mouring Exp $
+$Id: ChangeLog,v 1.968 2001/03/17 01:15:38 mouring Exp $
diff --git a/acconfig.h b/acconfig.h
index 65584fc..57b5e60 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,4 +1,4 @@
-/* $Id: acconfig.h,v 1.107 2001/03/14 00:39:46 djm Exp $ */
+/* $Id: acconfig.h,v 1.108 2001/03/17 01:15:38 mouring Exp $ */
 
 #ifndef _CONFIG_H
 #define _CONFIG_H
@@ -305,6 +305,9 @@
 /* Define if your system glob() function has the GLOB_ALTDIRFUNC extension */
 #undef GLOB_HAS_ALTDIRFUNC
 
+/* Define if your system glob() function has gl_matchc options in glob_t */
+#undef GLOB_HAS_GL_MATCHC
+
 @BOTTOM@
 
 /* ******************* Shouldn't need to edit below this line ************** */
diff --git a/configure.in b/configure.in
index d3a902a..a6ad607 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-# $Id: configure.in,v 1.265 2001/03/14 00:39:46 djm Exp $
+# $Id: configure.in,v 1.266 2001/03/17 01:15:38 mouring Exp $
 
 AC_INIT(ssh.c)
 
@@ -388,6 +388,24 @@
 	]
 )
 
+# Check for g.gl_matchc glob() extension
+AC_MSG_CHECKING(for gl_matchc field in glob_t)
+AC_EGREP_CPP(FOUNDIT,
+        [
+                #include <glob.h>
+		int main(void){glob_t g; g.gl_matchc = 1;}
+        ],
+        [
+                AC_DEFINE(GLOB_HAS_GL_MATCHC)
+                AC_MSG_RESULT(yes)
+        ],
+        [
+                AC_MSG_RESULT(no)
+        ]
+)
+
+
+
 # Check whether user wants Kerberos support
 KRB4_MSG="no" 
 AC_ARG_WITH(kerberos4,
diff --git a/includes.h b/includes.h
index 3f834ba..8b7bb0e 100644
--- a/includes.h
+++ b/includes.h
@@ -54,7 +54,8 @@
 #ifdef HAVE_BSTRING_H
 # include <bstring.h>
 #endif
-#if defined(HAVE_GLOB_H) && defined(GLOB_HAS_ALTDIRFUNC)
+#if defined(HAVE_GLOB_H) && defined(GLOB_HAS_ALTDIRFUNC) && \
+    defined(GLOB_HAS_GL_MATCHC)
 # include <glob.h>
 #endif
 #ifdef HAVE_NETGROUP_H
diff --git a/openbsd-compat/glob.c b/openbsd-compat/glob.c
index 2e25518..e2fd7c2 100644
--- a/openbsd-compat/glob.c
+++ b/openbsd-compat/glob.c
@@ -37,7 +37,8 @@
 #include "includes.h"
 #include <ctype.h>
 
-#if !defined(HAVE_GLOB) || !defined(GLOB_HAS_ALTDIRFUNC)
+#if !defined(HAVE_GLOB) || !defined(GLOB_HAS_ALTDIRFUNC) || \
+    !defined(GLOB_HAS_GL_MATCHC)
 
 #if defined(LIBC_SCCS) && !defined(lint)
 #if 0
@@ -855,5 +856,6 @@
 }
 #endif
 
-#endif /* !defined(HAVE_GLOB) || !defined(GLOB_HAS_ALTDIRFUNC) */
+#endif /* !defined(HAVE_GLOB) || !defined(GLOB_HAS_ALTDIRFUNC) ||
+          !defined(GLOB_HAS_GL_MATCHC) */
 
diff --git a/openbsd-compat/glob.h b/openbsd-compat/glob.h
index 392c63b..a08cee5 100644
--- a/openbsd-compat/glob.h
+++ b/openbsd-compat/glob.h
@@ -39,7 +39,8 @@
  *	@(#)glob.h	8.1 (Berkeley) 6/2/93
  */
 
-#if !defined(HAVE_GLOB_H) || !defined(GLOB_HAS_ALTDIRFUNC)
+#if !defined(HAVE_GLOB_H) || !defined(GLOB_HAS_ALTDIRFUNC) || \
+    !defined(GLOB_HAS_GL_MATCHC)
 
 #ifndef _GLOB_H_
 #define	_GLOB_H_
@@ -94,5 +95,6 @@
 
 #endif /* !_GLOB_H_ */
 
-#endif /* !defined(HAVE_GLOB_H) || !defined(GLOB_HAS_ALTDIRFUNC) */
+#endif /* !defined(HAVE_GLOB_H) || !defined(GLOB_HAS_ALTDIRFUNC)  ||
+	  !defined(GLOB_HAS_GL_MATCHC */