Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1999 Aladdin Enterprises.  All rights reserved.
2
 
3
  This software is provided AS-IS with no warranty, either express or
4
  implied.
5
 
6
  This software is distributed under license and may not be copied,
7
  modified or distributed except as expressly authorized under the terms
8
  of the license contained in the file LICENSE in this distribution.
9
 
10
  For more information about licensing, please refer to
11
  http://www.ghostscript.com/licensing/. For information on
12
  commercial licensing, go to http://www.artifex.com/licensing/ or
13
  contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
  San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
*/
16
 
17
/* $Id: gp_mktmp.c,v 1.4 2002/02/21 22:24:52 giles Exp $ */
18
/* Replacement for missing mktemp */
19
#include "stat_.h"
20
#include "string_.h"
21
 
22
/* This procedure simulates mktemp on platforms that don't provide it. */
23
char *
24
mktemp(char *fname)
25
{
26
    struct stat fst;
27
    int len = strlen(fname);
28
    char *end = fname + len - 6;
29
 
30
    if (len < 6 || strcmp(end, "XXXXXX"))
31
	return (char *)0;	/* invalid  */
32
    strcpy(end, "AA.AAA");
33
 
34
    while (stat(fname, &fst) == 0) {
35
	char *inc = fname + len - 1;
36
 
37
	while (*inc == 'Z' || *inc == '.') {
38
	    if (inc == end)
39
		return (char *)0;	/* failure */
40
	    if (*inc == 'Z')
41
		*inc = 'A';
42
	    --inc;
43
	}
44
	++*inc;
45
    }
46
    return fname;
47
}