diff options
Diffstat (limited to 'extension')
-rw-r--r-- | extension/ChangeLog | 16 | ||||
-rw-r--r-- | extension/filefuncs.c | 28 | ||||
-rw-r--r-- | extension/fnmatch.c | 14 | ||||
-rw-r--r-- | extension/gawkdirfd.h | 4 | ||||
-rw-r--r-- | extension/gawkfts.c | 4 | ||||
-rw-r--r-- | extension/time.c | 24 |
6 files changed, 88 insertions, 2 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog index 328d58ba..965e0c66 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,19 @@ +2013-12-29 John E. Malmberg <wb8tyw@qsl.net> + + * filefuncs.c: Fix compile on VMS. + * time.c: Fix compile on VMS. + +2013-12-29 Arnold D. Robbins <arnold@skeeve.com> + + * gawkfts.c: Wrap include of <sys/param.h> in HAVE_SYS_PARAM_H, + as I should have done to start with. For VMS. + +2013-12-29 John E. Malmberg <wb8tyw@qsl.net> + + * gawkdirfd.h: Adjust include for VMS. + * filefuncs.c: Make it compile on VMS. + * fnmatch.c: Make it compile on VMS. + 2013-12-21 Mike Frysinger <vapier@gentoo.org> * configure.ac: Remove MirBSD and OS/390 hack to create diff --git a/extension/filefuncs.c b/extension/filefuncs.c index 61cadfec..3eb2a6b5 100644 --- a/extension/filefuncs.c +++ b/extension/filefuncs.c @@ -36,6 +36,34 @@ #define _BSD_SOURCE +#ifdef __VMS +#if (__CRTL_VER >= 70200000) && !defined (__VAX) +#define _LARGEFILE 1 +#endif + +#ifndef __VAX +#ifdef __CRTL_VER +#if __CRTL_VER >= 80200000 +#define _USE_STD_STAT 1 +#endif +#endif +#endif +#define _POSIX_C_SOURCE 1 +#define _XOPEN_SOURCE 1 +#include <stat.h> +#ifndef S_ISVTX +#define S_ISVTX (0) +#endif +#ifndef major +#define major(s) (s) +#endif +#ifndef minor +#define minor(s) (0) +#endif +#include <unixlib.h> +#endif + + #include <stdio.h> #include <assert.h> #include <errno.h> diff --git a/extension/fnmatch.c b/extension/fnmatch.c index a67bc25f..a85bcc78 100644 --- a/extension/fnmatch.c +++ b/extension/fnmatch.c @@ -45,15 +45,29 @@ #define _(msgid) gettext(msgid) #define N_(msgid) msgid +#ifdef __VMS +#define __iswctype iswctype +#define __btowc btowc +#endif + #define _GNU_SOURCE 1 /* use GNU extensions if they're there */ #ifdef HAVE_FNMATCH_H #include <fnmatch.h> #else +#ifdef __VMS +#include "fnmatch.h" /* version that comes with gawk */ +#else #include "../missing_d/fnmatch.h" /* version that comes with gawk */ #endif +#define HAVE_FNMATCH_H +#endif #ifndef HAVE_FNMATCH +#ifdef __VMS +#include "fnmatch.c" /* ditto */ +#else #include "../missing_d/fnmatch.c" /* ditto */ +#endif #define HAVE_FNMATCH #endif diff --git a/extension/gawkdirfd.h b/extension/gawkdirfd.h index a3a2b6a6..d1edf65f 100644 --- a/extension/gawkdirfd.h +++ b/extension/gawkdirfd.h @@ -35,7 +35,11 @@ * Unlike the main gawk code base, this include is NOT dependant * upon MinGW or EMX. */ +#ifndef __VMS #include "../nonposix.h" +#else +#include "nonposix.h" +#endif #ifndef DIR_TO_FD # define DIR_TO_FD(d) (FAKE_FD_VALUE) diff --git a/extension/gawkfts.c b/extension/gawkfts.c index 81803b88..25a4c108 100644 --- a/extension/gawkfts.c +++ b/extension/gawkfts.c @@ -43,11 +43,11 @@ static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94"; #include <limits.h> /* #include "namespace.h" */ -#ifndef ZOS_USS +#ifdef HAVE_SYS_PARAM_H #include <sys/param.h> #else #include <stdio.h> -#endif /* ZOS_USS */ +#endif #include <sys/stat.h> #include <assert.h> diff --git a/extension/time.c b/extension/time.c index 9fadfe54..b1e9a40a 100644 --- a/extension/time.c +++ b/extension/time.c @@ -39,6 +39,30 @@ #include <sys/types.h> #include <sys/stat.h> +#ifdef __VMS +#define HAVE_NANOSLEEP +#define HAVE_GETTIMEOFDAY +#ifdef gettimeofday +#undef gettimeofday +#endif +#ifdef __ia64__ +/* nanosleep not working on IA64 */ +static int +vms_fake_nanosleep(const struct timespec *rqdly, struct timespec *rmdly) +{ + int result; + + result = sleep(rqdly->tv_sec); + if (result == 0) { + return 0; + } else { + return -1; + } +} +#define nanosleep(x,y) vms_fake_nanosleep(x, y) +#endif +#endif + #include "gawkapi.h" #include "gettext.h" |