aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog7
-rw-r--r--extension/gawkfts.c5
-rw-r--r--extension/gawkfts.h11
-rw-r--r--extension/readdir.c6
-rw-r--r--extension/rwarray.c15
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)