From 2b02dfaa48ad11ff3ee427ee1db57fb6017a8a5e Mon Sep 17 00:00:00 2001 From: obrien Date: Mon, 19 Jan 2009 17:25:17 +0000 Subject: Rename vendor/binutils/*/contrib to vendor/binutils/*/x Binutils has a "contrib" subdirectory - thus flattening cannot happen without renaming the upper level contrib directory in a first pass. Also, don't record this move and remove any keyword expansion. --- x/binutils/libiberty/tmpnam.c | 53 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 x/binutils/libiberty/tmpnam.c (limited to 'x/binutils/libiberty/tmpnam.c') diff --git a/x/binutils/libiberty/tmpnam.c b/x/binutils/libiberty/tmpnam.c new file mode 100644 index 0000000..406878c --- /dev/null +++ b/x/binutils/libiberty/tmpnam.c @@ -0,0 +1,53 @@ +/* + +@deftypefn Supplemental char* tmpnam (char *@var{s}) + +This function attempts to create a name for a temporary file, which +will be a valid file name yet not exist when @code{tmpnam} checks for +it. @var{s} must point to a buffer of at least @code{L_tmpnam} bytes, +or be @code{NULL}. Use of this function creates a security risk, and it must +not be used in new projects. Use @code{mkstemp} instead. + +@end deftypefn + +*/ + +#include + +#ifndef L_tmpnam +#define L_tmpnam 100 +#endif +#ifndef P_tmpdir +#define P_tmpdir "/usr/tmp" +#endif + +static char tmpnam_buffer[L_tmpnam]; +static int tmpnam_counter; + +extern int getpid (); + +char * +tmpnam (s) + char *s; +{ + int pid = getpid (); + + if (s == NULL) + s = tmpnam_buffer; + + /* Generate the filename and make sure that there isn't one called + it already. */ + + while (1) + { + FILE *f; + sprintf (s, "%s/%s%x.%x", P_tmpdir, "t", pid, tmpnam_counter); + f = fopen (s, "r"); + if (f == NULL) + break; + tmpnam_counter++; + fclose (f); + } + + return s; +} -- cgit v1.1