diff options
-rw-r--r-- | posix/fnmatch.h | 3 | ||||
-rw-r--r-- | posix/glob.c | 22 | ||||
-rw-r--r-- | posix/glob.h | 3 |
3 files changed, 24 insertions, 4 deletions
diff --git a/posix/fnmatch.h b/posix/fnmatch.h index d9d73b3d86..9a0036e53a 100644 --- a/posix/fnmatch.h +++ b/posix/fnmatch.h @@ -23,7 +23,8 @@ Cambridge, MA 02139, USA. */ extern "C" { #endif -#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) +#if (defined (__cplusplus) || (defined (__STDC__) && __STDC__) \ + || defined (WIN32)) #undef __P #define __P(protos) protos #else /* Not C++ or ANSI C. */ diff --git a/posix/glob.c b/posix/glob.c index d6635fc9d0..76060e1425 100644 --- a/posix/glob.c +++ b/posix/glob.c @@ -65,7 +65,7 @@ Cambridge, MA 02139, USA. */ #endif #endif -#if !defined (_AMIGA) && !defined (VMS) +#if !defined (_AMIGA) && !defined (VMS) && !defined(WIN32) #include <pwd.h> #endif @@ -106,7 +106,7 @@ extern int errno; #endif -#if defined (POSIX) && !defined (__GNU_LIBRARY__) +#if (defined (POSIX) || defined (WIN32)) && !defined (__GNU_LIBRARY__) /* Posix does not require that the d_ino field be present, and some systems do not provide it. */ #define REAL_DIR_ENTRY(dp) 1 @@ -166,7 +166,11 @@ extern void bcopy (); __inline #endif #ifndef __SASC +#ifdef WIN32 +static void * +#else static char * +#endif my_realloc (p, n) char *p; unsigned int n; @@ -192,7 +196,11 @@ my_realloc (p, n) #include <alloca.h> #else /* Not HAVE_ALLOCA_H. */ #ifndef _AIX +#ifdef WIN32 +#include <malloc.h> +#else extern char *alloca (); +#endif /* WIN32 */ #endif /* Not _AIX. */ #endif /* sparc or HAVE_ALLOCA_H. */ #endif /* GCC. */ @@ -449,6 +457,10 @@ glob (pattern, flags, errfunc, pglob) if (dirname == NULL || dirname[0] == '\0') dirname = "SYS:"; #else +#ifdef WIN32 + if (dirname == NULL || dirname[0] == '\0') + dirname = "c:/users/default"; /* poor default */ +#else if (dirname == NULL || dirname[0] == '\0') { extern char *getlogin __P ((void)); @@ -462,6 +474,7 @@ glob (pattern, flags, errfunc, pglob) } if (dirname == NULL || dirname[0] == '\0') dirname = (char *) "~"; /* No luck. */ +#endif /* WIN32 */ #endif } else @@ -470,10 +483,15 @@ glob (pattern, flags, errfunc, pglob) if (dirname == NULL || dirname[0] == '\0') dirname = "SYS:"; #else +#ifdef WIN32 + if (dirname == NULL || dirname[0] == '\0') + dirname = "c:/users/default"; /* poor default */ +#else /* Look up specific user's home directory. */ struct passwd *p = getpwnam (dirname + 1); if (p != NULL) dirname = p->pw_dir; +#endif /* WIN32 */ #endif } } diff --git a/posix/glob.h b/posix/glob.h index ba24d890c4..571bd5e405 100644 --- a/posix/glob.h +++ b/posix/glob.h @@ -25,7 +25,8 @@ extern "C" #endif #undef __ptr_t -#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) +#if (defined (__cplusplus) || (defined (__STDC__) && __STDC__) \ + || defined (WIN32)) #undef __P #define __P(protos) protos #define __ptr_t void * |