diff --git a/configure.ac b/configure.ac index a9cbfed0c..dcb44915d 100644 --- a/configure.ac +++ b/configure.ac @@ -382,6 +382,7 @@ AC_CHECK_HEADERS([ \ features.h \ fcntl.h \ floatingpoint.h \ + fnmatch.h \ getopt.h \ glob.h \ ia.h \ @@ -1738,6 +1739,7 @@ AC_CHECK_FUNCS([ \ fchown \ fchownat \ flock \ + fnmatch \ freeaddrinfo \ freezero \ fstatfs \ diff --git a/openbsd-compat/Makefile.in b/openbsd-compat/Makefile.in index 1162dc550..94fb0a55e 100644 --- a/openbsd-compat/Makefile.in +++ b/openbsd-compat/Makefile.in @@ -25,6 +25,7 @@ OPENBSD=base64.o \ explicit_bzero.o \ fmt_scaled.o \ freezero.o \ + fnmatch.o \ getcwd.o \ getgrouplist.o \ getopt_long.o \ diff --git a/openbsd-compat/fnmatch.c b/openbsd-compat/fnmatch.c index 88d5dbc3c..da841d203 100644 --- a/openbsd-compat/fnmatch.c +++ b/openbsd-compat/fnmatch.c @@ -85,6 +85,11 @@ * path delimiter must be aware that 0x5C is NOT unique within SHIFT-JIS. */ +/* OPENBSD ORIGINAL: lib/libc/gen/fnmatch.c */ + +#include "includes.h" +#ifndef HAVE_FNMATCH + #include #include #include @@ -487,3 +492,4 @@ firstsegment: /* Pattern didn't match to the end of string. */ return FNM_NOMATCH; } +#endif /* HAVE_FNMATCH */ diff --git a/openbsd-compat/fnmatch.h b/openbsd-compat/fnmatch.h index 4b27d06c3..b54de01ff 100644 --- a/openbsd-compat/fnmatch.h +++ b/openbsd-compat/fnmatch.h @@ -32,10 +32,16 @@ * @(#)fnmatch.h 8.1 (Berkeley) 6/2/93 */ +/* OPENBSD ORIGINAL: include/fnmatch.h */ + +#ifndef HAVE_FNMATCH_H + #ifndef _FNMATCH_H_ #define _FNMATCH_H_ +#ifdef HAVE_SYS_CDEFS_H #include +#endif #define FNM_NOMATCH 1 /* Match failed. */ #define FNM_NOSYS 2 /* Function not supported (unused). */ @@ -50,8 +56,9 @@ #define FNM_FILE_NAME FNM_PATHNAME #endif -__BEGIN_DECLS +/* __BEGIN_DECLS */ int fnmatch(const char *, const char *, int); -__END_DECLS +/* __END_DECLS */ #endif /* !_FNMATCH_H_ */ +#endif /* ! HAVE_FNMATCH_H */ diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index 97b344b65..afe882f92 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -47,6 +47,7 @@ #include "rmd160.h" #include "md5.h" #include "blf.h" +#include "fnmatch.h" #ifndef HAVE_BASENAME char *basename(const char *path); diff --git a/scp.c b/scp.c index 0348d0673..762286c73 100644 --- a/scp.c +++ b/scp.c @@ -94,7 +94,9 @@ #include #include #include +#ifdef HAVE_FNMATCH_H #include +#endif #include #include #include