From: terry@cs.weber.edu (A Wizard of Earth C)
Subject: PATCHKIT/GAMES/LIBCOMPAT
Reply-To: terry@icarus.weber.edu
Organization: Weber State University  (Ogden, UT)
Date: Tue, 13 Oct 92 20:09:36 GMT

>I just installed your patchkit, and everything went very well, but I
>have a question.  One of the patches states that all games should
>compile, but almost all of them complain that I am missing libcompat.
>When I look at the list of files, there is no libcompat.a there, so I am
>wondering if I am missing something.  I have the full bin01, etc01, and
>src01 installed.  The only thing I see that might be close is a
>directory of files called compat-43, which it looks like is part of
>libc.  So, my question is, am I missing something, or should I just
>create a dummy libcompat.a, so the compiler has something to open?

I messed up on this.  I should have included my libcompat.a; I am going
to be making a patch for it as soon as I get re_comp and re_exec working.

Meanwhile, for the games, libcompat.a should probably contain the following
files:

sgtty.c=============================================================
/* 29 Sep 92*/
/*
 * sgtty.c
 *
 * Part of the compatability library.
 *
 * This module defines gtty() and stty() as functions.
 *
 * 29 Sep 92    Terry Lambert           Original
 */
#define USE_OLD_TTY             /* Magic incantation*/
#include <sys/ioctl.h>

int
gtty( fd, argp)
int     fd;
char    *argp;
{
        return( ioctl( fd, TIOCSETP, argp));
}

int
stty( fd, argp)
int     fd;
char    *argp;
{
        return( ioctl( fd, TIOCGETP, argp));
}

/*
 * EOF -- This file has not been truncated
 */

strdup.c==============================================================
/*
 * Copyright (c) 1988 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[] = "@(#)strdup.c    5.4 (Berkeley) 2/24/91";
#endif /* LIBC_SCCS and not lint */

#include <stddef.h>
#include <stdlib.h>
#include <string.h>

char *
strdup(str)
        const char *str;
{
        int len;
        char *copy;

        len = strlen(str) + 1;
        if (!(copy = malloc((u_int)len)))
                return((char *)NULL);
        bcopy(str, copy, len);
        return(copy);
}

strtod.c==================================================================
/* 19 Sep 92*/
/*
 * strtod.c
 *
 * A quick-and-dirty strtod() function, using the scanf internal routines.
 *
 * 19 Sep 92    Peng-Toh Sim            Original
 *
 * Peng-Toh Sim         =       sim@cory.Berkeley.EDU
 */
#include <stdio.h>
#include <string.h>

/* ARGSUSED */
static int
        eofread(cookie, buf, len)
        void *cookie;
        char *buf;
        int len;
{
        return (0);
}

double strtod(const char *str, char **endp)
{
        int ret;
        FILE f;
        double val;
        int l;

        f._flags = __SRD;
        f._bf._base = f._p = (unsigned char *)str;
        f._bf._size = f._r = l = strlen(str);
        f._read = eofread;
        f._ub._base = NULL;
        f._lb._base = NULL;
        ret = fscanf(&f, "%lg", &val);
        if (ret == 0) {
                *endp = (char *) str;
                return 0.0;
        }
        *endp = (char *) &(str[l - f._r]);
        return val;
}

/*
 * EOF -- This file has not been truncated.
 */
==========================================================================

						Regards,
						Terry

-- 
-------------------------------------------------------------------------------
                                        "I have an 8 user poetic license" - me
 Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
-------------------------------------------------------------------------------
Newsgroups: comp.unix.bsd