diff options
Diffstat (limited to 'extension')
-rw-r--r-- | extension/ChangeLog | 7 | ||||
-rw-r--r-- | extension/gawkfts.c | 5 | ||||
-rw-r--r-- | extension/gawkfts.h | 11 | ||||
-rw-r--r-- | extension/readdir.c | 6 | ||||
-rw-r--r-- | extension/rwarray.c | 15 |
5 files changed, 41 insertions, 3 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog index e37715ae..1a32961a 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,10 @@ +2012-09-13 Dave Pitts <dpitts@cozx.com> + + * gawkfts.c: Add defines and ifdefs for z/OS. + * gawkfts.h: Add defines and ifdefs for z/OS. Fix // comments. + * readdir.c (dir_get_record): Adjust sprintf format for z/OS. + * rwarray.c: Add defines and ifdefs for z/OS. Fix // comments. + 2012-09-11 Arnold D. Robbins <arnold@skeeve.com> * readdir.c (do_readdir_do_ftype): Set ERRNO for bad arguments. diff --git a/extension/gawkfts.c b/extension/gawkfts.c index 2f465959..2b47275b 100644 --- a/extension/gawkfts.c +++ b/extension/gawkfts.c @@ -40,7 +40,12 @@ static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94"; #endif /* #include "namespace.h" */ +#ifndef ZOS_USS #include <sys/param.h> +#else +#include <stdio.h> +#include <limits.h> +#endif /* ZOS_USS */ #include <sys/stat.h> #include <assert.h> diff --git a/extension/gawkfts.h b/extension/gawkfts.h index 41109664..f1ca26f5 100644 --- a/extension/gawkfts.h +++ b/extension/gawkfts.h @@ -45,6 +45,11 @@ # endif #endif +#ifdef ZOS_USS +#include <limits.h> +#define MAXPATHLEN FILENAME_MAX +#endif + typedef struct { struct _ftsent *fts_cur; /* current node */ struct _ftsent *fts_child; /* linked list of children */ @@ -64,7 +69,7 @@ typedef struct { #define FTS_PHYSICAL 0x010 /* physical walk */ #define FTS_SEEDOT 0x020 /* return dot and dot-dot */ #define FTS_XDEV 0x040 /* don't cross devices */ -// #define FTS_WHITEOUT 0x080 /* return whiteout information */ +/* #define FTS_WHITEOUT 0x080 */ /* return whiteout information */ #define FTS_OPTIONMASK 0x0ff /* valid user option mask */ #define FTS_NAMEONLY 0x100 /* (private) child names only */ @@ -76,7 +81,11 @@ typedef struct _ftsent { struct _ftsent *fts_cycle; /* cycle node */ struct _ftsent *fts_parent; /* parent directory */ struct _ftsent *fts_link; /* next file in directory */ +#ifdef ZOS_USS + long fts_number; /* local numeric value */ +#else long long fts_number; /* local numeric value */ +#endif void *fts_pointer; /* local address value */ char *fts_accpath; /* access path */ char *fts_path; /* root path */ diff --git a/extension/readdir.c b/extension/readdir.c index 7140b72b..5f937fb9 100644 --- a/extension/readdir.c +++ b/extension/readdir.c @@ -175,9 +175,15 @@ dir_get_record(char **out, struct iobuf_public *iobuf, int *errcode, return EOF; } +#ifdef ZOS_USS + len = sprintf(the_dir->buf, "%lu/%s", + (unsigned long) dirent->d_ino, + dirent->d_name); +#else len = sprintf(the_dir->buf, "%llu/%s", (unsigned long long) dirent->d_ino, dirent->d_name); +#endif if (do_ftype != NEVER_DO_INFO) { const char *ftstr = ftype(dirent); diff --git a/extension/rwarray.c b/extension/rwarray.c index d8a54fde..43118282 100644 --- a/extension/rwarray.c +++ b/extension/rwarray.c @@ -49,6 +49,17 @@ #define _(msgid) gettext(msgid) #define N_(msgid) msgid +#if defined(ZOS_USS) +#include <limits.h> +#define INT32_MAX INT_MAX +#define INT32_MIN INT_MIN +#ifndef __uint32_t +#define __uint32_t 1 +typedef unsigned long uint32_t; +#endif +typedef long int32_t; +#endif /* ZOS_USS */ + #define MAGIC "awkrulz\n" #define MAJOR 3 #define MINOR 0 @@ -388,11 +399,11 @@ read_elem(FILE *fp, awk_element_t *element) if (index_len > 0) { if (buffer == NULL) { - // allocate buffer + /* allocate buffer */ emalloc(buffer, char *, index_len, "read_elem"); buflen = index_len; } else if (buflen < index_len) { - // reallocate buffer + /* reallocate buffer */ char *cp = realloc(buffer, index_len); if (cp == NULL) |