Fix a bunch of issues with the new temp file generation.
This commit is contained in:
parent
0cd26b1d0c
commit
64c62439cd
|
@ -79,7 +79,6 @@ struct em
|
||||||
} u;
|
} u;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const char* aprintf(const char* fmt, ...);
|
|
||||||
extern void tracef(char k, const char* fmt, ...);
|
extern void tracef(char k, const char* fmt, ...);
|
||||||
extern bool tracing(char k);
|
extern bool tracing(char k);
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
const char* aprintf(const char* fmt, ...)
|
char* aprintf(const char* fmt, ...)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
char* p;
|
char* p;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef ASTRING_H
|
#ifndef ASTRING_H
|
||||||
#define ASTRING_H
|
#define ASTRING_H
|
||||||
|
|
||||||
extern const char* aprintf(const char* fmt, ...);
|
extern char* aprintf(const char* fmt, ...);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include "system.h"
|
|
||||||
|
|
||||||
char* aprintf(const char* fmt, ...)
|
|
||||||
{
|
|
||||||
int n;
|
|
||||||
char* p;
|
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
n = vsnprintf(NULL, 0, fmt, ap) + 1;
|
|
||||||
va_end(ap);
|
|
||||||
|
|
||||||
p = malloc(n);
|
|
||||||
if (!p)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
vsnprintf(p, n, fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* vim: set sw=4 ts=4 expandtab : */
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ clibrary {
|
||||||
name = "lib",
|
name = "lib",
|
||||||
srcs = {
|
srcs = {
|
||||||
"./access.c",
|
"./access.c",
|
||||||
"./aprintf.c",
|
|
||||||
"./basename.c",
|
"./basename.c",
|
||||||
"./break.c",
|
"./break.c",
|
||||||
"./chmode.c",
|
"./chmode.c",
|
||||||
|
@ -27,4 +26,7 @@ clibrary {
|
||||||
--"./unlock.c”,
|
--"./unlock.c”,
|
||||||
},
|
},
|
||||||
hdrs = { "./system.h" },
|
hdrs = { "./system.h" },
|
||||||
|
deps = {
|
||||||
|
"modules/src/data+lib",
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
#include "astring.h"
|
||||||
|
|
||||||
#if defined WIN32
|
#if defined WIN32
|
||||||
static unsigned temper(unsigned x)
|
static unsigned temper(unsigned x)
|
||||||
|
@ -20,7 +21,8 @@ static unsigned temper(unsigned x)
|
||||||
|
|
||||||
static int rand_r(unsigned *seed)
|
static int rand_r(unsigned *seed)
|
||||||
{
|
{
|
||||||
return temper(*seed = *seed * 1103515245 + 12345)/2;
|
*seed = *seed * 1103515245 + 12345;
|
||||||
|
return temper(*seed)/2;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -36,8 +38,9 @@ char* sys_maketempfile(const char* prefix, const char* suffix)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
unsigned int hash = rand_r(&seed);
|
unsigned int hash = rand_r(&seed);
|
||||||
char* filename = aprintf("%s/ack-%s-%x%s",
|
char* filename = aprintf("%s/ack.%s-%x%s%s",
|
||||||
tempdir, prefix, hash,
|
tempdir, prefix, hash,
|
||||||
|
((*suffix == 0) || (*suffix == '.')) ? "" : ".",
|
||||||
suffix);
|
suffix);
|
||||||
int fd = open(filename, O_CREAT|O_EXCL|O_RDWR, 0600);
|
int fd = open(filename, O_CREAT|O_EXCL|O_RDWR, 0600);
|
||||||
if (fd != -1)
|
if (fd != -1)
|
||||||
|
|
|
@ -34,6 +34,7 @@ cprogram {
|
||||||
deps = {
|
deps = {
|
||||||
"h+emheaders",
|
"h+emheaders",
|
||||||
"h+local",
|
"h+local",
|
||||||
|
"modules/src/data+lib",
|
||||||
"modules/src/system+lib",
|
"modules/src/system+lib",
|
||||||
"./ack.h",
|
"./ack.h",
|
||||||
"./data.h",
|
"./data.h",
|
||||||
|
|
|
@ -3,6 +3,7 @@ cprogram {
|
||||||
srcs = { "./archiver.c" },
|
srcs = { "./archiver.c" },
|
||||||
deps = {
|
deps = {
|
||||||
"h+emheaders",
|
"h+emheaders",
|
||||||
|
"modules/src/data+lib",
|
||||||
"modules/src/object+lib",
|
"modules/src/object+lib",
|
||||||
"modules/src/print+lib",
|
"modules/src/print+lib",
|
||||||
"modules/src/string+lib",
|
"modules/src/string+lib",
|
||||||
|
|
|
@ -44,7 +44,7 @@ cprogram {
|
||||||
"h+local",
|
"h+local",
|
||||||
--"modules/src/alloc+lib",
|
--"modules/src/alloc+lib",
|
||||||
"modules/src/em_data+lib",
|
"modules/src/em_data+lib",
|
||||||
--"modules/src/data+lib",
|
"modules/src/data+lib",
|
||||||
--"modules/src/object+lib",
|
--"modules/src/object+lib",
|
||||||
"modules/src/system+lib",
|
"modules/src/system+lib",
|
||||||
"./ass00.h",
|
"./ass00.h",
|
||||||
|
|
|
@ -40,6 +40,7 @@ cprogram {
|
||||||
"./ca/ca_put.h",
|
"./ca/ca_put.h",
|
||||||
"util/ego/share+lib",
|
"util/ego/share+lib",
|
||||||
"modules/src/em_data+lib",
|
"modules/src/em_data+lib",
|
||||||
|
"modules/src/data+lib",
|
||||||
"modules/src/system+lib",
|
"modules/src/system+lib",
|
||||||
"h+emheaders",
|
"h+emheaders",
|
||||||
},
|
},
|
||||||
|
@ -177,6 +178,7 @@ cprogram {
|
||||||
"./il/il.h",
|
"./il/il.h",
|
||||||
"util/ego/share+lib",
|
"util/ego/share+lib",
|
||||||
"modules/src/em_data+lib",
|
"modules/src/em_data+lib",
|
||||||
|
"modules/src/data+lib",
|
||||||
"modules/src/system+lib",
|
"modules/src/system+lib",
|
||||||
"h+emheaders",
|
"h+emheaders",
|
||||||
},
|
},
|
||||||
|
@ -275,6 +277,7 @@ cprogram {
|
||||||
"modules/src/print+lib",
|
"modules/src/print+lib",
|
||||||
"modules/src/string+lib",
|
"modules/src/string+lib",
|
||||||
"modules/src/system+lib",
|
"modules/src/system+lib",
|
||||||
|
"modules/src/data+lib",
|
||||||
"modules+headers",
|
"modules+headers",
|
||||||
"h+emheaders",
|
"h+emheaders",
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,6 +84,7 @@ local function variant(name, cflags)
|
||||||
"modules/src/print+lib",
|
"modules/src/print+lib",
|
||||||
"modules/src/string+lib",
|
"modules/src/string+lib",
|
||||||
"modules/src/system+lib",
|
"modules/src/system+lib",
|
||||||
|
"modules/src/data+lib",
|
||||||
"modules/src/em_data+lib"
|
"modules/src/em_data+lib"
|
||||||
),
|
),
|
||||||
vars = {
|
vars = {
|
||||||
|
|
Loading…
Reference in a new issue