patches/gnomad2-02-2.9.0_p2_mkdtemp.diff
changeset 751 52b9e1fac36a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gnomad2-02-2.9.0_p2_mkdtemp.diff	Mon Dec 31 11:17:55 2007 +0000
@@ -0,0 +1,81 @@
+--- gnomad2-2.9.0-orig/src/Makefile.am	2007-08-23 10:25:11.000000000 +0000
++++ gnomad2-2.9.0/src/Makefile.am	2007-12-30 10:59:06.085251005 +0000
+@@ -33,7 +33,7 @@
+ 		data.c data.h player.c player.h common.h \
+ 		metadata.c metadata.h \
+ 		wmaread.c wmaread.h \
+-		wavfile.c wavfile.h 
++		wavfile.c wavfile.h mkdtemp.c
+ 
+ if TAGLIB_COMPILE
+ gnomad2_SOURCES += tagfile.c tagfile.h
+--- /dev/null	2007-12-30 11:06:24.000000000 +0000
++++ gnomad2-2.9.0/src/mkdtemp.c	2007-12-30 11:06:24.680745636 +0000
+@@ -0,0 +1,67 @@
++/*
++ * CDDL HEADER START
++ *
++ * The contents of this file are subject to the terms of the
++ * Common Development and Distribution License (the "License").
++ * You may not use this file except in compliance with the License.
++ *
++ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
++ * or http://www.opensolaris.org/os/licensing.
++ * See the License for the specific language governing permissions
++ * and limitations under the License.
++ *
++ * When distributing Covered Code, include this CDDL HEADER in each
++ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
++ * If applicable, add the following below this CDDL HEADER, with the
++ * fields enclosed by brackets "[]" replaced with your own identifying
++ * information: Portions Copyright [yyyy] [name of copyright owner]
++ *
++ * CDDL HEADER END
++ */
++
++/*
++ * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
++ * Use is subject to license terms.
++ */
++
++#pragma ident "%Z%%M% %I%     %E% SMI"
++
++/*
++ * mkdtemp(3C) - create a directory with a unique name.
++ */
++
++/* #pragma weak mkdtemp = _mkdtemp */
++
++/* #include "synonyms.h" */
++
++#include <alloca.h>
++#include <errno.h>
++#include <stdlib.h>
++#include <string.h>
++#include <sys/stat.h>
++
++char *
++mkdtemp(char *template)
++{
++      char *t = alloca(strlen(template) + 1);
++      char *r;
++
++      /* Save template */
++      (void) strcpy(t, template);
++      for (; ; ) {
++              r = mktemp(template);
++
++              if (*r == '\0')
++                      return (NULL);
++
++              if (mkdir(template, 0700) == 0)
++                      return (r);
++
++              /* Other errors indicate persistent conditions. */
++              if (errno != EEXIST)
++                      return (NULL);
++
++              /* Reset template */
++              (void) strcpy(template, t);
++      }
++}