e29b10a0f6f680cd8bf053d87faeefac7a51c762
[mmh] / sbr / m_scratch.c
1
2 /*
3  * m_scratch.c -- construct a scratch file
4  *
5  * $Id$
6  */
7
8 #include <h/mh.h>
9
10
11 char *
12 m_scratch (char *file, char *template)
13 {
14     char *cp;
15     static char buffer[BUFSIZ], tmpfil[BUFSIZ];
16
17     snprintf (tmpfil, sizeof(tmpfil), "%sXXXXXX", template);
18 #ifdef HAVE_MKSTEMP
19     mkstemp (tmpfil);
20 #else
21     mktemp (tmpfil);
22 #endif
23     if ((cp = r1bindex (file, '/')) == file)
24         strncpy (buffer, tmpfil, sizeof(buffer));
25     else
26         snprintf (buffer, sizeof(buffer), "%.*s%s", cp - file, file, tmpfil);
27     unlink (buffer);
28
29     return buffer;
30 }