aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-07-18 04:13:59 +0000
committerBruce Momjian <bruce@momjian.us>2002-07-18 04:13:59 +0000
commit404e9a12a5aef6d77af9b407c5737cb688f8e1cc (patch)
treea79dc34675672225ef7d7f802832f65efd4da2fb /src/backend
parent7f43165dd272f6df9e3df8a0fa8386ad60276e4a (diff)
downloadpostgresql-404e9a12a5aef6d77af9b407c5737cb688f8e1cc.tar.gz
postgresql-404e9a12a5aef6d77af9b407c5737cb688f8e1cc.zip
Move libc replacement files from src/backend/port to src/port.
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/port/Makefile6
-rw-r--r--src/backend/port/gethostname.c24
-rw-r--r--src/backend/port/getrusage.c58
-rw-r--r--src/backend/port/inet_aton.h3
-rw-r--r--src/backend/port/isinf.c82
-rw-r--r--src/backend/port/memcmp.c36
-rw-r--r--src/backend/port/random.c13
-rw-r--r--src/backend/port/snprintf.c470
-rw-r--r--src/backend/port/srandom.c13
-rw-r--r--src/backend/port/strcasecmp.c78
-rw-r--r--src/backend/port/strdup.c26
-rw-r--r--src/backend/port/strerror.c31
-rw-r--r--src/backend/port/strtol.c140
-rw-r--r--src/backend/port/strtoul.c119
14 files changed, 2 insertions, 1097 deletions
diff --git a/src/backend/port/Makefile b/src/backend/port/Makefile
index c56ffba22fa..8ae3e54f836 100644
--- a/src/backend/port/Makefile
+++ b/src/backend/port/Makefile
@@ -13,7 +13,7 @@
# be converted to Method 2.
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/port/Makefile,v 1.15 2002/07/16 05:49:38 momjian Exp $
+# $Header: /cvsroot/pgsql/src/backend/port/Makefile,v 1.16 2002/07/18 04:13:59 momjian Exp $
#
#-------------------------------------------------------------------------
@@ -23,9 +23,7 @@ include $(top_builddir)/src/Makefile.global
OBJS=dynloader.o pg_sema.o pg_shmem.o
-OBJS+=$(DLLINIT) $(GETHOSTNAME) $(GETRUSAGE) $(INET_ATON) $(ISINF) $(MEMCMP) \
- $(MISSING_RANDOM) $(SNPRINTF) $(SRANDOM) $(STRCASECMP) $(STRDUP) \
- $(STRERROR) $(STRTOL) $(STRTOUL)
+OBJS+=$(DLLINIT)
OBJS+=$(TAS)
diff --git a/src/backend/port/gethostname.c b/src/backend/port/gethostname.c
deleted file mode 100644
index 568a2221a9d..00000000000
--- a/src/backend/port/gethostname.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id: gethostname.c,v 1.5 2001/08/24 14:07:49 petere Exp $ */
-
-#include "c.h"
-
-#include <sys/types.h>
-#include <string.h>
-
-#include <sys/utsname.h>
-
-int
-gethostname(char *name, int namelen)
-{
- static struct utsname mname;
- static int called = 0;
-
- if (!called)
- {
- called++;
- uname(&mname);
- }
- strncpy(name, mname.nodename, (SYS_NMLN < namelen ? SYS_NMLN : namelen));
-
- return 0;
-}
diff --git a/src/backend/port/getrusage.c b/src/backend/port/getrusage.c
deleted file mode 100644
index 633296e9f20..00000000000
--- a/src/backend/port/getrusage.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $Id: getrusage.c,v 1.11 1998/12/12 19:57:51 momjian Exp $ */
-
-#include <stdio.h>
-#include <errno.h>
-#include "rusagestub.h"
-
-/* This code works on:
- * univel
- * solaris_i386
- * sco
- * solaris_sparc
- * svr4
- * hpux 9.*
- * which currently is all the supported platforms that don't have a
- * native version of getrusage(). So, if configure decides to compile
- * this file at all, we just use this version unconditionally.
- */
-
-int
-getrusage(int who, struct rusage * rusage)
-{
- struct tms tms;
- int tick_rate = CLK_TCK; /* ticks per second */
- clock_t u,
- s;
-
- if (rusage == (struct rusage *) NULL)
- {
- errno = EFAULT;
- return -1;
- }
- if (times(&tms) < 0)
- {
- /* errno set by times */
- return -1;
- }
- switch (who)
- {
- case RUSAGE_SELF:
- u = tms.tms_utime;
- s = tms.tms_stime;
- break;
- case RUSAGE_CHILDREN:
- u = tms.tms_cutime;
- s = tms.tms_cstime;
- break;
- default:
- errno = EINVAL;
- return -1;
- }
-#define TICK_TO_SEC(T, RATE) ((T)/(RATE))
-#define TICK_TO_USEC(T,RATE) (((T)%(RATE)*1000000)/RATE)
- rusage->ru_utime.tv_sec = TICK_TO_SEC(u, tick_rate);
- rusage->ru_utime.tv_usec = TICK_TO_USEC(u, tick_rate);
- rusage->ru_stime.tv_sec = TICK_TO_SEC(s, tick_rate);
- rusage->ru_stime.tv_usec = TICK_TO_USEC(u, tick_rate);
- return 0;
-}
diff --git a/src/backend/port/inet_aton.h b/src/backend/port/inet_aton.h
deleted file mode 100644
index 9908cc74015..00000000000
--- a/src/backend/port/inet_aton.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* $Id: inet_aton.h,v 1.7 1998/02/26 04:34:08 momjian Exp $ */
-
-int inet_aton(const char *cp, struct in_addr * addr);
diff --git a/src/backend/port/isinf.c b/src/backend/port/isinf.c
deleted file mode 100644
index 96c42d20a95..00000000000
--- a/src/backend/port/isinf.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* $Id: isinf.c,v 1.18 2001/10/28 06:25:47 momjian Exp $ */
-
-#include "c.h"
-
-#include <math.h>
-
-#if HAVE_FPCLASS /* this is _not_ HAVE_FP_CLASS, and not
- * typo */
-
-#if HAVE_IEEEFP_H
-#include <ieeefp.h>
-#endif
-int
-isinf(double d)
-{
- fpclass_t type = fpclass(d);
-
- switch (type)
- {
- case FP_NINF:
- case FP_PINF:
- return 1;
- default:
- break;
- }
- return 0;
-}
-
-#else
-
-#if defined(HAVE_FP_CLASS) || defined(HAVE_FP_CLASS_D)
-
-#if HAVE_FP_CLASS_H
-#include <fp_class.h>
-#endif
-int
-isinf(x)
-double x;
-{
-#if HAVE_FP_CLASS
- int fpclass = fp_class(x);
-
-#else
- int fpclass = fp_class_d(x);
-#endif
-
- if (fpclass == FP_POS_INF)
- return 1;
- if (fpclass == FP_NEG_INF)
- return -1;
- return 0;
-}
-
-#elif defined(HAVE_CLASS)
-int
-isinf(double x)
-{
- int fpclass = class(x);
-
- if (fpclass == FP_PLUS_INF)
- return 1;
- if (fpclass == FP_MINUS_INF)
- return -1;
- return 0;
-}
-#endif
-#endif
-
-#ifdef __QNX__
-#include <float.h>
-
-int
-isinf(double x)
-{
- if (x == HUGE_VAL)
- return 1;
- if (x == -HUGE_VAL)
- return -1;
- return 0;
-}
-
-#endif
diff --git a/src/backend/port/memcmp.c b/src/backend/port/memcmp.c
deleted file mode 100644
index f622eb587fb..00000000000
--- a/src/backend/port/memcmp.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * memcmp.c
- * compares memory bytes
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/port/Attic/memcmp.c,v 1.2 2002/06/20 20:29:33 momjian Exp $
- *
- * This file was taken from NetBSD and is used by SunOS because memcmp
- * on that platform does not properly compare negative bytes.
- *
- *-------------------------------------------------------------------------
- */
-
-#include <string.h>
-
-/*
- * Compare memory regions.
- */
-int
-memcmp(const void *s1, const void *s2, size_t n)
-{
- if (n != 0) {
- const unsigned char *p1 = s1, *p2 = s2;
-
- do {
- if (*p1++ != *p2++)
- return (*--p1 - *--p2);
- } while (--n != 0);
- }
- return 0;
-}
diff --git a/src/backend/port/random.c b/src/backend/port/random.c
deleted file mode 100644
index 882a3fbf529..00000000000
--- a/src/backend/port/random.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/* $Id: random.c,v 1.10 2001/08/24 14:07:49 petere Exp $ */
-
-#include "c.h"
-
-#include <stdlib.h>
-#include <math.h>
-#include <errno.h>
-
-long
-random()
-{
- return lrand48();
-}
diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c
deleted file mode 100644
index 047e94fcfa8..00000000000
--- a/src/backend/port/snprintf.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Copyright (c) 1983, 1995, 1996 Eric P. Allman
- * Copyright (c) 1988, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * 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.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* might be in either frontend or backend */
-#include "postgres_fe.h"
-
-#include <sys/ioctl.h>
-#include <sys/param.h>
-
-
-/*
- * We do all internal arithmetic in the widest available integer type,
- * here called long_long (or ulong_long for unsigned).
- */
-#ifdef HAVE_LONG_LONG_INT_64
-typedef long long long_long;
-typedef unsigned long long ulong_long;
-
-#else
-typedef long long_long;
-typedef unsigned long ulong_long;
-#endif
-
-/*
-** SNPRINTF, VSNPRINT -- counted versions of printf
-**
-** These versions have been grabbed off the net. They have been
-** cleaned up to compile properly and support for .precision and
-** %lx has been added.
-*/
-
-/**************************************************************
- * Original:
- * Patrick Powell Tue Apr 11 09:48:21 PDT 1995
- * A bombproof version of doprnt (dopr) included.
- * Sigh. This sort of thing is always nasty do deal with. Note that
- * the version here does not include floating point. (now it does ... tgl)
- *
- * snprintf() is used instead of sprintf() as it does limit checks
- * for string length. This covers a nasty loophole.
- *
- * The other functions are there to prevent NULL pointers from
- * causing nast effects.
- **************************************************************/
-
-/*static char _id[] = "$Id: snprintf.c,v 1.31 2001/10/25 05:49:40 momjian Exp $";*/
-static char *end;
-static int SnprfOverflow;
-
-int snprintf(char *str, size_t count, const char *fmt,...);
-int vsnprintf(char *str, size_t count, const char *fmt, va_list args);
-static void dopr(char *buffer, const char *format, va_list args);
-
-int
-snprintf(char *str, size_t count, const char *fmt,...)
-{
- int len;
- va_list args;
-
- va_start(args, fmt);
- len = vsnprintf(str, count, fmt, args);
- va_end(args);
- return len;
-}
-
-
-int
-vsnprintf(char *str, size_t count, const char *fmt, va_list args)
-{
- str[0] = '\0';
- end = str + count - 1;
- SnprfOverflow = 0;
- dopr(str, fmt, args);
- if (count > 0)
- end[0] = '\0';
- return strlen(str);
-}
-
-/*
- * dopr(): poor man's version of doprintf
- */
-
-static void fmtstr(char *value, int ljust, int len, int zpad, int maxwidth);
-static void fmtnum(long_long value, int base, int dosign, int ljust, int len, int zpad);
-static void fmtfloat(double value, char type, int ljust, int len, int precision, int pointflag);
-static void dostr(char *str, int cut);
-static void dopr_outch(int c);
-
-static char *output;
-
-
-static void
-dopr(char *buffer, const char *format, va_list args)
-{
- int ch;
- long_long value;
- double fvalue;
- int longlongflag = 0;
- int longflag = 0;
- int pointflag = 0;
- int maxwidth = 0;
- char *strvalue;
- int ljust;
- int len;
- int zpad;
-
- output = buffer;
- while ((ch = *format++))
- {
- switch (ch)
- {
- case '%':
- ljust = len = zpad = maxwidth = 0;
- longflag = longlongflag = pointflag = 0;
- nextch:
- ch = *format++;
- switch (ch)
- {
- case 0:
- dostr("**end of format**", 0);
- *output = '\0';
- return;
- case '-':
- ljust = 1;
- goto nextch;
- case '0': /* set zero padding if len not set */
- if (len == 0 && !pointflag)
- zpad = '0';
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (pointflag)
- maxwidth = maxwidth * 10 + ch - '0';
- else
- len = len * 10 + ch - '0';
- goto nextch;
- case '*':
- if (pointflag)
- maxwidth = va_arg(args, int);
- else
- len = va_arg(args, int);
- goto nextch;
- case '.':
- pointflag = 1;
- goto nextch;
- case 'l':
- if (longflag)
- longlongflag = 1;
- else
- longflag = 1;
- goto nextch;
- case 'u':
- case 'U':
- /* fmtnum(value,base,dosign,ljust,len,zpad) */
- if (longflag)
- {
- if (longlongflag)
- value = va_arg(args, ulong_long);
- else
- value = va_arg(args, unsigned long);
- }
- else
- value = va_arg(args, unsigned int);
- fmtnum(value, 10, 0, ljust, len, zpad);
- break;
- case 'o':
- case 'O':
- /* fmtnum(value,base,dosign,ljust,len,zpad) */
- if (longflag)
- {
- if (longlongflag)
- value = va_arg(args, ulong_long);
- else
- value = va_arg(args, unsigned long);
- }
- else
- value = va_arg(args, unsigned int);
- fmtnum(value, 8, 0, ljust, len, zpad);
- break;
- case 'd':
- case 'D':
- if (longflag)
- {
- if (longlongflag)
- value = va_arg(args, long_long);
- else
- value = va_arg(args, long);
- }
- else
- value = va_arg(args, int);
- fmtnum(value, 10, 1, ljust, len, zpad);
- break;
- case 'x':
- if (longflag)
- {
- if (longlongflag)
- value = va_arg(args, ulong_long);
- else
- value = va_arg(args, unsigned long);
- }
- else
- value = va_arg(args, unsigned int);
- fmtnum(value, 16, 0, ljust, len, zpad);
- break;
- case 'X':
- if (longflag)
- {
- if (longlongflag)
- value = va_arg(args, ulong_long);
- else
- value = va_arg(args, unsigned long);
- }
- else
- value = va_arg(args, unsigned int);
- fmtnum(value, -16, 0, ljust, len, zpad);
- break;
- case 's':
- strvalue = va_arg(args, char *);
- if (maxwidth > 0 || !pointflag)
- {
- if (pointflag && len > maxwidth)
- len = maxwidth; /* Adjust padding */
- fmtstr(strvalue, ljust, len, zpad, maxwidth);
- }
- break;
- case 'c':
- ch = va_arg(args, int);
- dopr_outch(ch);
- break;
- case 'e':
- case 'E':
- case 'f':
- case 'g':
- case 'G':
- fvalue = va_arg(args, double);
- fmtfloat(fvalue, ch, ljust, len, maxwidth, pointflag);
- break;
- case '%':
- dopr_outch(ch);
- continue;
- default:
- dostr("???????", 0);
- }
- break;
- default:
- dopr_outch(ch);
- break;
- }
- }
- *output = '\0';
-}
-
-static void
-fmtstr(char *value, int ljust, int len, int zpad, int maxwidth)
-{
- int padlen,
- strlen; /* amount to pad */
-
- if (value == 0)
- value = "<NULL>";
- for (strlen = 0; value[strlen]; ++strlen); /* strlen */
- if (strlen > maxwidth && maxwidth)
- strlen = maxwidth;
- padlen = len - strlen;
- if (padlen < 0)
- padlen = 0;
- if (ljust)
- padlen = -padlen;
- while (padlen > 0)
- {
- dopr_outch(' ');
- --padlen;
- }
- dostr(value, maxwidth);
- while (padlen < 0)
- {
- dopr_outch(' ');
- ++padlen;
- }
-}
-
-static void
-fmtnum(long_long value, int base, int dosign, int ljust, int len, int zpad)
-{
- int signvalue = 0;
- ulong_long uvalue;
- char convert[64];
- int place = 0;
- int padlen = 0; /* amount to pad */
- int caps = 0;
-
- /*
- * DEBUGP(("value 0x%x, base %d, dosign %d, ljust %d, len %d, zpad
- * %d\n", value, base, dosign, ljust, len, zpad ));
- */
- uvalue = value;
- if (dosign)
- {
- if (value < 0)
- {
- signvalue = '-';
- uvalue = -value;
- }
- }
- if (base < 0)
- {
- caps = 1;
- base = -base;
- }
- do
- {
- convert[place++] = (caps ? "0123456789ABCDEF" : "0123456789abcdef")
- [uvalue % (unsigned) base];
- uvalue = (uvalue / (unsigned) base);
- } while (uvalue);
- convert[place] = 0;
-
- if (len < 0)
- {
- /* this could happen with a "*" width spec */
- ljust = 1;
- len = -len;
- }
- padlen = len - place;
- if (padlen < 0)
- padlen = 0;
- if (ljust)
- padlen = -padlen;
-
- /*
- * DEBUGP(( "str '%s', place %d, sign %c, padlen %d\n",
- * convert,place,signvalue,padlen));
- */
- if (zpad && padlen > 0)
- {
- if (signvalue)
- {
- dopr_outch(signvalue);
- --padlen;
- signvalue = 0;
- }
- while (padlen > 0)
- {
- dopr_outch(zpad);
- --padlen;
- }
- }
- while (padlen > 0)
- {
- dopr_outch(' ');
- --padlen;
- }
- if (signvalue)
- dopr_outch(signvalue);
- while (place > 0)
- dopr_outch(convert[--place]);
- while (padlen < 0)
- {
- dopr_outch(' ');
- ++padlen;
- }
-}
-
-static void
-fmtfloat(double value, char type, int ljust, int len, int precision, int pointflag)
-{
- char fmt[32];
- char convert[512];
- int padlen = 0; /* amount to pad */
-
- /* we rely on regular C library's sprintf to do the basic conversion */
- if (pointflag)
- sprintf(fmt, "%%.%d%c", precision, type);
- else
- sprintf(fmt, "%%%c", type);
- sprintf(convert, fmt, value);
-
- if (len < 0)
- {
- /* this could happen with a "*" width spec */
- ljust = 1;
- len = -len;
- }
- padlen = len - strlen(convert);
- if (padlen < 0)
- padlen = 0;
- if (ljust)
- padlen = -padlen;
-
- while (padlen > 0)
- {
- dopr_outch(' ');
- --padlen;
- }
- dostr(convert, 0);
- while (padlen < 0)
- {
- dopr_outch(' ');
- ++padlen;
- }
-}
-
-static void
-dostr(char *str, int cut)
-{
- if (cut)
- {
- while (*str && cut-- > 0)
- dopr_outch(*str++);
- }
- else
- {
- while (*str)
- dopr_outch(*str++);
- }
-}
-
-static void
-dopr_outch(int c)
-{
-#ifdef NOT_USED
- if (iscntrl((unsigned char) c) && c != '\n' && c != '\t')
- {
- c = '@' + (c & 0x1F);
- if (end == 0 || output < end)
- *output++ = '^';
- }
-#endif
- if (end == 0 || output < end)
- *output++ = c;
- else
- SnprfOverflow++;
-}
diff --git a/src/backend/port/srandom.c b/src/backend/port/srandom.c
deleted file mode 100644
index 5f61088be69..00000000000
--- a/src/backend/port/srandom.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/* $Id: srandom.c,v 1.10 2001/08/24 14:07:49 petere Exp $ */
-
-#include "c.h"
-
-#include <stdlib.h>
-#include <math.h>
-#include <errno.h>
-
-void
-srandom(unsigned int seed)
-{
- srand48((long int) seed);
-}
diff --git a/src/backend/port/strcasecmp.c b/src/backend/port/strcasecmp.c
deleted file mode 100644
index 7e77adf68b6..00000000000
--- a/src/backend/port/strcasecmp.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* $Id: strcasecmp.c,v 1.10 2002/06/20 20:29:33 momjian Exp $ */
-
-/*
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1987 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that this notice is preserved and that due credit is given
- * to the University of California at Berkeley. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific written prior permission. This software
- * is provided ``as is'' without express or implied warranty.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)strcasecmp.c 5.5 (Berkeley) 11/24/87";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#include <string.h>
-
-/*
- * This array is designed for mapping upper and lower case letter
- * together for a case independent comparison. The mappings are
-p * based upon ascii character sequences.
- */
-static unsigned char charmap[] = {
- '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
- '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
- '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
- '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
- '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
- '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
- '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
- '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
- '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
- '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
- '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
- '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
- '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
- '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
- '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
- '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
- '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
- '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
- '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
- '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
- '\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
- '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
- '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
- '\370', '\371', '\372', '\333', '\334', '\335', '\336', '\337',
- '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
- '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
- '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
- '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
-};
-
-int
-strcasecmp(char *s1, char *s2)
-{
- unsigned char u1,
- u2;
-
- for (;;)
- {
- u1 = (unsigned char) *s1++;
- u2 = (unsigned char) *s2++;
- if (charmap[u1] != charmap[u2])
- return charmap[u1] - charmap[u2];
- if (u1 == '\0')
- return 0;
- }
-}
diff --git a/src/backend/port/strdup.c b/src/backend/port/strdup.c
deleted file mode 100644
index 5190990b60b..00000000000
--- a/src/backend/port/strdup.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * strdup.c
- * copies a null-terminated string.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/port/Attic/strdup.c,v 1.3 2002/07/16 05:46:35 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#include <string.h>
-#include <stdlib.h>
-#include "strdup.h"
-
-char *
-strdup(char const * string)
-{
- char *nstr;
-
- nstr = strcpy((char *) malloc(strlen(string) + 1), string);
- return nstr;
-}
diff --git a/src/backend/port/strerror.c b/src/backend/port/strerror.c
deleted file mode 100644
index 7997cc2ed1d..00000000000
--- a/src/backend/port/strerror.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id: strerror.c,v 1.6 1999/07/15 23:03:18 momjian Exp $ */
-
-/*
- * strerror - map error number to descriptive string
- *
- * This version is obviously somewhat Unix-specific.
- *
- * based on code by Henry Spencer
- * modified for ANSI by D'Arcy J.M. Cain
- */
-
-#include <string.h>
-#include <stdio.h>
-#include <errno.h>
-
-extern const char *const sys_errlist[];
-extern int sys_nerr;
-
-const char *
-strerror(int errnum)
-{
- static char buf[24];
-
- if (errnum < 0 || errnum > sys_nerr)
- {
- sprintf(buf, "unknown error %d", errnum);
- return buf;
- }
-
- return sys_errlist[errnum];
-}
diff --git a/src/backend/port/strtol.c b/src/backend/port/strtol.c
deleted file mode 100644
index 526b070bd09..00000000000
--- a/src/backend/port/strtol.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*-
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * 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.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)strtol.c 5.4 (Berkeley) 2/23/91";
-#endif /* LIBC_SCCS and not lint */
-
-#include <limits.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdlib.h>
-
-#define const
-
-/*
- * Convert a string to a long integer.
- *
- * Ignores `locale' stuff. Assumes that the upper and lower case
- * alphabets and digits are each contiguous.
- */
-long
-strtol(nptr, endptr, base)
-const char *nptr;
-char **endptr;
-int base;
-{
- const char *s = nptr;
- unsigned long acc;
- unsigned char c;
- unsigned long cutoff;
- int neg = 0,
- any,
- cutlim;
-
- /*
- * Skip white space and pick up leading +/- sign if any. If base is 0,
- * allow 0x for hex and 0 for octal, else assume decimal; if base is
- * already 16, allow 0x.
- */
- do
- {
- c = *s++;
- } while (isspace(c));
- if (c == '-')
- {
- neg = 1;
- c = *s++;
- }
- else if (c == '+')
- c = *s++;
- if ((base == 0 || base == 16) &&
- c == '0' && (*s == 'x' || *s == 'X'))
- {
- c = s[1];
- s += 2;
- base = 16;
- }
- if (base == 0)
- base = c == '0' ? 8 : 10;
-
- /*
- * Compute the cutoff value between legal numbers and illegal numbers.
- * That is the largest legal value, divided by the base. An input
- * number that is greater than this value, if followed by a legal
- * input character, is too big. One that is equal to this value may
- * be valid or not; the limit between valid and invalid numbers is
- * then based on the last digit. For instance, if the range for longs
- * is [-2147483648..2147483647] and the input base is 10, cutoff will
- * be set to 214748364 and cutlim to either 7 (neg==0) or 8 (neg==1),
- * meaning that if we have accumulated a value > 214748364, or equal
- * but the next digit is > 7 (or 8), the number is too big, and we
- * will return a range error.
- *
- * Set any if any `digits' consumed; make it negative to indicate
- * overflow.
- */
- cutoff = neg ? -(unsigned long) LONG_MIN : LONG_MAX;
- cutlim = cutoff % (unsigned long) base;
- cutoff /= (unsigned long) base;
- for (acc = 0, any = 0;; c = *s++)
- {
- if (isdigit(c))
- c -= '0';
- else if (isalpha(c))
- c -= isupper(c) ? 'A' - 10 : 'a' - 10;
- else
- break;
- if ((int) c >= base)
- break;
- if (any < 0 || acc > cutoff || acc == cutoff && (int) c > cutlim)
- any = -1;
- else
- {
- any = 1;
- acc *= base;
- acc += c;
- }
- }
- if (any < 0)
- {
- acc = neg ? LONG_MIN : LONG_MAX;
- errno = ERANGE;
- }
- else if (neg)
- acc = -acc;
- if (endptr != 0)
- *endptr = any ? s - 1 : (char *) nptr;
- return acc;
-}
diff --git a/src/backend/port/strtoul.c b/src/backend/port/strtoul.c
deleted file mode 100644
index 5cb7f7855a6..00000000000
--- a/src/backend/port/strtoul.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * 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.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)strtoul.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include <limits.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/*
- * Convert a string to an unsigned long integer.
- *
- * Ignores `locale' stuff. Assumes that the upper and lower case
- * alphabets and digits are each contiguous.
- */
-unsigned long
-strtoul(nptr, endptr, base)
-const char *nptr;
-char **endptr;
-register int base;
-{
- register const char *s = nptr;
- register unsigned long acc;
- register unsigned char c;
- register unsigned long cutoff;
- register int neg = 0,
- any,
- cutlim;
-
- /*
- * See strtol for comments as to the logic used.
- */
- do
- {
- c = *s++;
- } while (isspace(c));
- if (c == '-')
- {
- neg = 1;
- c = *s++;
- }
- else if (c == '+')
- c = *s++;
- if ((base == 0 || base == 16) &&
- c == '0' && (*s == 'x' || *s == 'X'))
- {
- c = s[1];
- s += 2;
- base = 16;
- }
- if (base == 0)
- base = c == '0' ? 8 : 10;
- cutoff = (unsigned long) ULONG_MAX / (unsigned long) base;
- cutlim = (unsigned long) ULONG_MAX % (unsigned long) base;
- for (acc = 0, any = 0;; c = *s++)
- {
- if (!isascii(c))
- break;
- if (isdigit(c))
- c -= '0';
- else if (isalpha(c))
- c -= isupper(c) ? 'A' - 10 : 'a' - 10;
- else
- break;
- if ((int) c >= base)
- break;
- if (any < 0 || acc > cutoff || (acc == cutoff && (int) c > cutlim))
- any = -1;
- else
- {
- any = 1;
- acc *= base;
- acc += c;
- }
- }
- if (any < 0)
- {
- acc = ULONG_MAX;
- errno = ERANGE;
- }
- else if (neg)
- acc = -acc;
- if (endptr != 0)
- *endptr = (char *) (any ? s - 1 : nptr);
- return acc;
-}