From jladwig@soils.umn.edu Thu Sep  9 09:55:36 1993
Return-Path: <jladwig@soils.umn.edu>
Received: from saturn.soils.umn.edu by cs-mail.bu.edu (5.61+++/Spike-2.1)
	id AA20847; Thu, 9 Sep 93 09:55:34 -0400
Received: by saturn.soils.umn.edu (4.1)
	id AA18878; Thu, 9 Sep 93 08:54:00 CDT
Date: Thu, 9 Sep 93 08:54:00 CDT
From: "John Ladwig" <jladwig@soils.umn.edu>
Message-Id: <9309091354.AA18878@saturn.soils.umn.edu>
To: tasos@cs.bu.edu (Anastasios Kotsikonas)
Subject: Re: Listproc-6.0a to NeXTSTEP 2.1
In-Reply-To: Anastasios Kotsikonas's message <9309091345.AA18778@cs.bu.edu> of 9 September 1993
References: <199309081909.AA20564@nx1.soils.umn.edu>
	<9309091345.AA18778@cs.bu.edu>
Status: RO

Anastasios Kotsikonas <tasos@cs.bu.edu > writes on 9 September 1993 at 09:45:17 -0400
 > > How come we seem to have SysV flavor?
 > 
 > It recognizes sigblock() and sirelse(), which are pure SYSV calls. Notice
 > it says it's got SYSV "flavor".

OK, that makes sense.

Compilation went just swell, however, it appears that there is a
serious bug in the NS2.1 tmpnam function, which doesn't generate
unique names after multiple calls with a NULL argument.  This bug in
the library *may* have been what caused me to lose *both* the
.subscribers and .aliases file on my list recently.  That was one of
the things that got me looking seriously at 6.0a

start was dying on the first go-round because the tmpps and tmpfound
files were turning out to have the same name, which zero'd out the
tmpfound file.  Bad.

Here's the replacement tmpnam I cobbled together, sorta based on the
BSD NET2 version, although by no means as robust, it seems to do the
right thing.

I added a -DBROKEN_TMPNAM to the flags in Makefile and all *seems*
well during initial testing.


/* General compatibility routines */

#include <stdio.h>


#ifdef BROKEN_TMPNAM

/* For those who have a broken tmpnam (like NeXTSTEP 2.1) */

char *tmpnam(char *name)
{
  static char space[L_tmpnam+1];
  
  if (name == NULL) 
    name = space;
  
  sprintf(name, "/tmp/tmp.XXXXXX");
  
  return ((char *)mktemp(name));
}

#endif

