From 9fc7250d3a6e016205a8c8eca6d9409b7f6dfb08 Mon Sep 17 00:00:00 2001
From: Bryan Henderson <bryanh@giraffe.netgate.net>
Date: Sun, 15 Dec 1996 09:05:53 +0000
Subject: [PATCH] Make compile on AIX, Alpha OSF.  Thanks Darren King, Igor
 Notanzon.

---
 src/backend/access/nbtree/nbtsearch.c | 26 ++++---
 src/backend/port/aix/mkldexport.sh    |  2 +-
 src/backend/utils/adt/nabstime.c      |  3 +-
 src/include/config.h                  |  7 ++
 src/include/regex/regex.h             | 98 +++++++++++++--------------
 src/interfaces/libpq/fe-exec.c        |  4 +-
 6 files changed, 77 insertions(+), 63 deletions(-)

diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c
index 61a26c0f7d1..9c07114bc47 100644
--- a/src/backend/access/nbtree/nbtsearch.c
+++ b/src/backend/access/nbtree/nbtsearch.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.11 1996/12/06 09:41:45 vadim Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.12 1996/12/15 09:05:10 bryanh Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,11 +27,19 @@
 #endif
 
 
-static BTStack _bt_searchr(Relation rel, int keysz, ScanKey scankey, Buffer *bufP, BTStack stack_in);
-static OffsetNumber _bt_firsteq(Relation rel, TupleDesc itupdesc, Page page, Size keysz, ScanKey scankey, OffsetNumber offnum);
-int _bt_compare(Relation rel, TupleDesc itupdesc, Page page, int keysz, ScanKey scankey, OffsetNumber offnum);
-static bool _bt_twostep(IndexScanDesc scan, Buffer *bufP, ScanDirection dir);
-static RetrieveIndexResult _bt_endpoint(IndexScanDesc scan, ScanDirection dir);
+static BTStack 
+_bt_searchr(Relation rel, int keysz, ScanKey scankey, 
+            Buffer *bufP, BTStack stack_in);
+static OffsetNumber 
+_bt_firsteq(Relation rel, TupleDesc itupdesc, Page page, 
+            Size keysz, ScanKey scankey, OffsetNumber offnum);
+int 
+_bt_compare(Relation rel, TupleDesc itupdesc, Page page, 
+            int keysz, ScanKey scankey, OffsetNumber offnum);
+static bool 
+_bt_twostep(IndexScanDesc scan, Buffer *bufP, ScanDirection dir);
+static RetrieveIndexResult 
+_bt_endpoint(IndexScanDesc scan, ScanDirection dir);
 
 /*
  *  _bt_search() -- Search for a scan key in the index.
@@ -472,7 +480,7 @@ _bt_compare(Relation rel,
 	    elog(WARN, "_bt_compare: invalid comparison to high key");
 	}
 
-#ifdef 0
+#if 0
 	/*
 	 *  We just have to belive that right answer will not
 	 *  break anything. I've checked code and all seems to be ok.
@@ -1130,7 +1138,7 @@ _bt_endpoint(IndexScanDesc scan, ScanDirection dir)
 	 * Scanning in BackwardScanDirection is not understandable at all.
 	 * Well - new stuff. - vadim 12/06/96
 	 */
-#ifdef 0
+#if 0
 	if (PageIsEmpty(page) || start > maxoff) {
 	    ItemPointerSet(current, blkno, maxoff);
 	    if (!_bt_step(scan, &buf, BackwardScanDirection))
@@ -1166,7 +1174,7 @@ _bt_endpoint(IndexScanDesc scan, ScanDirection dir)
 	 * empty why do scanning in ForwardScanDirection ???
 	 * Well - new stuff. - vadim 12/06/96
 	 */
-#ifdef 0
+#if 0
 	if (PageIsEmpty(page)) {
 	    ItemPointerSet(current, blkno, FirstOffsetNumber);
 	    if (!_bt_step(scan, &buf, ForwardScanDirection))
diff --git a/src/backend/port/aix/mkldexport.sh b/src/backend/port/aix/mkldexport.sh
index 378baf92626..3447ebdf60d 100755
--- a/src/backend/port/aix/mkldexport.sh
+++ b/src/backend/port/aix/mkldexport.sh
@@ -17,7 +17,7 @@
 #
 
 # setting this to nm -B might be better
-NM = /usr/ucb/nm
+NM=/usr/ucb/nm
 
 CMDNAME=`basename $0`
 if [ -z "$1" ]; then
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c
index 5630b2f10c0..56ceb278be7 100644
--- a/src/backend/utils/adt/nabstime.c
+++ b/src/backend/utils/adt/nabstime.c
@@ -7,13 +7,14 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.7 1996/11/08 05:59:45 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.8 1996/12/15 09:05:35 bryanh Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
+#include <sys/timeb.h>
 #include <sys/types.h>
 #include "postgres.h"
 #include "access/xact.h"
diff --git a/src/include/config.h b/src/include/config.h
index d6110c6670d..36b50e5c4cc 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -15,6 +15,12 @@
 #endif
 #endif /* !defined(sparc_solaris) */
 
+#if defined(aix)
+#define TERMIOS_H_LOCATION <termios.h>
+#else
+#define TERMIOS_H_LOCATION <sys/termios.h>
+#endif
+
 #define HAVE_MEMMOVE
 
 #if defined(aix)
@@ -39,6 +45,7 @@
 #  define NEED_UNION_SEMUN 
 #  define SB_PAD 40
 #  define HAS_TEST_AND_SET
+   include <sys/mman.h>  /* for msemaphore */
    typedef msemaphore slock_t;
 #endif
 
diff --git a/src/include/regex/regex.h b/src/include/regex/regex.h
index 0c4ef422a23..08f561d4132 100644
--- a/src/include/regex/regex.h
+++ b/src/include/regex/regex.h
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 1992 Henry Spencer.
  * Copyright (c) 1992, 1993
- *	The Regents of the University of California.  All rights reserved.
+ *      The Regents of the University of California.  All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
  * Henry Spencer of the University of Toronto.
@@ -16,8 +16,8 @@
  *    documentation and/or other materials provided with the distribution.
  * 3. All advertising materials mentioning features or use of this software
  *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
+ *      This product includes software developed by the University of
+ *      California, Berkeley and its contributors.
  * 4. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
@@ -34,11 +34,11 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	@(#)regex.h	8.2 (Berkeley) 1/3/94
+ *      @(#)regex.h     8.2 (Berkeley) 1/3/94
  */
 
 #ifndef _REGEX_H_
-#define	_REGEX_H_
+#define _REGEX_H_
 
 #include <sys/types.h>
 
@@ -46,61 +46,59 @@
 typedef off_t regoff_t;
 
 typedef struct {
-	int re_magic;
-	size_t re_nsub;		/* number of parenthesized subexpressions */
-	__const char *re_endp;	/* end pointer for REG_PEND */
-	struct re_guts *re_g;	/* none of your business :-) */
+        int re_magic;
+        size_t re_nsub;         /* number of parenthesized subexpressions */
+        const char *re_endp;    /* end pointer for REG_PEND */
+        struct re_guts *re_g;   /* none of your business :-) */
 } regex_t;
 
 typedef struct {
-	regoff_t rm_so;		/* start of match */
-	regoff_t rm_eo;		/* end of match */
+        regoff_t rm_so;         /* start of match */
+        regoff_t rm_eo;         /* end of match */
 } regmatch_t;
 
 /* regcomp() flags */
-#define	REG_BASIC	0000
-#define	REG_EXTENDED	0001
-#define	REG_ICASE	0002
-#define	REG_NOSUB	0004
-#define	REG_NEWLINE	0010
-#define	REG_NOSPEC	0020
-#define	REG_PEND	0040
-#define	REG_DUMP	0200
+#define REG_BASIC       0000
+#define REG_EXTENDED    0001
+#define REG_ICASE       0002
+#define REG_NOSUB       0004
+#define REG_NEWLINE     0010
+#define REG_NOSPEC      0020
+#define REG_PEND        0040
+#define REG_DUMP        0200
 
 /* regerror() flags */
-#define	REG_NOMATCH	 1
-#define	REG_BADPAT	 2
-#define	REG_ECOLLATE	 3
-#define	REG_ECTYPE	 4
-#define	REG_EESCAPE	 5
-#define	REG_ESUBREG	 6
-#define	REG_EBRACK	 7
-#define	REG_EPAREN	 8
-#define	REG_EBRACE	 9
-#define	REG_BADBR	10
-#define	REG_ERANGE	11
-#define	REG_ESPACE	12
-#define	REG_BADRPT	13
-#define	REG_EMPTY	14
-#define	REG_ASSERT	15
-#define	REG_INVARG	16
-#define	REG_ATOI	255	/* convert name to number (!) */
-#define	REG_ITOA	0400	/* convert number to name (!) */
+#define REG_NOMATCH      1
+#define REG_BADPAT       2
+#define REG_ECOLLATE     3
+#define REG_ECTYPE       4
+#define REG_EESCAPE      5
+#define REG_ESUBREG      6
+#define REG_EBRACK       7
+#define REG_EPAREN       8
+#define REG_EBRACE       9
+#define REG_BADBR       10
+#define REG_ERANGE      11
+#define REG_ESPACE      12
+#define REG_BADRPT      13
+#define REG_EMPTY       14
+#define REG_ASSERT      15
+#define REG_INVARG      16
+#define REG_ATOI        255     /* convert name to number (!) */
+#define REG_ITOA        0400    /* convert number to name (!) */
 
 /* regexec() flags */
-#define	REG_NOTBOL	00001
-#define	REG_NOTEOL	00002
-#define	REG_STARTEND	00004
-#define	REG_TRACE	00400	/* tracing of execution */
-#define	REG_LARGE	01000	/* force large representation */
-#define	REG_BACKR	02000	/* force use of backref code */
+#define REG_NOTBOL      00001
+#define REG_NOTEOL      00002
+#define REG_STARTEND    00004
+#define REG_TRACE       00400   /* tracing of execution */
+#define REG_LARGE       01000   /* force large representation */
+#define REG_BACKR       02000   /* force use of backref code */
 
-__BEGIN_DECLS
-int	pg95_regcomp __P((regex_t *, const char *, int));
-size_t	pg95_regerror __P((int, const regex_t *, char *, size_t));
-int	pg95_regexec __P((const regex_t *,
-	    const char *, size_t, regmatch_t [], int));
-void	pg95_regfree __P((regex_t *));
-__END_DECLS
+int     pg95_regcomp(regex_t *, const char *, int);
+size_t  pg95_regerror(int, const regex_t *, char *, size_t);
+int     pg95_regexec (const regex_t *,
+                      const char *, size_t, regmatch_t [], int);
+void    pg95_regfree (regex_t *);
 
 #endif /* !_REGEX_H_ */
diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
index 9e5079a4b13..559865d55df 100644
--- a/src/interfaces/libpq/fe-exec.c
+++ b/src/interfaces/libpq/fe-exec.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.20 1996/12/13 09:25:08 bryanh Exp $
+ *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.21 1996/12/15 09:05:53 bryanh Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -21,7 +21,7 @@
 #include "libpq-fe.h"
 #include <signal.h>
 #include <sys/ioctl.h>
-#include <sys/termios.h>
+#include TERMIOS_H_LOCATION
 
 #ifdef TIOCGWINSZ
 struct winsize screen_size;
-- 
GitLab